mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-09-10 17:15:43 +00:00
Compare commits
183 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
81e086b387 | ||
|
|
0650f783b5 | ||
|
|
6dafcac713 | ||
|
|
509a2b40b7 | ||
|
|
77fe1298c7 | ||
|
|
20eb93e05c | ||
|
|
3665ae0441 | ||
|
|
6e6fff866e | ||
|
|
ad14a27cd3 | ||
|
|
e1630edef4 | ||
|
|
4345d34cf2 | ||
|
|
7ca652ce6d | ||
|
|
06d123de62 | ||
|
|
b768d74b2b | ||
|
|
69c1790dce | ||
|
|
63b48f5096 | ||
|
|
127560ae22 | ||
|
|
92873cc14f | ||
|
|
2a8b3a809d | ||
|
|
8f757eece8 | ||
|
|
aaebb0a231 | ||
|
|
9f31783249 | ||
|
|
a58f86812c | ||
|
|
22fbbbb1cc | ||
|
|
7603a464cd | ||
|
|
d33f9ec86b | ||
|
|
6e93b59f61 | ||
|
|
5485d5023e | ||
|
|
d9fa80c0b0 | ||
|
|
a638f6e5aa | ||
|
|
bc5d407bf7 | ||
|
|
f33881b1da | ||
|
|
997a6747ee | ||
|
|
1b7a538353 | ||
|
|
8813bdf5dd | ||
|
|
c23d873e1a | ||
|
|
b404d5e9e4 | ||
|
|
cfb4bb9b98 | ||
|
|
ab1e851e7d | ||
|
|
5626a9282c | ||
|
|
daea202bfd | ||
|
|
f214ee7f3a | ||
|
|
0edc68f7cd | ||
|
|
c5706ef791 | ||
|
|
fb0c64a567 | ||
|
|
0ecb03ad47 | ||
|
|
25c850e762 | ||
|
|
351b5cd2cd | ||
|
|
ca9664b1ac | ||
|
|
46c1e7351e | ||
|
|
17ae28f0e4 | ||
|
|
8d9c770a81 | ||
|
|
6eb2e43a8d | ||
|
|
2fad45132f | ||
|
|
538978b782 | ||
|
|
7e923580a5 | ||
|
|
0c4bd1ccdc | ||
|
|
4d994458f0 | ||
|
|
c10a46aa43 | ||
|
|
e3cbd8a965 | ||
|
|
2181da4b72 | ||
|
|
131bc92b77 | ||
|
|
4ebb065f94 | ||
|
|
9d3c0018c1 | ||
|
|
133be8759a | ||
|
|
9b429bd12d | ||
|
|
ee4e22d5ea | ||
|
|
f8884640b0 | ||
|
|
26b2288bde | ||
|
|
c0d7a43637 | ||
|
|
bd2a33fe77 | ||
|
|
9a5b631ed6 | ||
|
|
7f2f15bc1a | ||
|
|
4590b808da | ||
|
|
ef214e6a3c | ||
|
|
73ffa4594d | ||
|
|
e001c3349b | ||
|
|
d49edbcf14 | ||
|
|
5cc5270aaf | ||
|
|
abd432fd7a | ||
|
|
a26e1c8b63 | ||
|
|
8c52bab930 | ||
|
|
dc2315ad85 | ||
|
|
363dee82d8 | ||
|
|
5858efd6c9 | ||
|
|
e91bf4583f | ||
|
|
f543a44836 | ||
|
|
4ec3e239ba | ||
|
|
e56ea60058 | ||
|
|
4520a584e4 | ||
|
|
b5b900200f | ||
|
|
3d1b9e98a4 | ||
|
|
e55220dbe0 | ||
|
|
9b69921491 | ||
|
|
1c62cb7b42 | ||
|
|
4629d6a671 | ||
|
|
6dc482b197 | ||
|
|
22c576b40b | ||
|
|
fffea62005 | ||
|
|
cdff9b8da7 | ||
|
|
16ad362e67 | ||
|
|
05dfe9f9c5 | ||
|
|
2742935c54 | ||
|
|
8c92c0a59d | ||
|
|
4ce3a1c1e9 | ||
|
|
56a87efbac | ||
|
|
ef31109ad2 | ||
|
|
16f2a3e2f8 | ||
|
|
48b4ce6ddb | ||
|
|
cd095c817e | ||
|
|
6ba53f661a | ||
|
|
25df4ba6bd | ||
|
|
b5181e3d06 | ||
|
|
6129f5f68b | ||
|
|
652c5a9410 | ||
|
|
9f9ad95fb4 | ||
|
|
1fbd45a594 | ||
|
|
39fafdac0f | ||
|
|
4162d1f056 | ||
|
|
6b1b746f66 | ||
|
|
71d5d14c13 | ||
|
|
4767554562 | ||
|
|
d83ac7a124 | ||
|
|
29d1a2cc51 | ||
|
|
e7ae5ec07c | ||
|
|
49f1cbd40e | ||
|
|
06dfa1cafc | ||
|
|
598303fa95 | ||
|
|
3d86b92511 | ||
|
|
46d679ab11 | ||
|
|
4f26a8b308 | ||
|
|
58c2dae32e | ||
|
|
294fc6caef | ||
|
|
269c7b6e5b | ||
|
|
cfe52b6e6e | ||
|
|
78eb69ead5 | ||
|
|
02e6c04ac2 | ||
|
|
e67a4ba7ce | ||
|
|
9f0f39555c | ||
|
|
f4a702e49f | ||
|
|
32f060366f | ||
|
|
c6841a51de | ||
|
|
33d7fa1180 | ||
|
|
e6ce481179 | ||
|
|
4468662d64 | ||
|
|
91e0e46e4a | ||
|
|
62105b5c07 | ||
|
|
3561c3a1f9 | ||
|
|
9a29ddf6af | ||
|
|
ec09c03b64 | ||
|
|
4875bcecc2 | ||
|
|
3e3320e8d9 | ||
|
|
c783325e16 | ||
|
|
e3c6467ab9 | ||
|
|
7fb60519ee | ||
|
|
549708edfa | ||
|
|
6aa3814f6e | ||
|
|
809865e9ee | ||
|
|
2f243e2817 | ||
|
|
2f517041c7 | ||
|
|
b2ded61796 | ||
|
|
fd095bbfae | ||
|
|
9eaa8a24ed | ||
|
|
dd17b6be29 | ||
|
|
e26442fc2a | ||
|
|
8ad43a965f | ||
|
|
47e72a95ef | ||
|
|
04ce3497ab | ||
|
|
b03b49fca3 | ||
|
|
633d92a68b | ||
|
|
81ea4f9110 | ||
|
|
4b1aa1640c | ||
|
|
ab9e74ad5e | ||
|
|
d92ef59f24 | ||
|
|
9614c3adfa | ||
|
|
adef366e0c | ||
|
|
c2a81d8fd4 | ||
|
|
ce51fdfe51 | ||
|
|
fbb61c3b1d | ||
|
|
281541fe1b | ||
|
|
6d7344428a | ||
|
|
4769f6d419 | ||
|
|
af2d6ea128 |
4
.github/labeler.yml
vendored
4
.github/labeler.yml
vendored
@@ -40,3 +40,7 @@ translation:
|
||||
- docs/ru-ru/**/*
|
||||
CI:
|
||||
- .github/**/*
|
||||
dd:
|
||||
- data/constants/**/*
|
||||
- data/mappings/**/*
|
||||
- data/schemas/**/*
|
||||
|
||||
2
.github/workflows/api.yml
vendored
2
.github/workflows/api.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
||||
if: github.repository == 'qmk/qmk_firmware'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 1
|
||||
persist-credentials: false
|
||||
|
||||
2
.github/workflows/auto_tag.yml
vendored
2
.github/workflows/auto_tag.yml
vendored
@@ -27,7 +27,7 @@ jobs:
|
||||
if: github.repository == 'qmk/qmk_firmware'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
|
||||
2
.github/workflows/ci_builds.yml
vendored
2
.github/workflows/ci_builds.yml
vendored
@@ -33,7 +33,7 @@ jobs:
|
||||
- name: Disable safe.directory check
|
||||
run : git config --global --add safe.directory '*'
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
ref: ${{ github.event.inputs.branch || github.ref }}
|
||||
|
||||
2
.github/workflows/cli.yml
vendored
2
.github/workflows/cli.yml
vendored
@@ -24,7 +24,7 @@ jobs:
|
||||
- name: Disable safe.directory check
|
||||
run : git config --global --add safe.directory '*'
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
|
||||
2
.github/workflows/develop_update.yml
vendored
2
.github/workflows/develop_update.yml
vendored
@@ -15,7 +15,7 @@ jobs:
|
||||
if: github.repository == 'qmk/qmk_firmware'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
token: ${{ secrets.QMK_BOT_TOKEN }}
|
||||
fetch-depth: 0
|
||||
|
||||
2
.github/workflows/docs.yml
vendored
2
.github/workflows/docs.yml
vendored
@@ -23,7 +23,7 @@ jobs:
|
||||
if: github.repository == 'qmk/qmk_firmware'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 1
|
||||
|
||||
|
||||
2
.github/workflows/feature_branch_update.yml
vendored
2
.github/workflows/feature_branch_update.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
- riot
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
token: ${{ secrets.QMK_BOT_TOKEN }}
|
||||
fetch-depth: 0
|
||||
|
||||
4
.github/workflows/format.yml
vendored
4
.github/workflows/format.yml
vendored
@@ -25,7 +25,7 @@ jobs:
|
||||
- name: Disable safe.directory check
|
||||
run : git config --global --add safe.directory '*'
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
@@ -35,7 +35,7 @@ jobs:
|
||||
|
||||
- name: Get changed files
|
||||
id: file_changes
|
||||
uses: tj-actions/changed-files@v38
|
||||
uses: tj-actions/changed-files@v39
|
||||
|
||||
- name: Run qmk formatters
|
||||
shell: 'bash {0}'
|
||||
|
||||
2
.github/workflows/format_push.yml
vendored
2
.github/workflows/format_push.yml
vendored
@@ -19,7 +19,7 @@ jobs:
|
||||
- name: Disable safe.directory check
|
||||
run : git config --global --add safe.directory '*'
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
|
||||
29
.github/workflows/lint.yml
vendored
29
.github/workflows/lint.yml
vendored
@@ -18,7 +18,7 @@ jobs:
|
||||
- name: Disable safe.directory check
|
||||
run : git config --global --add safe.directory '*'
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
@@ -27,7 +27,7 @@ jobs:
|
||||
|
||||
- name: Get changed files
|
||||
id: file_changes
|
||||
uses: tj-actions/changed-files@v38
|
||||
uses: tj-actions/changed-files@v39
|
||||
|
||||
- name: Print info
|
||||
run: |
|
||||
@@ -74,31 +74,10 @@ jobs:
|
||||
fi
|
||||
exit $exit_code
|
||||
|
||||
- name: Verify at most one added keyboard
|
||||
- name: Verify keyboard aliases
|
||||
if: always()
|
||||
shell: 'bash {0}'
|
||||
run: |
|
||||
git reset --hard
|
||||
git clean -xfd
|
||||
|
||||
# Get the keyboard list and count for the target branch
|
||||
git checkout -f ${{ github.base_ref }}
|
||||
git pull --ff-only
|
||||
QMK_KEYBOARDS_BASE=$(qmk list-keyboards)
|
||||
QMK_KEYBOARDS_BASE_COUNT=$(qmk list-keyboards | wc -l)
|
||||
|
||||
# Get the keyboard list and count for the PR
|
||||
git checkout -f ${{ github.head_ref }}
|
||||
git merge --no-commit --squash ${{ github.base_ref }}
|
||||
QMK_KEYBOARDS_PR=$(qmk list-keyboards)
|
||||
QMK_KEYBOARDS_PR_COUNT=$(qmk list-keyboards | wc -l)
|
||||
|
||||
echo "::group::Keyboards changes in this PR"
|
||||
diff -d -U 0 <(echo "$QMK_KEYBOARDS_BASE") <(echo "$QMK_KEYBOARDS_PR") | grep -vE '^(---|\+\+\+|@@)' | sed -e 's@^-@Removed: @g' -e 's@^+@ Added: @g'
|
||||
echo "::endgroup::"
|
||||
|
||||
if [[ $QMK_KEYBOARDS_PR_COUNT -gt $(($QMK_KEYBOARDS_BASE_COUNT + 1)) ]]; then
|
||||
echo "More than one keyboard added in this PR -- see the PR Checklist."
|
||||
echo "::error::More than one keyboard added in this PR -- see the PR Checklist."
|
||||
exit 1
|
||||
fi
|
||||
qmk ci-validate-aliases
|
||||
|
||||
2
.github/workflows/regen.yml
vendored
2
.github/workflows/regen.yml
vendored
@@ -19,7 +19,7 @@ jobs:
|
||||
- name: Disable safe.directory check
|
||||
run : git config --global --add safe.directory '*'
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Run qmk generators
|
||||
run: |
|
||||
|
||||
2
.github/workflows/regen_push.yml
vendored
2
.github/workflows/regen_push.yml
vendored
@@ -19,7 +19,7 @@ jobs:
|
||||
- name: Disable safe.directory check
|
||||
run : git config --global --add safe.directory '*'
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Run qmk generators
|
||||
run: |
|
||||
|
||||
2
.github/workflows/unit_test.yml
vendored
2
.github/workflows/unit_test.yml
vendored
@@ -26,7 +26,7 @@ jobs:
|
||||
container: ghcr.io/qmk/qmk_cli
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Install dependencies
|
||||
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -95,6 +95,7 @@ secrets.tar
|
||||
# Python things
|
||||
__pycache__
|
||||
.python-version
|
||||
.venv
|
||||
|
||||
# Prerequisites for updating ChibiOS
|
||||
/util/fmpp*
|
||||
@@ -107,5 +108,6 @@ compile_commands.json
|
||||
.clangd/
|
||||
.cache/
|
||||
|
||||
# VIA(L) json files that don't belong in QMK repo
|
||||
# VIA(L) files that don't belong in QMK repo
|
||||
via*.json
|
||||
/keyboards/**/keymaps/vial/*
|
||||
|
||||
@@ -392,6 +392,8 @@ check-size:
|
||||
if [ $(MAX_SIZE) -gt 0 ] && [ $(CURRENT_SIZE) -gt 0 ]; then \
|
||||
$(SILENT) || printf "$(MSG_CHECK_FILESIZE)" | $(AWK_CMD); \
|
||||
if [ $(CURRENT_SIZE) -gt $(MAX_SIZE) ]; then \
|
||||
$(REMOVE) $(TARGET).$(FIRMWARE_FORMAT); \
|
||||
$(REMOVE) $(BUILD_DIR)/$(TARGET).{hex,bin,uf2}; \
|
||||
printf "\n * $(MSG_FILE_TOO_BIG)"; $(PRINT_ERROR_PLAIN); \
|
||||
else \
|
||||
if [ $(FREE_SIZE) -lt $(SIZE_MARGIN) ]; then \
|
||||
|
||||
@@ -4,6 +4,13 @@
|
||||
// "target": "<keyboard_folder>"
|
||||
// }
|
||||
//
|
||||
|
||||
/* This list of aliases is for testing purposes -- ensures "linked list" recursive traversal works correctly. */
|
||||
"_test_a": { "target": "_test_b" },
|
||||
"_test_b": { "target": "_test_c" },
|
||||
"_test_c": { "target": "planck/rev6" },
|
||||
|
||||
/* The main list of aliases for moved keyboards within QMK. */
|
||||
"2_milk": {
|
||||
"target": "spaceman/2_milk"
|
||||
},
|
||||
@@ -35,7 +42,7 @@
|
||||
"target": "amjkeyboard/amjpad"
|
||||
},
|
||||
"angel64": {
|
||||
"target": "angel64/alpha"
|
||||
"target": "kakunpc/angel64/alpha"
|
||||
},
|
||||
"ashpil/modelm_usbc": {
|
||||
"target": "ibm/model_m/ashpil_usbc"
|
||||
@@ -47,10 +54,10 @@
|
||||
"target": "viktus/at101_bh"
|
||||
},
|
||||
"atom47/rev2": {
|
||||
"target": "maartenwut/atom47/rev2"
|
||||
"target": "evyd13/atom47/rev2"
|
||||
},
|
||||
"atom47/rev3": {
|
||||
"target": "maartenwut/atom47/rev3"
|
||||
"target": "evyd13/atom47/rev3"
|
||||
},
|
||||
"bakeneko60": {
|
||||
"target": "kkatano/bakeneko60"
|
||||
@@ -65,7 +72,7 @@
|
||||
"target": "bear_face/v1"
|
||||
},
|
||||
"bm16a": {
|
||||
"target": "kprepublic/bm16a"
|
||||
"target": "kprepublic/bm16a/v1"
|
||||
},
|
||||
"bm16s": {
|
||||
"target": "kprepublic/bm16s"
|
||||
@@ -77,16 +84,16 @@
|
||||
"target": "kprepublic/bm43a"
|
||||
},
|
||||
"bm60poker": {
|
||||
"target": "kprepublic/bm60poker"
|
||||
"target": "kprepublic/bm60hsrgb_poker/rev1"
|
||||
},
|
||||
"bm60rgb": {
|
||||
"target": "kprepublic/bm60rgb"
|
||||
"target": "kprepublic/bm60hsrgb/rev1"
|
||||
},
|
||||
"bm60rgb_iso": {
|
||||
"target": "kprepublic/bm60rgb_iso"
|
||||
"target": "kprepublic/bm60hsrgb_iso/rev1"
|
||||
},
|
||||
"bm68rgb": {
|
||||
"target": "kprepublic/bm68rgb"
|
||||
"target": "kprepublic/bm68hsrgb/rev1"
|
||||
},
|
||||
"bpiphany/pegasushoof": {
|
||||
"target": "bpiphany/pegasushoof/2013"
|
||||
@@ -140,7 +147,10 @@
|
||||
"target": "jagdpietr/drakon"
|
||||
},
|
||||
"durgod/k320": {
|
||||
"target": "durgod/k3x0/k320"
|
||||
"target": "durgod/k320/base"
|
||||
},
|
||||
"durgod/k3x0/k320": {
|
||||
"target": "durgod/k320/base"
|
||||
},
|
||||
"durgod/hades": {
|
||||
"target": "durgod/dgk6x/hades_ansi"
|
||||
@@ -269,7 +279,7 @@
|
||||
"target": "idb/idb_60"
|
||||
},
|
||||
"idobo": {
|
||||
"target": "idobao/id75"
|
||||
"target": "idobao/id75/v1"
|
||||
},
|
||||
"jacky_studio/piggy60": {
|
||||
"target": "jacky_studio/piggy60/rev1"
|
||||
@@ -401,7 +411,7 @@
|
||||
"target": "mechlovin/adelais/rgb_led/rev1"
|
||||
},
|
||||
"mechlovin/adelais/standard_led": {
|
||||
"target": "mechlovin/adelais/standard_led/rev2"
|
||||
"target": "mechlovin/adelais/standard_led/arm/rev2"
|
||||
},
|
||||
"mechlovin/delphine": {
|
||||
"target": "mechlovin/delphine/mono_led"
|
||||
@@ -455,10 +465,10 @@
|
||||
"target": "pabile/p20/ver1"
|
||||
},
|
||||
"pancake/feather": {
|
||||
"target": "spaceman/pancake/feather"
|
||||
"target": "spaceman/pancake/rev1/feather"
|
||||
},
|
||||
"pancake/promicro": {
|
||||
"target": "spaceman/pancake/promicro"
|
||||
"target": "spaceman/pancake/rev1/promicro"
|
||||
},
|
||||
"peiorisboards/ixora": {
|
||||
"target": "coarse/ixora"
|
||||
@@ -467,7 +477,7 @@
|
||||
"target": "dm9records/plaid"
|
||||
},
|
||||
"plain60": {
|
||||
"target": "maartenwut/plain60"
|
||||
"target": "evyd13/plain60"
|
||||
},
|
||||
"ploopyco/trackball": {
|
||||
"target": "ploopyco/trackball/rev1_005"
|
||||
@@ -503,10 +513,10 @@
|
||||
"target": "wilba_tech/rama_works_u80_a"
|
||||
},
|
||||
"ramonimbao/herringbone": {
|
||||
"target": "ramonimbao/herringbone/v1"
|
||||
"target": "rmi_kb/herringbone/v1"
|
||||
},
|
||||
"ramonimbao/mona": {
|
||||
"target": "ramonimbao/mona/v1"
|
||||
"target": "rmi_kb/mona/v1"
|
||||
},
|
||||
"rgbkb/pan": {
|
||||
"target": "rgbkb/pan/rev1/32a"
|
||||
@@ -542,10 +552,10 @@
|
||||
"target": "tkw/stoutgat/v1"
|
||||
},
|
||||
"suihankey": {
|
||||
"target": "suihankey/split/alpha"
|
||||
"target": "kakunpc/suihankey/split/alpha"
|
||||
},
|
||||
"ta65": {
|
||||
"target": "maartenwut/ta65"
|
||||
"target": "evyd13/ta65"
|
||||
},
|
||||
"tartan": {
|
||||
"target": "dm9records/tartan"
|
||||
@@ -563,13 +573,13 @@
|
||||
"target": "matthewdias/txuu"
|
||||
},
|
||||
"underscore33": {
|
||||
"target": "underscore33/rev1"
|
||||
"target": "tominabox1/underscore33/rev1"
|
||||
},
|
||||
"vinta": {
|
||||
"target": "coarse/vinta"
|
||||
},
|
||||
"wasdat": {
|
||||
"target": "maartenwut/wasdat"
|
||||
"target": "evyd13/wasdat"
|
||||
},
|
||||
"westfoxtrot/cypher": {
|
||||
"target": "westfoxtrot/cypher/rev1"
|
||||
@@ -581,10 +591,10 @@
|
||||
"target": "xiudi/xd002"
|
||||
},
|
||||
"xd004": {
|
||||
"target": "xiudi/xd004"
|
||||
"target": "xiudi/xd004/v1"
|
||||
},
|
||||
"xd60": {
|
||||
"target": "xiudi/xd60"
|
||||
"target": "xiudi/xd60/rev2"
|
||||
},
|
||||
"xd68": {
|
||||
"target": "xiudi/xd68"
|
||||
@@ -831,7 +841,7 @@
|
||||
"target": "kagizaraya/halberd"
|
||||
},
|
||||
"handwired/hillside/0_1": {
|
||||
"target": "handwired/hillside/48"
|
||||
"target": "hillside/48/0_1"
|
||||
},
|
||||
"hecomi/alpha": {
|
||||
"target": "takashiski/hecomi/alpha"
|
||||
@@ -843,10 +853,10 @@
|
||||
"target": "bpiphany/hid_liber"
|
||||
},
|
||||
"id67/default_rgb": {
|
||||
"target": "idobao/id67/default_rgb"
|
||||
"target": "idobao/id67"
|
||||
},
|
||||
"id67/rgb": {
|
||||
"target": "idobao/id67/rgb"
|
||||
"target": "idobao/id67"
|
||||
},
|
||||
"id80": {
|
||||
"target": "idobao/id80/v2/ansi"
|
||||
@@ -1236,7 +1246,7 @@
|
||||
"target": "marksard/treadstone48/rev2"
|
||||
},
|
||||
"tronguylabs/m122_3270": {
|
||||
"target": "ibm/model_m_122/m122_3270"
|
||||
"target": "ibm/model_m_122/m122_3270/teensy"
|
||||
},
|
||||
"ua62": {
|
||||
"target": "nacly/ua62"
|
||||
@@ -1290,7 +1300,7 @@
|
||||
"target": "ydkb/yd68"
|
||||
},
|
||||
"ymd75": {
|
||||
"target": "ymdk/ymd75"
|
||||
"target": "ymdk/ymd75/rev1"
|
||||
},
|
||||
"ymd96": {
|
||||
"target": "ymdk/ymd96"
|
||||
|
||||
@@ -29,6 +29,10 @@
|
||||
"minLength": 1,
|
||||
"maxLength": 250
|
||||
},
|
||||
"snake_case": {
|
||||
"type": "string",
|
||||
"pattern": "^[a-z][a-z0-9_]*$"
|
||||
},
|
||||
"layout_macro": {
|
||||
"oneOf": [
|
||||
{
|
||||
|
||||
@@ -256,7 +256,11 @@
|
||||
"enabled": {"type": "boolean"}
|
||||
}
|
||||
},
|
||||
"features": {"$ref": "qmk.definitions.v1#/boolean_array"},
|
||||
"features": {
|
||||
"$ref": "qmk.definitions.v1#/boolean_array",
|
||||
"propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" }
|
||||
|
||||
},
|
||||
"indicators": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@@ -370,6 +374,7 @@
|
||||
"properties": {
|
||||
"animations": {
|
||||
"type": "object",
|
||||
"propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" }
|
||||
"additionalProperties": {
|
||||
"type": "boolean"
|
||||
}
|
||||
@@ -419,6 +424,7 @@
|
||||
"properties": {
|
||||
"animations": {
|
||||
"type": "object",
|
||||
"propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" }
|
||||
"additionalProperties": {
|
||||
"type": "boolean"
|
||||
}
|
||||
@@ -471,6 +477,7 @@
|
||||
"properties": {
|
||||
"animations": {
|
||||
"type": "object",
|
||||
"propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" }
|
||||
"additionalProperties": {
|
||||
"type": "boolean"
|
||||
}
|
||||
|
||||
@@ -80,6 +80,7 @@
|
||||
* [Caps Word](feature_caps_word.md)
|
||||
* [Combos](feature_combo.md)
|
||||
* [Debounce API](feature_debounce_type.md)
|
||||
* [Digitizer](feature_digitizer.md)
|
||||
* [EEPROM](feature_eeprom.md)
|
||||
* [Key Lock](feature_key_lock.md)
|
||||
* [Key Overrides](feature_key_overrides.md)
|
||||
@@ -115,7 +116,6 @@
|
||||
* [Bootmagic Lite](feature_bootmagic.md)
|
||||
* [Converters](feature_converters.md)
|
||||
* [Custom Matrix](custom_matrix.md)
|
||||
* [Digitizer](feature_digitizer.md)
|
||||
* [DIP Switch](feature_dip_switch.md)
|
||||
* [Encoders](feature_encoders.md)
|
||||
* [Haptic Feedback](feature_haptic_feedback.md)
|
||||
|
||||
@@ -6,7 +6,7 @@ The QMK CLI makes building and working with QMK keyboards easier. We have provid
|
||||
|
||||
### Requirements :id=requirements
|
||||
|
||||
QMK requires Python 3.6 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.
|
||||
QMK requires Python 3.7 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) :id=install-using-homebrew
|
||||
|
||||
@@ -20,7 +20,7 @@ qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build
|
||||
|
||||
### Install Using pip :id=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.6 (or later) installed and have installed pip. Then install QMK with this command:
|
||||
If your system is not listed above you can install QMK manually. First ensure that you have Python 3.7 (or later) installed and have installed pip. Then install QMK with this command:
|
||||
|
||||
```
|
||||
python3 -m pip install qmk
|
||||
|
||||
@@ -44,7 +44,7 @@ def hello(cli):
|
||||
|
||||
First we import the `cli` object from `milc`. This is how we interact with the user and control the script's behavior. We use `@cli.argument()` to define a command line flag, `--name`. This also creates a configuration variable named `hello.name` (and the corresponding `user.name`) which the user can set so they don't have to specify the argument. The `cli.subcommand()` decorator designates this function as a subcommand. The name of the subcommand will be taken from the name of the function.
|
||||
|
||||
Once inside our function we find a typical "Hello, World!" program. We use `cli.log` to access the underlying [Logger Object](https://docs.python.org/3.6/library/logging.html#logger-objects), whose behavior is user controllable. We also access the value for name supplied by the user as `cli.config.hello.name`. The value for `cli.config.hello.name` will be determined by looking at the `--name` argument supplied by the user, if not provided it will use the value in the `qmk.ini` config file, and if neither of those is provided it will fall back to the default supplied in the `cli.argument()` decorator.
|
||||
Once inside our function we find a typical "Hello, World!" program. We use `cli.log` to access the underlying [Logger Object](https://docs.python.org/3.7/library/logging.html#logger-objects), whose behavior is user controllable. We also access the value for name supplied by the user as `cli.config.hello.name`. The value for `cli.config.hello.name` will be determined by looking at the `--name` argument supplied by the user, if not provided it will use the value in the `qmk.ini` config file, and if neither of those is provided it will fall back to the default supplied in the `cli.argument()` decorator.
|
||||
|
||||
# User Interaction
|
||||
|
||||
@@ -56,13 +56,13 @@ There are two main methods for outputting text in a subcommand- `cli.log` and `c
|
||||
|
||||
You can use special tokens to colorize your text, to make it easier to understand the output of your program. See [Colorizing Text](#colorizing-text) below.
|
||||
|
||||
Both of these methods support built-in string formatting using python's [printf style string format operations](https://docs.python.org/3.6/library/stdtypes.html#old-string-formatting). You can use tokens such as `%s` and `%d` within your text strings then pass the values as arguments. See our Hello, World program above for an example.
|
||||
Both of these methods support built-in string formatting using python's [printf style string format operations](https://docs.python.org/3.7/library/stdtypes.html#old-string-formatting). You can use tokens such as `%s` and `%d` within your text strings then pass the values as arguments. See our Hello, World program above for an example.
|
||||
|
||||
You should never use the format operator (`%`) directly, always pass values as arguments.
|
||||
|
||||
### Logging (`cli.log`)
|
||||
|
||||
The `cli.log` object gives you access to a [Logger Object](https://docs.python.org/3.6/library/logging.html#logger-objects). We have configured our log output to show the user a nice emoji for each log level (or the log level name if their terminal does not support unicode.) This way the user can tell at a glance which messages are most important when something goes wrong.
|
||||
The `cli.log` object gives you access to a [Logger Object](https://docs.python.org/3.7/library/logging.html#logger-objects). We have configured our log output to show the user a nice emoji for each log level (or the log level name if their terminal does not support unicode.) This way the user can tell at a glance which messages are most important when something goes wrong.
|
||||
|
||||
The default log level is `INFO`. If the user runs `qmk -v <subcommand>` the default log level will be set to `DEBUG`.
|
||||
|
||||
|
||||
@@ -317,7 +317,7 @@ At the time of this writing our tests are not very comprehensive. Looking at the
|
||||
|
||||
## Integration Tests
|
||||
|
||||
Integration tests can be found in `lib/python/qmk/tests/test_cli_commands.py`. This is where CLI commands are actually run and their overall behavior is verified. We use [`subprocess`](https://docs.python.org/3.6/library/subprocess.html#module-subprocess) to launch each CLI command and a combination of checking output and returncode to determine if the right thing happened.
|
||||
Integration tests can be found in `lib/python/qmk/tests/test_cli_commands.py`. This is where CLI commands are actually run and their overall behavior is verified. We use [`subprocess`](https://docs.python.org/3.7/library/subprocess.html#module-subprocess) to launch each CLI command and a combination of checking output and returncode to determine if the right thing happened.
|
||||
|
||||
## Unit Tests
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ Tested combinations:
|
||||
|SSD1306 |128x32 |AVR |Primary support |
|
||||
|SSD1306 |128x64 |AVR |Verified working |
|
||||
|SSD1306 |128x32 |Arm | |
|
||||
|SSD1306 |128x64 |Arm |Verified working |
|
||||
|SH1106 |128x64 |AVR |No scrolling |
|
||||
|SH1107 |64x128 |AVR |No scrolling |
|
||||
|SH1107 |64x128 |Arm |No scrolling |
|
||||
@@ -398,7 +399,7 @@ void oled_scroll_set_area(uint8_t start_line, uint8_t end_line);
|
||||
// Sets scroll speed, 0-7, fastest to slowest. Default is three.
|
||||
// Does not take effect until scrolling is either started or restarted
|
||||
// the ssd1306 supports 8 speeds with the delay
|
||||
// listed below betwen each frame of the scrolling effect
|
||||
// listed below between each frame of the scrolling effect
|
||||
// 0=2, 1=3, 2=4, 3=5, 4=25, 5=64, 6=128, 7=256
|
||||
void oled_scroll_set_speed(uint8_t speed);
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Programmable Buttons are keys that have no predefined meaning. This means they can be processed on the host side by custom software without the operating system trying to interpret them.
|
||||
|
||||
The keycodes are emitted according to the HID Telephony Device page (`0x0B`), Programmable Button usage (`0x07`). On Linux (> 5.14) they are handled automatically and translated to `KEY_MACRO#` keycodes (up to `KEY_MACRO30`).
|
||||
The keycodes are emitted according to the HID Telephony Device page (`0x0B`), Programmable Button usage (`0x09`). On Linux (> 5.14) they are handled automatically and translated to `KEY_MACRO#` keycodes (up to `KEY_MACRO30`).
|
||||
|
||||
?> Currently there is no known support in Windows or macOS. It may be possible to write a custom HID driver to receive these usages, but this is out of the scope of the QMK documentation.
|
||||
|
||||
|
||||
@@ -155,6 +155,29 @@ In your keyboard config.h:
|
||||
#endif
|
||||
```
|
||||
|
||||
### RP2040 PIO Version :id=rp2040-pio-version
|
||||
|
||||
The `PIO` subsystem is a Raspberry Pi RP2040 specific implementation, using the integrated PIO peripheral and is therefore only available on this MCU.
|
||||
|
||||
There are strict requirements for pin ordering but any pair of GPIO pins can be used. The GPIO used for clock must be directly after data, see the included info.json snippet for an example of correct order.
|
||||
|
||||
You may optionally switch the PIO peripheral used with the following define in config.h:
|
||||
```c
|
||||
#define PS2_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the PS2 implementation uses the PIO0 peripheral
|
||||
```
|
||||
|
||||
Example info.json content:
|
||||
|
||||
```json
|
||||
"ps2": {
|
||||
"clock_pin": "GP1",
|
||||
"data_pin": "GP0",
|
||||
"driver": "vendor",
|
||||
"enabled": true,
|
||||
"mouse_enabled": true
|
||||
}
|
||||
```
|
||||
|
||||
## Additional Settings :id=additional-settings
|
||||
|
||||
### PS/2 Mouse Features :id=ps2-mouse-features
|
||||
|
||||
@@ -40,7 +40,7 @@ Eg, if you wanted to set the "Adjust" layer to be layer 5, you'd add this to you
|
||||
| `set_tri_layer_lower_layer(layer)` | Changes the "lower" layer*. |
|
||||
| `set_tri_layer_upper_layer(layer)` | Changes the "upper" layer*. |
|
||||
| `set_tri_layer_adjust_layer(layer)` | Changes the "adjust" layer*. |
|
||||
| `set_tri_layer_layers(lower, upper, adjust)` | Stes the "lower", "upper" and "adjust" layers*. |
|
||||
| `set_tri_layer_layers(lower, upper, adjust)` | Sets the "lower", "upper" and "adjust" layers*. |
|
||||
| `get_tri_layer_lower_layer()` | Gets the current "lower" layer. |
|
||||
| `get_tri_layer_upper_layer()` | Gets the current "upper" layer. |
|
||||
| `get_tri_layer_adjust_layer()` | Gets the current "adjust" layer. |
|
||||
|
||||
@@ -140,7 +140,7 @@ To set the list of enabled input modes, add the `UNICODE_SELECTED_MODES` define
|
||||
```c
|
||||
#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX
|
||||
// or
|
||||
#define UNICODE_SELECTED_MODES UNICODE_MODE_MAC, UNICODE_MODE_WINCOMPOSE
|
||||
#define UNICODE_SELECTED_MODES UNICODE_MODE_MACOS, UNICODE_MODE_WINCOMPOSE
|
||||
```
|
||||
|
||||
These modes can then be cycled through using the `UC_NEXT` and `UC_PREV` keycodes. You can also switch to any input mode, even if it is not specified in `UNICODE_SELECTED_MODES`, using their respective keycodes.
|
||||
@@ -151,7 +151,7 @@ If your keyboard has working EEPROM, it will remember the last used input mode a
|
||||
|
||||
### ** macOS **
|
||||
|
||||
**Mode Name:** `UNICODE_MODE_MAC`
|
||||
**Mode Name:** `UNICODE_MODE_MACOS`
|
||||
|
||||
macOS has built-in support for Unicode input as its own input source. It supports all possible code points by way of surrogate pairs for code points above `U+FFFF`.
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ QMK maintains a Homebrew tap and formula which will automatically install the CL
|
||||
|
||||
You will need to install Homebrew. Follow the instructions on https://brew.sh.
|
||||
|
||||
!> **NOTE:** If you are using Apple Silicon, such as the M1, you will need to install a rosetta compatible version of Homebrew. This version does not override the base Homebrew. This can be done by running `arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"`. See here: [Rosetta-compatible Homebrew](https://stackoverflow.com/questions/64882584/how-to-run-the-homebrew-installer-under-rosetta-2-on-m1-macbook)
|
||||
?> If you are using an Apple Silicon machine, the installation process will take significantly longer because GitHub actions do not have native runners to build binary packages for the ARM and AVR toolchains.
|
||||
|
||||
#### Installation
|
||||
|
||||
@@ -64,10 +64,6 @@ Install the QMK CLI by running:
|
||||
|
||||
brew install qmk/qmk/qmk
|
||||
|
||||
Install the QMK CLI on an Apple Silicon Mac by running:
|
||||
|
||||
arch -x86_64 brew install qmk/qmk/qmk
|
||||
|
||||
### ** Linux/WSL **
|
||||
|
||||
?> **Note for WSL users**: By default, the installation process will clone the QMK repository into your WSL home directory, but if you have cloned manually, ensure that it is located inside the WSL instance instead of the Windows filesystem (ie. not in `/mnt`), as accessing it is currently [extremely slow](https://github.com/microsoft/WSL/issues/4197).
|
||||
|
||||
@@ -80,6 +80,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
|
||||
- Encoder Configuration
|
||||
- Bootmagic Configuration
|
||||
- LED Indicator Configuration
|
||||
- Run `qmk format-json` on this file before submitting your PR. Be sure to append the `-i` flag to directly modify the file, or paste the outputted code into the file.
|
||||
- `readme.md`
|
||||
- must follow the [template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md)
|
||||
- flash command is present, and has `:flash` at end
|
||||
|
||||
@@ -2,9 +2,13 @@
|
||||
background-color: #555;
|
||||
}
|
||||
|
||||
.markdown-section p.tip,
|
||||
.markdown-section tr:nth-child(2n) {
|
||||
background-color:#444;
|
||||
background-color:#444;
|
||||
}
|
||||
|
||||
.markdown-section p.tip {
|
||||
background-color:#555;
|
||||
color:#FFF;
|
||||
}
|
||||
|
||||
.markdown-section tr {
|
||||
@@ -16,7 +20,7 @@
|
||||
}
|
||||
|
||||
.markdown-section p.tip code {
|
||||
background-color: #555;
|
||||
background-color: #333;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# include "spi_master.h"
|
||||
#elif defined(OLED_TRANSPORT_I2C)
|
||||
# include "i2c_master.h"
|
||||
# if defined(USE_I2C) && defined(SPLIT_KEYBOARD)
|
||||
# include "keyboard.h"
|
||||
# endif
|
||||
#endif
|
||||
#include "oled_driver.h"
|
||||
#include OLED_FONT_H
|
||||
|
||||
@@ -454,7 +454,7 @@ void oled_scroll_set_area(uint8_t start_line, uint8_t end_line);
|
||||
// Sets scroll speed, 0-7, fastest to slowest. Default is three.
|
||||
// Does not take effect until scrolling is either started or restarted
|
||||
// the ssd1306 supports 8 speeds with the delay
|
||||
// listed below betwen each frame of the scrolling effect
|
||||
// listed below between each frame of the scrolling effect
|
||||
// 0=2, 1=3, 2=4, 3=5, 4=25, 5=64, 6=128, 7=256
|
||||
void oled_scroll_set_speed(uint8_t speed);
|
||||
|
||||
|
||||
400
keyboards/1upkeyboards/1upslider8/1upslider8.c
Normal file
400
keyboards/1upkeyboards/1upslider8/1upslider8.c
Normal file
@@ -0,0 +1,400 @@
|
||||
/* Copyright 2022 ziptyze
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
#include "analog.h"
|
||||
#include "qmk_midi.h"
|
||||
|
||||
#include "quantum.h"
|
||||
#include "quantum/midi/midi.h"
|
||||
#include "quantum/midi/midi_device.h"
|
||||
|
||||
uint8_t divisor = 0;
|
||||
void slider(void) {
|
||||
if (divisor++) { // only run the slider function 1/256 times it's called
|
||||
return;
|
||||
}
|
||||
midi_send_cc(&midi_device, 2, 0x3E, 0x7F - (analogReadPin(SLIDER_PIN) >> 3));
|
||||
uprintf("%d string", analogReadPin(SLIDER_PIN));
|
||||
}
|
||||
|
||||
void housekeeping_task_kb(void) {
|
||||
slider();
|
||||
housekeeping_task_user();
|
||||
}
|
||||
|
||||
static uint32_t oled_logo_timer = 0;
|
||||
static bool clear_logo = true;
|
||||
static const char PROGMEM my_logo[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xC0,
|
||||
0xE0, 0xF0, 0x70, 0x70, 0x70, 0x70,
|
||||
0xF0, 0xE0, 0xC0, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x63, 0xE7, 0xE7, 0xCE, 0xCE,
|
||||
0xCE, 0xCE, 0xFC, 0xFC, 0x78, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC1,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
|
||||
0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x07, 0x07, 0x07, 0x07, 0x07,
|
||||
0x07, 0x07, 0x07, 0x07, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFC, 0xFC, 0xFC, 0x1C, 0x1C, 0x1C,
|
||||
0x1C, 0x3C, 0xF8, 0xF8, 0xE0, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x70,
|
||||
0x70, 0x70, 0x70, 0x78, 0x3F, 0x3F,
|
||||
0x0F, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xF0,
|
||||
0xF0, 0xF0, 0x70, 0x70, 0x70, 0x70,
|
||||
0x70, 0x70, 0x70, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0xFF, 0xFF, 0xFF, 0xCE, 0xCE,
|
||||
0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xC0, 0xC1, 0xC1, 0xC1,
|
||||
0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0x81,
|
||||
0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF,
|
||||
0xFF, 0x39, 0x39, 0x79, 0xF9, 0xF9,
|
||||
0xDF, 0x9F, 0x0F, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0x07, 0x07, 0x00, 0x00, 0x00,
|
||||
0x00, 0x03, 0x07, 0x07, 0x06, 0x04,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x1C, 0xBE,
|
||||
0xFF, 0x63, 0x63, 0xFF, 0xBE, 0x1C,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x07, 0x0F, 0x1F, 0x18, 0x18, 0x1F,
|
||||
0x0F, 0x07, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00
|
||||
};
|
||||
|
||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||
return OLED_ROTATION_270;
|
||||
}
|
||||
|
||||
|
||||
static const char PROGMEM ou_logo[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xFC, 0xFC, 0xCF, 0xCF,
|
||||
0x03, 0x03, 0x03, 0x03, 0xFF, 0xFF,
|
||||
0x03, 0x03, 0xFF, 0xFF, 0x03, 0x03,
|
||||
0x03, 0x03, 0xFF, 0xFF, 0x03, 0x03,
|
||||
0x03, 0x03, 0xF3, 0xF3, 0x03, 0x03,
|
||||
0x0C, 0x0C, 0xFC, 0xFC, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xC0, 0xC0, 0xC0, 0xC0,
|
||||
0xFF, 0xFF, 0xF0, 0xF0, 0xC3, 0xC3,
|
||||
0xC0, 0xC0, 0xF0, 0xF0, 0xFF, 0xFF,
|
||||
0xC0, 0xC0, 0xC0, 0xC0, 0xFC, 0xFC,
|
||||
0x0C, 0x0C, 0x0F, 0x0F, 0x03, 0x03,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00
|
||||
};
|
||||
|
||||
|
||||
static char PROGMEM caps_on[] = {
|
||||
0x00, 0x00, 0x00, 0xF8, 0x04, 0x04,
|
||||
0x04, 0x88, 0x00, 0x00, 0xE0, 0x58,
|
||||
0x44, 0x58, 0xE0, 0x00, 0x00, 0xFC,
|
||||
0x24, 0x24, 0x24, 0x18, 0x00, 0x00,
|
||||
0x98, 0x24, 0x24, 0x24, 0xC8, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x01, 0x01, 0x00, 0x00, 0x81,
|
||||
0xC0, 0xE0, 0xF0, 0xF0, 0xF0, 0xF1,
|
||||
0xF0, 0xF1, 0xF0, 0xF0, 0xE0, 0xC0,
|
||||
0x80, 0x00, 0x00, 0x01, 0x01, 0x01,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x03, 0x07, 0x0F, 0x1F,
|
||||
0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
|
||||
0x3F, 0x3F, 0x1F, 0x0F, 0x07, 0x03,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00
|
||||
};
|
||||
|
||||
static char PROGMEM caps_off[] = {
|
||||
0x00, 0x00, 0x00, 0xF8, 0x04, 0x04,
|
||||
0x04, 0x88, 0x00, 0x00, 0xE0, 0x58,
|
||||
0x44, 0x58, 0xE0, 0x00, 0x00, 0xFC,
|
||||
0x24, 0x24, 0x24, 0x18, 0x00, 0x00,
|
||||
0x98, 0x24, 0x24, 0x24, 0xC8, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x01, 0x01, 0x00, 0x00, 0x81,
|
||||
0xC0, 0xE0, 0xF0, 0x70, 0x30, 0x31,
|
||||
0x30, 0x31, 0x70, 0xF0, 0xE0, 0xC0,
|
||||
0x80, 0x00, 0x00, 0x01, 0x01, 0x01,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0x03, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x03, 0xFF, 0xFF, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x03, 0x07, 0x0F, 0x1E,
|
||||
0x3C, 0x38, 0x30, 0x30, 0x30, 0x30,
|
||||
0x38, 0x3C, 0x1E, 0x0F, 0x07, 0x03,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00
|
||||
};
|
||||
|
||||
static const char PROGMEM num_on[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xFC,
|
||||
0x18, 0x20, 0xC0, 0xFC, 0x00, 0x00,
|
||||
0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC,
|
||||
0x00, 0x00, 0xFC, 0x18, 0x60, 0x80,
|
||||
0x60, 0x18, 0xFC, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x01, 0x00, 0x00, 0x00, 0x81,
|
||||
0xC0, 0xE0, 0xF0, 0xF0, 0xF1, 0xF1,
|
||||
0xF1, 0xF0, 0xF0, 0xF0, 0xE1, 0xC0,
|
||||
0x80, 0x01, 0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x03, 0x07, 0x0F, 0x1F,
|
||||
0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
|
||||
0x3F, 0x3F, 0x1F, 0x0F, 0x07, 0x03,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00
|
||||
};
|
||||
|
||||
static const char PROGMEM num_off[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xFC,
|
||||
0x18, 0x20, 0xC0, 0xFC, 0x00, 0x00,
|
||||
0x00, 0xFC, 0x00, 0x00, 0x00, 0xFC,
|
||||
0x00, 0x00, 0xFC, 0x18, 0x60, 0x80,
|
||||
0x60, 0x18, 0xFC, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x01, 0x00, 0x00, 0x00, 0x81,
|
||||
0xC0, 0xE0, 0xF0, 0x70, 0x31, 0x31,
|
||||
0x31, 0x30, 0x70, 0xF0, 0xE1, 0xC0,
|
||||
0x80, 0x01, 0x00, 0x00, 0x01, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0x03, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x03, 0xFF, 0xFF, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x03, 0x07, 0x0F, 0x1E,
|
||||
0x3C, 0x38, 0x30, 0x30, 0x30, 0x30,
|
||||
0x38, 0x3C, 0x1E, 0x0F, 0x07, 0x03,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00
|
||||
};
|
||||
|
||||
static const char PROGMEM scrl_on[] = {
|
||||
0x00, 0x00, 0x00, 0x98, 0x24, 0x24,
|
||||
0x24, 0xC8, 0x00, 0x00, 0xF8, 0x04,
|
||||
0x04, 0x04, 0x88, 0x00, 0x00, 0xFC,
|
||||
0x24, 0x24, 0xE4, 0x18, 0x00, 0x00,
|
||||
0x00, 0xFC, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x01, 0x01, 0x00, 0x00, 0x80,
|
||||
0xC0, 0xE1, 0xF1, 0xF1, 0xF0, 0xF0,
|
||||
0xF0, 0xF1, 0xF0, 0xF0, 0xE0, 0xC1,
|
||||
0x80, 0x00, 0x00, 0x01, 0x01, 0x01,
|
||||
0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
|
||||
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x03, 0x07, 0x0F, 0x1F,
|
||||
0x3F, 0x3F, 0x3F, 0x3F, 0x3F, 0x3F,
|
||||
0x3F, 0x3F, 0x1F, 0x0F, 0x07, 0x03,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00
|
||||
};
|
||||
|
||||
static const char PROGMEM scrl_off[] = {
|
||||
0x00, 0x00, 0x00, 0x98, 0x24, 0x24,
|
||||
0x24, 0xC8, 0x00, 0x00, 0xF8, 0x04,
|
||||
0x04, 0x04, 0x88, 0x00, 0x00, 0xFC,
|
||||
0x24, 0x24, 0xE4, 0x18, 0x00, 0x00,
|
||||
0x00, 0xFC, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x01, 0x01, 0x00, 0x00, 0x80,
|
||||
0xC0, 0xE1, 0xF1, 0x71, 0x30, 0x30,
|
||||
0x30, 0x31, 0x70, 0xF0, 0xE0, 0xC1,
|
||||
0x80, 0x00, 0x00, 0x01, 0x01, 0x01,
|
||||
0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFF, 0xFF, 0x03, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x03, 0xFF, 0xFF, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x03, 0x07, 0x0F, 0x1E,
|
||||
0x3C, 0x38, 0x30, 0x30, 0x30, 0x30,
|
||||
0x38, 0x3C, 0x1E, 0x0F, 0x07, 0x03,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00
|
||||
};
|
||||
|
||||
static void render_oled(void) {
|
||||
const int combined_size = sizeof(ou_logo) + sizeof(caps_off) + sizeof(num_off) + sizeof(scrl_off);
|
||||
char combined[combined_size];
|
||||
led_t led_state = host_keyboard_led_state();
|
||||
|
||||
memcpy_P(combined, ou_logo, sizeof(ou_logo));
|
||||
|
||||
if (led_state.caps_lock) {
|
||||
memcpy_P(combined + sizeof(ou_logo), caps_on, sizeof(caps_off));
|
||||
}
|
||||
else {
|
||||
memcpy_P(combined + sizeof(ou_logo), caps_off, sizeof(caps_off));
|
||||
}
|
||||
|
||||
if (led_state.num_lock) {
|
||||
memcpy_P(combined + sizeof(ou_logo) + sizeof(caps_off), num_on, sizeof(num_off));
|
||||
}
|
||||
else {
|
||||
memcpy_P(combined + sizeof(ou_logo) + sizeof(caps_off), num_off, sizeof(num_off));
|
||||
}
|
||||
|
||||
if (led_state.scroll_lock) {
|
||||
memcpy_P(combined + sizeof(ou_logo) + sizeof(caps_off) + sizeof(num_off), scrl_on, sizeof(scrl_off));
|
||||
}
|
||||
else {
|
||||
memcpy_P(combined + sizeof(ou_logo) + sizeof(caps_off) + sizeof(num_off), scrl_off, sizeof(scrl_off));
|
||||
}
|
||||
|
||||
oled_write_raw_P(combined, sizeof(combined));
|
||||
}
|
||||
|
||||
void render_logo(void) {
|
||||
oled_write_raw_P(my_logo, sizeof(my_logo));
|
||||
}
|
||||
|
||||
void clear_screen(void) {
|
||||
if (clear_logo){
|
||||
for (uint8_t i = 0; i < OLED_DISPLAY_HEIGHT; ++i) {
|
||||
for (uint8_t j = 0; j < OLED_DISPLAY_WIDTH; ++j) {
|
||||
oled_write_raw_byte(0x0, i*OLED_DISPLAY_WIDTH + j);
|
||||
}
|
||||
}
|
||||
clear_logo = false;
|
||||
}
|
||||
}
|
||||
|
||||
#define MIDI_CONTROL_CHANGE 0xB0
|
||||
|
||||
MidiDevice _midi_device;
|
||||
|
||||
void midi_callback(uint8_t cable, uint8_t *midi_data, uint16_t length) {
|
||||
// Check if this is a MIDI CC message on channel 2
|
||||
if ((midi_data[0] & 0xF0) == MIDI_CONTROL_CHANGE && midi_data[0] & (0x0F == 1)) {
|
||||
uprintf("%s string", midi_data );
|
||||
// ...
|
||||
}
|
||||
}
|
||||
|
||||
void slider8_cc_callback(struct _midi_device *dev, uint8_t cable, uint8_t code_index, uint8_t value) {
|
||||
midi_callback(MIDI_CONTROL_CHANGE, &value, 1);
|
||||
}
|
||||
|
||||
void init_timer(void){
|
||||
oled_logo_timer = timer_read32();
|
||||
};
|
||||
|
||||
void keyboard_post_init_kb(void) {
|
||||
init_timer();
|
||||
|
||||
keyboard_post_init_user();
|
||||
}
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
midi_register_cc_callback(&_midi_device, slider8_cc_callback);
|
||||
matrix_init_user();
|
||||
}
|
||||
|
||||
#ifndef SHOW_LOGO
|
||||
# define SHOW_LOGO 5000
|
||||
#endif
|
||||
bool oled_task_kb(void) {
|
||||
if (!oled_task_user()) { return false; }
|
||||
if ((timer_elapsed32(oled_logo_timer) < SHOW_LOGO)){
|
||||
render_logo();
|
||||
}else{
|
||||
clear_screen();
|
||||
render_oled();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
29
keyboards/1upkeyboards/1upslider8/config.h
Normal file
29
keyboards/1upkeyboards/1upslider8/config.h
Normal file
@@ -0,0 +1,29 @@
|
||||
/* Copyright 2023 Ziptyze
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define I2C1_SCL_PIN GP11
|
||||
#define I2C1_SDA_PIN GP10
|
||||
#define OLED_BRIGHTNESS 128
|
||||
|
||||
#define SLIDER_PIN GP28
|
||||
#define MIDI_ADVANCED
|
||||
|
||||
#define RGB_MATRIX_LED_COUNT 8
|
||||
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses
|
||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
|
||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
9
keyboards/1upkeyboards/1upslider8/halconf.h
Normal file
9
keyboards/1upkeyboards/1upslider8/halconf.h
Normal file
@@ -0,0 +1,9 @@
|
||||
// Copyright 2023 ziptyze
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later#pragma once
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_I2C TRUE
|
||||
#define HAL_USE_ADC TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
115
keyboards/1upkeyboards/1upslider8/info.json
Normal file
115
keyboards/1upkeyboards/1upslider8/info.json
Normal file
@@ -0,0 +1,115 @@
|
||||
{
|
||||
"manufacturer": "1upkeyboards",
|
||||
"keyboard_name": "1upslider8",
|
||||
"maintainer": "ziptyze",
|
||||
"processor": "RP2040",
|
||||
"bootloader": "rp2040",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x5611",
|
||||
"vid": "0x6F75"
|
||||
},
|
||||
"dynamic_keymap": {
|
||||
"layer_count": 10
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": false,
|
||||
"oled": true,
|
||||
"midi":true,
|
||||
"rgb_matrix": true,
|
||||
"encoder": true
|
||||
},
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{
|
||||
"pin_a": "GP21",
|
||||
"pin_b": "GP22"
|
||||
}
|
||||
]
|
||||
},
|
||||
"matrix_pins": {
|
||||
"direct": [
|
||||
["GP27", "GP17", "GP18", "GP19", "GP20", "GP15", "GP14", "GP13", "GP16"]
|
||||
]
|
||||
},
|
||||
"bootmagic": {
|
||||
"matrix": [0, 1]
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "GP26",
|
||||
"driver": "vendor"
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"animations": {
|
||||
"gradient_up_down": true,
|
||||
"gradient_left_right": true,
|
||||
"breathing": true,
|
||||
"band_sat": true,
|
||||
"band_val": true,
|
||||
"band_pinwheel_sat": true,
|
||||
"band_pinwheel_val": true,
|
||||
"band_spiral_sat": true,
|
||||
"band_spiral_val": true,
|
||||
"cycle_all": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_up_down": true,
|
||||
"rainbow_moving_chevron":true,
|
||||
"cycle_out_in": true,
|
||||
"cycle_out_in_dual": true,
|
||||
"cycle_pinwheel": true,
|
||||
"cycle_spiral": true,
|
||||
"dual_beacon": true,
|
||||
"rainbow_beacon": true,
|
||||
"rainbow_pinwheels": true,
|
||||
"raindrops": true,
|
||||
"jellybean_raindrops": true,
|
||||
"hue_breathing": true,
|
||||
"hue_pendulum": true,
|
||||
"hue_wave": true,
|
||||
"typing_heatmap": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_reactive": true,
|
||||
"solid_reactive_wide": true,
|
||||
"solid_reactive_multiwide": true,
|
||||
"solid_reactive_cross": true,
|
||||
"solid_reactive_multicross": true,
|
||||
"solid_reactive_nexus": true,
|
||||
"solid_reactive_multinexus": true,
|
||||
"splash": true,
|
||||
"multisplash": true,
|
||||
"solid_splash": true,
|
||||
"solid_multisplash": true
|
||||
},
|
||||
"driver": "ws2812",
|
||||
"layout": [
|
||||
{ "flags": 4, "matrix": [0, 1], "x": 28, "y": 16 },
|
||||
{ "flags": 4, "matrix": [0, 2], "x": 84, "y": 16 },
|
||||
{ "flags": 4, "matrix": [0, 3], "x": 140, "y": 16 },
|
||||
{ "flags": 4, "matrix": [0, 4], "x": 196, "y": 16 },
|
||||
{ "flags": 4, "matrix": [0, 5], "x": 28, "y": 48 },
|
||||
{ "flags": 4, "matrix": [0, 6], "x": 84, "y": 48 },
|
||||
{ "flags": 4, "matrix": [0, 7], "x": 140, "y": 48 },
|
||||
{ "flags": 4, "matrix": [0, 8], "x": 196, "y": 48 }
|
||||
]
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{ "label": "enc", "matrix": [0, 0], "x": 3, "y": 0 },
|
||||
{ "label": "1", "matrix": [0, 1], "x": 0, "y": 1 },
|
||||
{ "label": "2", "matrix": [0, 2], "x": 1, "y": 1 },
|
||||
{ "label": "3", "matrix": [0, 3], "x": 2, "y": 1 },
|
||||
{ "label": "4", "matrix": [0, 4], "x": 3, "y": 1 },
|
||||
{ "label": "5", "matrix": [0, 5], "x": 0, "y": 2 },
|
||||
{ "label": "6", "matrix": [0, 6], "x": 1, "y": 2 },
|
||||
{ "label": "7", "matrix": [0, 7], "x": 2, "y": 2 },
|
||||
{ "label": "8", "matrix": [0, 8], "x": 3, "y": 2 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
31
keyboards/1upkeyboards/1upslider8/keymaps/default/keymap.c
Normal file
31
keyboards/1upkeyboards/1upslider8/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,31 @@
|
||||
/* Copyright 2022 ziptyze
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
RGB_TOG,
|
||||
KC_1, KC_2, KC_3, KC_4,
|
||||
KC_5, KC_6, KC_7, KC_8
|
||||
)
|
||||
};
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[0] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)}
|
||||
};
|
||||
#endif
|
||||
@@ -0,0 +1 @@
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
31
keyboards/1upkeyboards/1upslider8/keymaps/via/keymap.c
Normal file
31
keyboards/1upkeyboards/1upslider8/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,31 @@
|
||||
/* Copyright 2023 ziptyze
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
RGB_TOG,
|
||||
KC_1, KC_2, KC_3, KC_4,
|
||||
KC_5, KC_6, KC_7, KC_8
|
||||
)
|
||||
};
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[0] = { ENCODER_CCW_CW(RGB_RMOD, RGB_MOD)}
|
||||
};
|
||||
#endif
|
||||
3
keyboards/1upkeyboards/1upslider8/keymaps/via/rules.mk
Normal file
3
keyboards/1upkeyboards/1upslider8/keymaps/via/rules.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
VIA_ENABLE = yes
|
||||
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
11
keyboards/1upkeyboards/1upslider8/mcuconf.h
Normal file
11
keyboards/1upkeyboards/1upslider8/mcuconf.h
Normal file
@@ -0,0 +1,11 @@
|
||||
// Copyright 2023 ziptyze
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later#pragma once
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef RP_I2C_USE_I2C1
|
||||
#undef RP_ADC_USE_ADC1
|
||||
#define RP_I2C_USE_I2C1 TRUE
|
||||
#define RP_ADC_USE_ADC1 TRUE
|
||||
27
keyboards/1upkeyboards/1upslider8/readme.md
Normal file
27
keyboards/1upkeyboards/1upslider8/readme.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# slider8
|
||||
|
||||

|
||||
|
||||
|
||||
This keyboard is the slider8 from 1upkeyboards.com, a small macropad with an oled, slide potentiometer, rotary encoder, and 8 switches in a 2x4 ortholinear arrangement with per-key in-switch rgb leds.
|
||||
|
||||
The slide potentiometer presents to the computer as a midi device and will need a seperate program to map to device control.
|
||||
|
||||
* Keyboard Maintainer: [ziptyze](https://github.com/ziptyze)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make 1upkeyboards/1upslider8:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make 1upkeyboards/1upslider8:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 2 ways:
|
||||
|
||||
* **Bootmagic reset**: Hold down the top left key and plug in the keyboard
|
||||
* **Physical reset button**: Hold down the button on the pi pico and plug in the keyboard
|
||||
1
keyboards/1upkeyboards/1upslider8/rules.mk
Normal file
1
keyboards/1upkeyboards/1upslider8/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
SRC += analog.c
|
||||
22
keyboards/1upkeyboards/1upsuper16v3/config.h
Normal file
22
keyboards/1upkeyboards/1upsuper16v3/config.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/* Copyright 2023 ziptyze
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define RGB_MATRIX_LED_COUNT 48
|
||||
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses
|
||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended
|
||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
164
keyboards/1upkeyboards/1upsuper16v3/info.json
Normal file
164
keyboards/1upkeyboards/1upsuper16v3/info.json
Normal file
@@ -0,0 +1,164 @@
|
||||
{
|
||||
"manufacturer": "1upkeyboards",
|
||||
"keyboard_name": "1upsuper16v3",
|
||||
"maintainer": "ziptyze",
|
||||
"bootloader": "rp2040",
|
||||
"dynamic_keymap": {
|
||||
"layer_count": 10
|
||||
},
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "GP20", "pin_b": "GP21"},
|
||||
{"pin_a": "GP25", "pin_b": "GP26"},
|
||||
{"pin_a": "GP2", "pin_b": "GP3"},
|
||||
{"pin_a": "GP6", "pin_b": "GP7"}
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"encoder": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": false,
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"direct": [
|
||||
["GP23", "GP24", "GP4", "GP5"],
|
||||
["GP19", "GP27", "GP1", "GP8"],
|
||||
["GP18", "GP28", "GP0", "GP9"],
|
||||
["GP17", "GP16", "GP15", "GP11"]
|
||||
]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"rgb_matrix": {
|
||||
"animations": {
|
||||
"band_pinwheel_sat": true,
|
||||
"band_pinwheel_val": true,
|
||||
"band_sat": true,
|
||||
"band_spiral_sat": true,
|
||||
"band_spiral_val": true,
|
||||
"band_val": true,
|
||||
"breathing": true,
|
||||
"cycle_all": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_out_in": true,
|
||||
"cycle_out_in_dual": true,
|
||||
"cycle_pinwheel": true,
|
||||
"cycle_spiral": true,
|
||||
"cycle_up_down": true,
|
||||
"digital_rain": true,
|
||||
"dual_beacon": true,
|
||||
"gradient_left_right": true,
|
||||
"gradient_up_down": true,
|
||||
"hue_breathing": true,
|
||||
"hue_pendulum": true,
|
||||
"hue_wave": true,
|
||||
"jellybean_raindrops": true,
|
||||
"multisplash": true,
|
||||
"pixel_flow": true,
|
||||
"pixel_rain": true,
|
||||
"rainbow_beacon": true,
|
||||
"rainbow_moving_chevron": true,
|
||||
"rainbow_pinwheels": true,
|
||||
"raindrops": true,
|
||||
"solid_multisplash": true,
|
||||
"solid_reactive": true,
|
||||
"solid_reactive_cross": true,
|
||||
"solid_reactive_multicross": true,
|
||||
"solid_reactive_multinexus": true,
|
||||
"solid_reactive_multiwide": true,
|
||||
"solid_reactive_nexus": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_reactive_wide": true,
|
||||
"solid_splash": true,
|
||||
"splash": true,
|
||||
"typing_heatmap": true
|
||||
},
|
||||
"driver": "ws2812",
|
||||
"layout": [
|
||||
{"x": 99, "y": 1, "flags": 2},
|
||||
{"x": 70, "y": 1, "flags": 2},
|
||||
{"x": 42, "y": 1, "flags": 2},
|
||||
{"x": 14, "y": 1, "flags": 2},
|
||||
{"x": 4, "y": 4, "flags": 2},
|
||||
{"x": 4, "y": 12, "flags": 2},
|
||||
{"matrix": [0, 0], "x": 28, "y": 8, "flags": 4},
|
||||
{"matrix": [0, 1], "x": 84, "y": 8, "flags": 4},
|
||||
{"x": 4, "y": 20, "flags": 2},
|
||||
{"x": 4, "y": 28, "flags": 2},
|
||||
{"matrix": [1, 0], "x": 28, "y": 24, "flags": 4},
|
||||
{"matrix": [1, 1], "x": 84, "y": 24, "flags": 4},
|
||||
{"x": 4, "y": 36, "flags": 2},
|
||||
{"x": 4, "y": 44, "flags": 2},
|
||||
{"matrix": [2, 0], "x": 28, "y": 40, "flags": 4},
|
||||
{"matrix": [2, 1], "x": 84, "y": 40, "flags": 4},
|
||||
{"x": 4, "y": 52, "flags": 2},
|
||||
{"x": 4, "y": 60, "flags": 2},
|
||||
{"x": 14, "y": 63, "flags": 2},
|
||||
{"matrix": [3, 0], "x": 28, "y": 56, "flags": 4},
|
||||
{"x": 42, "y": 63, "flags": 2},
|
||||
{"x": 70, "y": 63, "flags": 2},
|
||||
{"matrix": [3, 1], "x": 84, "y": 56, "flags": 4},
|
||||
{"x": 99, "y": 63, "flags": 2},
|
||||
{"x": 126, "y": 63, "flags": 2},
|
||||
{"matrix": [3, 2], "x": 140, "y": 56, "flags": 4},
|
||||
{"x": 154, "y": 63, "flags": 2},
|
||||
{"x": 182, "y": 63, "flags": 2},
|
||||
{"matrix": [3, 3], "x": 196, "y": 56, "flags": 4},
|
||||
{"x": 210, "y": 63, "flags": 2},
|
||||
{"x": 220, "y": 60, "flags": 2},
|
||||
{"x": 220, "y": 52, "flags": 2},
|
||||
{"x": 220, "y": 44, "flags": 2},
|
||||
{"matrix": [2, 3], "x": 196, "y": 40, "flags": 4},
|
||||
{"matrix": [2, 2], "x": 140, "y": 40, "flags": 4},
|
||||
{"x": 220, "y": 36, "flags": 2},
|
||||
{"x": 220, "y": 28, "flags": 2},
|
||||
{"matrix": [1, 3], "x": 196, "y": 24, "flags": 4},
|
||||
{"matrix": [1, 2], "x": 140, "y": 24, "flags": 4},
|
||||
{"x": 220, "y": 20, "flags": 2},
|
||||
{"x": 220, "y": 12, "flags": 2},
|
||||
{"matrix": [0, 3], "x": 196, "y": 8, "flags": 4},
|
||||
{"matrix": [0, 2], "x": 140, "y": 8, "flags": 4},
|
||||
{"x": 220, "y": 4, "flags": 2},
|
||||
{"x": 210, "y": 1, "flags": 2},
|
||||
{"x": 182, "y": 1, "flags": 2},
|
||||
{"x": 154, "y": 1, "flags": 2},
|
||||
{"x": 126, "y": 1, "flags": 2}
|
||||
]
|
||||
},
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x5610",
|
||||
"vid": "0x6F75"
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "vendor",
|
||||
"pin": "GP29"
|
||||
},
|
||||
"community_layouts": ["ortho_4x4"],
|
||||
"layouts": {
|
||||
"LAYOUT_ortho_4x4": {
|
||||
"layout": [
|
||||
{"label": "00", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "01", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "02", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "03", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "10", "matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"label": "11", "matrix": [1, 1], "x": 1, "y": 1},
|
||||
{"label": "12", "matrix": [1, 2], "x": 2, "y": 1},
|
||||
{"label": "13", "matrix": [1, 3], "x": 3, "y": 1},
|
||||
{"label": "20", "matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"label": "21", "matrix": [2, 1], "x": 1, "y": 2},
|
||||
{"label": "22", "matrix": [2, 2], "x": 2, "y": 2},
|
||||
{"label": "23", "matrix": [2, 3], "x": 3, "y": 2},
|
||||
{"label": "30", "matrix": [3, 0], "x": 0, "y": 3},
|
||||
{"label": "31", "matrix": [3, 1], "x": 1, "y": 3},
|
||||
{"label": "32", "matrix": [3, 2], "x": 2, "y": 3},
|
||||
{"label": "33", "matrix": [3, 3], "x": 3, "y": 3}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
39
keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c
Normal file
39
keyboards/1upkeyboards/1upsuper16v3/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,39 @@
|
||||
/* Copyright 2023 ziptyze
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_ortho_4x4(
|
||||
KC_P7, KC_P8, KC_P9, KC_PMNS,
|
||||
KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||
KC_P1, KC_P2, KC_P3, KC_PSLS,
|
||||
MO(1), KC_P0, KC_PDOT, KC_PENT
|
||||
),
|
||||
[1] = LAYOUT_ortho_4x4(
|
||||
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,
|
||||
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD,
|
||||
RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT
|
||||
)
|
||||
};
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
|
||||
};
|
||||
#endif
|
||||
@@ -0,0 +1 @@
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
39
keyboards/1upkeyboards/1upsuper16v3/keymaps/via/keymap.c
Normal file
39
keyboards/1upkeyboards/1upsuper16v3/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,39 @@
|
||||
/* Copyright 2023 ziptyze
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_ortho_4x4(
|
||||
KC_P7, KC_P8, KC_P9, KC_PMNS,
|
||||
KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||
KC_P1, KC_P2, KC_P3, KC_PSLS,
|
||||
MO(1), KC_P0, KC_PDOT, KC_PENT
|
||||
),
|
||||
[1] = LAYOUT_ortho_4x4(
|
||||
RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI,
|
||||
RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD,
|
||||
RGB_SPD, RGB_SPI, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT
|
||||
)
|
||||
};
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }
|
||||
};
|
||||
#endif
|
||||
4
keyboards/1upkeyboards/1upsuper16v3/keymaps/via/rules.mk
Normal file
4
keyboards/1upkeyboards/1upsuper16v3/keymaps/via/rules.mk
Normal file
@@ -0,0 +1,4 @@
|
||||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
||||
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
22
keyboards/1upkeyboards/1upsuper16v3/readme.md
Normal file
22
keyboards/1upkeyboards/1upsuper16v3/readme.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# 1upSuper16v3
|
||||
|
||||
This keyboard is the Super16v3 from 1upkeyboards, a 4x4 macropad with the option for up to four encoders in the top row. Notable features include in-switch per-key addressable RGB LEDs and thirty two 1mm underglow RGB LEDs; for bright and smooth lighting effects. The Super16v3 utilises an rp2040 microcontroller, wired using direct pins.
|
||||
|
||||
* Keyboard Maintainer: [ziptyze](https://github.com/ziptyze)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make 1upkeyboards/1upsuper16v3:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make 1upkeyboards/1upsuper16v3:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 2 ways:
|
||||
|
||||
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix. For this keyboard it is the top left button
|
||||
* **Physical reset button**: Hold the button on the back of the PCB and plug in the keyboard
|
||||
0
keyboards/1upkeyboards/1upsuper16v3/rules.mk
Normal file
0
keyboards/1upkeyboards/1upsuper16v3/rules.mk
Normal file
@@ -41,6 +41,16 @@
|
||||
},
|
||||
"processor": "STM32F072",
|
||||
"bootloader": "stm32-dfu",
|
||||
"community_layouts": [
|
||||
"60_ansi",
|
||||
"60_ansi_split_bs_rshift",
|
||||
"60_ansi_tsangan",
|
||||
"60_tsangan_hhkb",
|
||||
"60_hhkb",
|
||||
"60_iso",
|
||||
"60_iso_split_bs_rshift",
|
||||
"60_iso_tsangan"
|
||||
],
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
@@ -115,6 +125,75 @@
|
||||
{"label": "Ctrl", "matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"label": "@", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "#", "matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"label": "Backspace", "matrix": [3, 6], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"label": "|", "matrix": [5, 6], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"label": "Caps Lock", "matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"label": "\"", "matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [7, 6], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
|
||||
|
||||
{"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"label": "Alt", "matrix": [9, 1], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"label": "Space", "matrix": [9, 3], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"label": "Alt", "matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
|
||||
{"label": "Menu", "matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"label": "Ctrl", "matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
@@ -186,6 +265,74 @@
|
||||
{"label": "Ctrl", "matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_tsangan": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"label": "@", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "#", "matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"label": "Backspace", "matrix": [3, 6], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"label": "|", "matrix": [5, 6], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"label": "Caps Lock", "matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"label": "\"", "matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [7, 6], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
|
||||
|
||||
{"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [9, 0], "x": 1.5, "y": 4},
|
||||
{"label": "Alt", "matrix": [9, 1], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"label": "Space", "matrix": [9, 3], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Alt", "matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [9, 5], "x": 12.5, "y": 4},
|
||||
{"label": "Ctrl", "matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_tsangan_hhkb": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
@@ -323,6 +470,288 @@
|
||||
{"label": "GUI", "matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Alt", "matrix": [9, 5], "x": 12.5, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"label": "\"", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "\u00a3", "matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"label": "Backspace", "matrix": [3, 6], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
|
||||
{"label": "Caps Lock", "matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"label": "@", "matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"label": "~", "matrix": [4, 6], "x": 12.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [7, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"label": "|", "matrix": [7, 0], "x": 1.25, "y": 3},
|
||||
{"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
|
||||
|
||||
{"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"label": "Alt", "matrix": [9, 1], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"label": "Space", "matrix": [9, 3], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"label": "Alt", "matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
|
||||
{"label": "Menu", "matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"label": "Ctrl", "matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"label": "\"", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "\u00a3", "matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"label": "|", "matrix": [1, 6], "x": 13, "y": 0},
|
||||
{"label": "Backspace", "matrix": [3, 6], "x": 14, "y": 0},
|
||||
|
||||
{"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
|
||||
{"label": "Caps Lock", "matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"label": "@", "matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"label": "~", "matrix": [4, 6], "x": 12.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [7, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"label": "|", "matrix": [7, 0], "x": 1.25, "y": 3},
|
||||
{"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"label": "Fn", "matrix": [9, 6], "x": 14, "y": 3},
|
||||
|
||||
{"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"label": "Alt", "matrix": [9, 1], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"label": "Space", "matrix": [9, 3], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"label": "Alt", "matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
|
||||
{"label": "Menu", "matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"label": "Ctrl", "matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_tsangan": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"label": "\"", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "\u00a3", "matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"label": "Backspace", "matrix": [3, 6], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
|
||||
{"label": "Caps Lock", "matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"label": "@", "matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"label": "~", "matrix": [4, 6], "x": 12.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [7, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"label": "|", "matrix": [7, 0], "x": 1.25, "y": 3},
|
||||
{"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
|
||||
|
||||
{"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [9, 0], "x": 1.5, "y": 4},
|
||||
{"label": "Alt", "matrix": [9, 1], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"label": "Space", "matrix": [9, 3], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Alt", "matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [9, 5], "x": 12.5, "y": 4},
|
||||
{"label": "Ctrl", "matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_tsangan_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"label": "\"", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "\u00a3", "matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"label": "|", "matrix": [1, 6], "x": 13, "y": 0},
|
||||
{"label": "Backspace", "matrix": [3, 6], "x": 14, "y": 0},
|
||||
|
||||
{"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
|
||||
{"label": "Caps Lock", "matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"label": "@", "matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"label": "~", "matrix": [4, 6], "x": 12.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [7, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"label": "|", "matrix": [7, 0], "x": 1.25, "y": 3},
|
||||
{"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"label": "Fn", "matrix": [9, 6], "x": 14, "y": 3},
|
||||
|
||||
{"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [9, 0], "x": 1.5, "y": 4},
|
||||
{"label": "Alt", "matrix": [9, 1], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"label": "Space", "matrix": [9, 3], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Alt", "matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [9, 5], "x": 12.5, "y": 4},
|
||||
{"label": "Ctrl", "matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
```
|
||||
┌───────┐
|
||||
2u Backspace │36? │
|
||||
2u Backspace │36 │
|
||||
└───────┘
|
||||
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||
│00 │10 │01 │11 │02 │12 │03 │13 │04 │14 │05 │15 │06 │16 │36 │
|
||||
@@ -19,6 +19,6 @@
|
||||
│60 │ 2.25u LShift 2.75u RShift │66 │
|
||||
└────────┘ └──────────┘
|
||||
┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
|
||||
│80 │90 │91 │93 │85 │95 │86 │ Tsangan/WKL/HHKB
|
||||
│80 │90 │91 │93 │85 │95 │86 │ Tsangan/HHKB
|
||||
└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
|
||||
```
|
||||
|
||||
@@ -126,23 +126,27 @@
|
||||
"pid": "0x4321",
|
||||
"vid": "0x7654"
|
||||
},
|
||||
"layout_aliases": {
|
||||
"LAYOUT_75_ansi": "LAYOUT"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_75_ansi": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label": "ESC", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "F1", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "F2", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "F3", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "F4", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "F5", "matrix": [0, 6], "x": 6.5, "y": 0},
|
||||
{"label": "F6", "matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"label": "F7", "matrix": [0, 8], "x": 8.5, "y": 0},
|
||||
{"label": "F8", "matrix": [0, 9], "x": 9.5, "y": 0},
|
||||
{"label": "F9", "matrix": [0, 10], "x": 11, "y": 0},
|
||||
{"label": "F10", "matrix": [0, 11], "x": 12, "y": 0},
|
||||
{"label": "F11", "matrix": [0, 12], "x": 13, "y": 0},
|
||||
{"label": "F12", "matrix": [0, 13], "x": 14, "y": 0},
|
||||
{"label": "END", "matrix": [0, 15], "x": 16.5, "y": 0},
|
||||
{"label": "F1", "matrix": [0, 2], "x": 1.5, "y": 0},
|
||||
{"label": "F2", "matrix": [0, 3], "x": 2.5, "y": 0},
|
||||
{"label": "F3", "matrix": [0, 4], "x": 3.5, "y": 0},
|
||||
{"label": "F4", "matrix": [0, 5], "x": 4.5, "y": 0},
|
||||
{"label": "F5", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "F6", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "F7", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "F8", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": "F9", "matrix": [0, 10], "x": 10.5, "y": 0},
|
||||
{"label": "F10", "matrix": [0, 11], "x": 11.5, "y": 0},
|
||||
{"label": "F11", "matrix": [0, 12], "x": 12.5, "y": 0},
|
||||
{"label": "F12", "matrix": [0, 13], "x": 13.5, "y": 0},
|
||||
{"label": "END", "matrix": [0, 15], "x": 15, "y": 0},
|
||||
|
||||
{"label": "GRV", "matrix": [1, 0], "x": 0, "y": 1.25},
|
||||
{"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25},
|
||||
{"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25},
|
||||
@@ -157,7 +161,8 @@
|
||||
{"label": "MINS", "matrix": [1, 11], "x": 11, "y": 1.25},
|
||||
{"label": "EQL", "matrix": [1, 12], "x": 12, "y": 1.25},
|
||||
{"label": "BSPC", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
|
||||
{"label": "HOME", "matrix": [1, 14], "x": 16.5, "y": 1.25},
|
||||
{"label": "HOME", "matrix": [1, 14], "x": 15, "y": 1.25},
|
||||
|
||||
{"label": "TAB", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
|
||||
{"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
|
||||
{"label": "W", "matrix": [2, 2], "x": 2.5, "y": 2.25},
|
||||
@@ -172,7 +177,8 @@
|
||||
{"label": "LBRC", "matrix": [2, 11], "x": 11.5, "y": 2.25},
|
||||
{"label": "RBRC", "matrix": [2, 12], "x": 12.5, "y": 2.25},
|
||||
{"label": "BSLS", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
|
||||
{"label": "DEL", "matrix": [2, 14], "x": 16.5, "y": 2.25},
|
||||
{"label": "DEL", "matrix": [2, 14], "x": 15, "y": 2.25},
|
||||
|
||||
{"label": "CAPS", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
|
||||
{"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.25},
|
||||
{"label": "S", "matrix": [3, 2], "x": 2.75, "y": 3.25},
|
||||
@@ -185,8 +191,9 @@
|
||||
{"label": "L", "matrix": [3, 9], "x": 9.75, "y": 3.25},
|
||||
{"label": "SCLN", "matrix": [3, 10], "x": 10.75, "y": 3.25},
|
||||
{"label": "QUOT", "matrix": [3, 11], "x": 11.75, "y": 3.25},
|
||||
{"label": "ENT", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25},
|
||||
{"label": "PGUP", "matrix": [3, 14], "x": 16.5, "y": 3.25},
|
||||
{"label": "ENT", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
|
||||
{"label": "PGUP", "matrix": [3, 14], "x": 15, "y": 3.25},
|
||||
|
||||
{"label": "LSFT", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
|
||||
{"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25},
|
||||
{"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25},
|
||||
@@ -199,18 +206,19 @@
|
||||
{"label": "DOT", "matrix": [4, 10], "x": 10.25, "y": 4.25},
|
||||
{"label": "SLSH", "matrix": [4, 11], "x": 11.25, "y": 4.25},
|
||||
{"label": "RSFT", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 1.75},
|
||||
{"label": "UP", "matrix": [4, 13], "x": 15.25, "y": 4.25},
|
||||
{"label": "PGDN", "matrix": [4, 14], "x": 16.5, "y": 4.25},
|
||||
{"label": "UP", "matrix": [4, 13], "x": 14, "y": 4.25},
|
||||
{"label": "PGDN", "matrix": [4, 14], "x": 15, "y": 4.25},
|
||||
|
||||
{"label": "LCTL", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
|
||||
{"label": "LGUI", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
|
||||
{"label": "LALT", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
|
||||
{"label": "SPC", "matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
|
||||
{"label": "RALT", "matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25},
|
||||
{"label": "MO(1)", "matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25},
|
||||
{"label": "RCTL", "matrix": [5, 11], "x": 13, "y": 5.25, "w": 1.25},
|
||||
{"label": "LEFT", "matrix": [5, 12], "x": 14.25, "y": 5.25},
|
||||
{"label": "DOWN", "matrix": [5, 13], "x": 15.25, "y": 5.25},
|
||||
{"label": "RGHT", "matrix": [5, 14], "x": 16.5, "y": 5.25}
|
||||
{"label": "RALT", "matrix": [5, 9], "x": 10, "y": 5.25},
|
||||
{"label": "MO(1)", "matrix": [5, 10], "x": 11, "y": 5.25},
|
||||
{"label": "RCTL", "matrix": [5, 11], "x": 12, "y": 5.25},
|
||||
{"label": "LEFT", "matrix": [5, 12], "x": 13, "y": 5.25},
|
||||
{"label": "DOWN", "matrix": [5, 13], "x": 14, "y": 5.25},
|
||||
{"label": "RGHT", "matrix": [5, 14], "x": 15, "y": 5.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ enum layer_names
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT_75_ansi(
|
||||
[_BASE] = LAYOUT(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_END,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
||||
@@ -31,7 +31,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FnLay), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
[_FnLay] = LAYOUT_75_ansi(
|
||||
[_FnLay] = LAYOUT(
|
||||
QK_BOOT, KC_MY_COMPUTER, KC_WWW_HOME, KC_CALCULATOR, KC_MSEL, KC_MPRV, KC_MNXT, KC_MPLY, KC_MSTP, KC_MUTE, KC_VOLD, KC_VOLU, KC_MAIL, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
|
||||
25
keyboards/acheron/themis/87h/87h.c
Normal file
25
keyboards/acheron/themis/87h/87h.c
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright 2023 Gondolindrim <gondolindrim@acheronproject.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
bool led_update_kb(led_t led_state) {
|
||||
bool res = led_update_user(led_state);
|
||||
if(res) {
|
||||
led_state.caps_lock ? rgblight_setrgb_at(0xAA,0xAA,0xAA,0) : rgblight_setrgb_at(0x00,0x00,0x00,0) ;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
33
keyboards/acheron/themis/87h/config.h
Normal file
33
keyboards/acheron/themis/87h/config.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
Copyright 2023 Gondolindrim <gondolindrim@acheronproject.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
#define RGBLED_NUM 1
|
||||
|
||||
#define WS2812_PWM_COMPLEMENTARY_OUTPUT
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
|
||||
#define WEAR_LEVELING_LOGICAL_SIZE 4096
|
||||
#define WEAR_LEVELING_BACKING_SIZE 8192
|
||||
22
keyboards/acheron/themis/87h/halconf.h
Normal file
22
keyboards/acheron/themis/87h/halconf.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_PWM TRUE
|
||||
#define HAL_USE_PAL TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
136
keyboards/acheron/themis/87h/info.json
Normal file
136
keyboards/acheron/themis/87h/info.json
Normal file
@@ -0,0 +1,136 @@
|
||||
{
|
||||
"keyboard_name": "Themis 87H Rev. Alpha",
|
||||
"usb": {
|
||||
"pid": "0x5448",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["A8" ,"C9" ,"C8" ,"B14","B12","B10","B1" ,"B0" ,"A7" ,"A6" ,"A5" ,"A4" ,"C5" ,"C7" ,"B3" ,"A2" ,"C12","D2" ],
|
||||
"rows": ["A15","A10","C6" ,"C4" ,"A3" ,"A1" ,"C11","C10","B4"]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"lto": true,
|
||||
"mousekey": true,
|
||||
"extrakey": true,
|
||||
"console": false,
|
||||
"backlight": false,
|
||||
"rgblight": true,
|
||||
"audio": false,
|
||||
"encoder": false,
|
||||
"nkro": true
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"ws2812": {
|
||||
"pin": "B15"
|
||||
},
|
||||
"processor": "STM32F401",
|
||||
"bootloader": "stm32-dfu",
|
||||
"community_layouts": ["tkl_ansi"],
|
||||
"layouts": {
|
||||
"LAYOUT_tkl_ansi": {
|
||||
"layout": [
|
||||
{"label":"Escape", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"label":"F1", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label":"F2", "matrix": [0, 2], "x": 3, "y": 0},
|
||||
{"label":"F3", "matrix": [0, 3], "x": 4, "y": 0},
|
||||
{"label":"F4", "matrix": [0, 4], "x": 5, "y": 0},
|
||||
|
||||
{"label":"F5", "matrix": [0, 5], "x": 6.5, "y": 0},
|
||||
{"label":"F6", "matrix": [0, 6], "x": 7.5, "y": 0},
|
||||
{"label":"F7", "matrix": [0, 7], "x": 8.5, "y": 0},
|
||||
{"label":"F8", "matrix": [0, 8], "x": 9.5, "y": 0},
|
||||
|
||||
{"label":"F9", "matrix": [0, 9], "x": 11, "y": 0},
|
||||
{"label":"F10", "matrix": [0, 10], "x": 12, "y": 0},
|
||||
{"label":"F11", "matrix": [0, 11], "x": 13, "y": 0},
|
||||
{"label":"F12", "matrix": [0, 12], "x": 14, "y": 0},
|
||||
|
||||
{"label":"Print Screen", "matrix": [6, 14], "x": 15.25, "y": 0},
|
||||
{"label":"Scroll Lock", "matrix": [6, 17], "x": 16.25, "y": 0},
|
||||
{"label":"Pause", "matrix": [6, 16], "x": 17.25, "y": 0},
|
||||
|
||||
{"label":"`~", "matrix": [1, 0], "x": 0, "y": 1.25},
|
||||
{"label":"1!", "matrix": [1, 1], "x": 1, "y": 1.25},
|
||||
{"label":"2@", "matrix": [1, 2], "x": 2, "y": 1.25},
|
||||
{"label":"3#", "matrix": [1, 3], "x": 3, "y": 1.25},
|
||||
{"label":"4$", "matrix": [1, 4], "x": 4, "y": 1.25},
|
||||
{"label":"5%", "matrix": [1, 5], "x": 5, "y": 1.25},
|
||||
{"label":"6^", "matrix": [1, 6], "x": 6, "y": 1.25},
|
||||
{"label":"7&", "matrix": [1, 7], "x": 7, "y": 1.25},
|
||||
{"label":"8*", "matrix": [1, 8], "x": 8, "y": 1.25},
|
||||
{"label":"9(", "matrix": [1, 9], "x": 9, "y": 1.25},
|
||||
{"label":"0)", "matrix": [1, 10], "x": 10, "y": 1.25},
|
||||
{"label":"-_", "matrix": [1, 11], "x": 11, "y": 1.25},
|
||||
{"label":"=+", "matrix": [1, 12], "x": 12, "y": 1.25},
|
||||
{"label":"Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
|
||||
|
||||
{"label":"Insert", "matrix": [7, 14], "x": 15.25, "y": 1.25},
|
||||
{"label":"Home", "matrix": [7, 17], "x": 16.25, "y": 1.25},
|
||||
{"label":"Page Up","matrix": [7, 16], "x": 17.25, "y": 1.25},
|
||||
|
||||
{"label":"Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
|
||||
{"label":"Q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
|
||||
{"label":"W", "matrix": [2, 2], "x": 2.5, "y": 2.25},
|
||||
{"label":"E", "matrix": [2, 3], "x": 3.5, "y": 2.25},
|
||||
{"label":"R", "matrix": [2, 4], "x": 4.5, "y": 2.25},
|
||||
{"label":"T", "matrix": [2, 5], "x": 5.5, "y": 2.25},
|
||||
{"label":"Y", "matrix": [2, 6], "x": 6.5, "y": 2.25},
|
||||
{"label":"U", "matrix": [2, 7], "x": 7.5, "y": 2.25},
|
||||
{"label":"I", "matrix": [2, 8], "x": 8.5, "y": 2.25},
|
||||
{"label":"O", "matrix": [2, 9], "x": 9.5, "y": 2.25},
|
||||
{"label":"P", "matrix": [2, 10], "x": 10.5, "y": 2.25},
|
||||
{"label":"[{", "matrix": [2, 11], "x": 11.5, "y": 2.25},
|
||||
{"label":"]}", "matrix": [2, 12], "x": 12.5, "y": 2.25},
|
||||
{"label":"\\|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
|
||||
|
||||
{"label":"Delete", "matrix": [8, 14], "x": 15.25, "y": 2.25},
|
||||
{"label":"End", "matrix": [8, 17], "x": 16.25, "y": 2.25},
|
||||
{"label":"Page Down", "matrix": [8, 16], "x": 17.25, "y": 2.25},
|
||||
|
||||
{"label":"Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
|
||||
{"label":"A", "matrix": [3, 1], "x": 1.75, "y": 3.25},
|
||||
{"label":"S", "matrix": [3, 2], "x": 2.75, "y": 3.25},
|
||||
{"label":"D", "matrix": [3, 3], "x": 3.75, "y": 3.25},
|
||||
{"label":"F", "matrix": [3, 4], "x": 4.75, "y": 3.25},
|
||||
{"label":"G", "matrix": [3, 5], "x": 5.75, "y": 3.25},
|
||||
{"label":"H", "matrix": [3, 6], "x": 6.75, "y": 3.25},
|
||||
{"label":"J", "matrix": [3, 7], "x": 7.75, "y": 3.25},
|
||||
{"label":"K", "matrix": [3, 8], "x": 8.75, "y": 3.25},
|
||||
{"label":"L", "matrix": [3, 9], "x": 9.75, "y": 3.25},
|
||||
{"label":";:", "matrix": [3, 10], "x": 10.75, "y": 3.25},
|
||||
{"label":"\'\"", "matrix": [3, 11], "x": 11.75, "y": 3.25},
|
||||
{"label":"Enter", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25},
|
||||
|
||||
{"label":"Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
|
||||
{"label":"Z", "matrix": [4, 2], "x": 2.25, "y": 4.25},
|
||||
{"label":"X", "matrix": [4, 3], "x": 3.25, "y": 4.25},
|
||||
{"label":"C", "matrix": [4, 4], "x": 4.25, "y": 4.25},
|
||||
{"label":"V", "matrix": [4, 5], "x": 5.25, "y": 4.25},
|
||||
{"label":"B", "matrix": [4, 6], "x": 6.25, "y": 4.25},
|
||||
{"label":"N", "matrix": [4, 7], "x": 7.25, "y": 4.25},
|
||||
{"label":"M", "matrix": [4, 8], "x": 8.25, "y": 4.25},
|
||||
{"label":",<", "matrix": [4, 9], "x": 9.25, "y": 4.25},
|
||||
{"label":".>", "matrix": [4, 10], "x": 10.25, "y": 4.25},
|
||||
{"label":"/?", "matrix": [4, 11], "x": 11.25, "y": 4.25},
|
||||
{"label":"Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75},
|
||||
|
||||
{"label":"Up", "matrix": [4, 15], "x": 16.25, "y": 4.25},
|
||||
|
||||
{"label":"LCtrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
|
||||
{"label":"Lwin", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
|
||||
{"label":"LAlt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
|
||||
{"label":"Space", "matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
|
||||
{"label":"RAlt", "matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25},
|
||||
{"label":"RWin", "matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25},
|
||||
{"label":"MO(1)", "matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25},
|
||||
{"label":"RCtrl", "matrix": [5, 12], "x": 13.75, "y": 5.25, "w": 1.25},
|
||||
|
||||
{"label":"Left", "matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"label":"Down", "matrix": [5, 15], "x": 16.25, "y": 5.25},
|
||||
{"label":"Right", "matrix": [5, 16], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
37
keyboards/acheron/themis/87h/keymaps/default/keymap.c
Executable file
37
keyboards/acheron/themis/87h/keymaps/default/keymap.c
Executable file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
Copyright 2020 Álvaro "Gondolindrim" Volpato <alvaro.volpato@usp.br>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_tkl_ansi(
|
||||
KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, KC_SCRL, KC_PAUS ,
|
||||
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_INS , KC_HOME, KC_PGUP ,
|
||||
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_END , KC_PGDN ,
|
||||
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
|
||||
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP ,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_tkl_ansi(
|
||||
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
37
keyboards/acheron/themis/87h/keymaps/via/keymap.c
Executable file
37
keyboards/acheron/themis/87h/keymaps/via/keymap.c
Executable file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
Copyright 2020 Álvaro "Gondolindrim" Volpato <alvaro.volpato@usp.br>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_tkl_ansi(
|
||||
KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, KC_SCRL, KC_PAUS ,
|
||||
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_INS , KC_HOME, KC_PGUP ,
|
||||
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_END , KC_PGDN ,
|
||||
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
|
||||
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP ,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_tkl_ansi(
|
||||
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
25
keyboards/acheron/themis/87h/mcuconf.h
Normal file
25
keyboards/acheron/themis/87h/mcuconf.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_PWM_USE_ADVANCED
|
||||
#define STM32_PWM_USE_ADVANCED TRUE
|
||||
|
||||
#undef STM32_PWM_USE_TIM1
|
||||
#define STM32_PWM_USE_TIM1 TRUE
|
||||
0
keyboards/acheron/themis/87h/rules.mk
Normal file
0
keyboards/acheron/themis/87h/rules.mk
Normal file
25
keyboards/acheron/themis/87htsc/87htsc.c
Normal file
25
keyboards/acheron/themis/87htsc/87htsc.c
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright 2023 Gondolindrim <gondolindrim@acheronproject.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
bool led_update_kb(led_t led_state) {
|
||||
bool res = led_update_user(led_state);
|
||||
if(res) {
|
||||
led_state.caps_lock ? rgblight_setrgb_at(0xAA,0xAA,0xAA,0) : rgblight_setrgb_at(0x00,0x00,0x00,0) ;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
33
keyboards/acheron/themis/87htsc/config.h
Normal file
33
keyboards/acheron/themis/87htsc/config.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
Copyright 2023 Gondolindrim <gondolindrim@acheronproject.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
#define RGBLED_NUM 1
|
||||
|
||||
#define WS2812_PWM_COMPLEMENTARY_OUTPUT
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
|
||||
#define WEAR_LEVELING_LOGICAL_SIZE 4096
|
||||
#define WEAR_LEVELING_BACKING_SIZE 8192
|
||||
22
keyboards/acheron/themis/87htsc/halconf.h
Normal file
22
keyboards/acheron/themis/87htsc/halconf.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_PWM TRUE
|
||||
#define HAL_USE_PAL TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
135
keyboards/acheron/themis/87htsc/info.json
Normal file
135
keyboards/acheron/themis/87htsc/info.json
Normal file
@@ -0,0 +1,135 @@
|
||||
{
|
||||
"keyboard_name": "Themis 87H-T-SC Rev. Alpha",
|
||||
"usb": {
|
||||
"pid": "0x5449",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["A8" ,"C9" ,"C8" ,"B14","B12","B10","B1" ,"B0" ,"A7" ,"A6" ,"A5" ,"A4" ,"C5" ,"C7" ,"B3" ,"A2" ,"C12","D2" ],
|
||||
"rows": ["A15","A10","C6" ,"C4" ,"A3" ,"A1" ,"C11","C10","B4"]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"lto": true,
|
||||
"mousekey": true,
|
||||
"extrakey": true,
|
||||
"console": false,
|
||||
"backlight": false,
|
||||
"rgblight": true,
|
||||
"audio": false,
|
||||
"encoder": false,
|
||||
"nkro": true
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"ws2812": {
|
||||
"pin": "B15"
|
||||
},
|
||||
"processor": "STM32F401",
|
||||
"bootloader": "stm32-dfu",
|
||||
"community_layouts": ["tkl_ansi_tsangan"],
|
||||
"layouts": {
|
||||
"LAYOUT_tkl_ansi_tsangan": {
|
||||
"layout": [
|
||||
{"label":"Escape", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"label":"F1", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label":"F2", "matrix": [0, 2], "x": 3, "y": 0},
|
||||
{"label":"F3", "matrix": [0, 3], "x": 4, "y": 0},
|
||||
{"label":"F4", "matrix": [0, 4], "x": 5, "y": 0},
|
||||
|
||||
{"label":"F5", "matrix": [0, 6], "x": 6.5, "y": 0},
|
||||
{"label":"F6", "matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"label":"F7", "matrix": [0, 8], "x": 8.5, "y": 0},
|
||||
{"label":"F8", "matrix": [0, 9], "x": 9.5, "y": 0},
|
||||
|
||||
{"label":"F9", "matrix": [0, 10], "x": 11, "y": 0},
|
||||
{"label":"F10", "matrix": [0, 11], "x": 12, "y": 0},
|
||||
{"label":"F11", "matrix": [0, 12], "x": 13, "y": 0},
|
||||
{"label":"F12", "matrix": [0, 13], "x": 14, "y": 0},
|
||||
|
||||
{"label":"Print Screen", "matrix": [6, 14], "x": 15.25, "y": 0},
|
||||
{"label":"Scroll Lock", "matrix": [6, 17], "x": 16.25, "y": 0},
|
||||
{"label":"Pause", "matrix": [6, 16], "x": 17.25, "y": 0},
|
||||
|
||||
{"label":"`~", "matrix": [1, 0], "x": 0, "y": 1.25},
|
||||
{"label":"1!", "matrix": [1, 1], "x": 1, "y": 1.25},
|
||||
{"label":"2@", "matrix": [1, 2], "x": 2, "y": 1.25},
|
||||
{"label":"3#", "matrix": [1, 3], "x": 3, "y": 1.25},
|
||||
{"label":"4$", "matrix": [1, 4], "x": 4, "y": 1.25},
|
||||
{"label":"5%", "matrix": [1, 5], "x": 5, "y": 1.25},
|
||||
{"label":"6^", "matrix": [1, 6], "x": 6, "y": 1.25},
|
||||
{"label":"7&", "matrix": [1, 7], "x": 7, "y": 1.25},
|
||||
{"label":"8*", "matrix": [1, 8], "x": 8, "y": 1.25},
|
||||
{"label":"9(", "matrix": [1, 9], "x": 9, "y": 1.25},
|
||||
{"label":"0)", "matrix": [1, 10], "x": 10, "y": 1.25},
|
||||
{"label":"-_", "matrix": [1, 11], "x": 11, "y": 1.25},
|
||||
{"label":"=+", "matrix": [1, 12], "x": 12, "y": 1.25},
|
||||
{"label":"Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
|
||||
|
||||
{"label":"Insert", "matrix": [7, 14], "x": 15.25, "y": 1.25},
|
||||
{"label":"Home", "matrix": [7, 17], "x": 16.25, "y": 1.25},
|
||||
{"label":"Page Up","matrix": [7, 16], "x": 17.25, "y": 1.25},
|
||||
|
||||
{"label":"Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
|
||||
{"label":"Q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
|
||||
{"label":"W", "matrix": [2, 2], "x": 2.5, "y": 2.25},
|
||||
{"label":"E", "matrix": [2, 3], "x": 3.5, "y": 2.25},
|
||||
{"label":"R", "matrix": [2, 4], "x": 4.5, "y": 2.25},
|
||||
{"label":"T", "matrix": [2, 5], "x": 5.5, "y": 2.25},
|
||||
{"label":"Y", "matrix": [2, 6], "x": 6.5, "y": 2.25},
|
||||
{"label":"U", "matrix": [2, 7], "x": 7.5, "y": 2.25},
|
||||
{"label":"I", "matrix": [2, 8], "x": 8.5, "y": 2.25},
|
||||
{"label":"O", "matrix": [2, 9], "x": 9.5, "y": 2.25},
|
||||
{"label":"P", "matrix": [2, 10], "x": 10.5, "y": 2.25},
|
||||
{"label":"[{", "matrix": [2, 11], "x": 11.5, "y": 2.25},
|
||||
{"label":"]}", "matrix": [2, 12], "x": 12.5, "y": 2.25},
|
||||
{"label":"\\|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
|
||||
|
||||
{"label":"Delete", "matrix": [8, 14], "x": 15.25, "y": 2.25},
|
||||
{"label":"End", "matrix": [8, 17], "x": 16.25, "y": 2.25},
|
||||
{"label":"Page Down", "matrix": [8, 16], "x": 17.25, "y": 2.25},
|
||||
|
||||
{"label":"Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
|
||||
{"label":"A", "matrix": [3, 1], "x": 1.75, "y": 3.25},
|
||||
{"label":"S", "matrix": [3, 2], "x": 2.75, "y": 3.25},
|
||||
{"label":"D", "matrix": [3, 3], "x": 3.75, "y": 3.25},
|
||||
{"label":"F", "matrix": [3, 4], "x": 4.75, "y": 3.25},
|
||||
{"label":"G", "matrix": [3, 5], "x": 5.75, "y": 3.25},
|
||||
{"label":"H", "matrix": [3, 6], "x": 6.75, "y": 3.25},
|
||||
{"label":"J", "matrix": [3, 7], "x": 7.75, "y": 3.25},
|
||||
{"label":"K", "matrix": [3, 8], "x": 8.75, "y": 3.25},
|
||||
{"label":"L", "matrix": [3, 9], "x": 9.75, "y": 3.25},
|
||||
{"label":";:", "matrix": [3, 10], "x": 10.75, "y": 3.25},
|
||||
{"label":"\'\"", "matrix": [3, 11], "x": 11.75, "y": 3.25},
|
||||
{"label":"Enter", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25},
|
||||
|
||||
{"label":"Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
|
||||
{"label":"Z", "matrix": [4, 2], "x": 2.25, "y": 4.25},
|
||||
{"label":"X", "matrix": [4, 3], "x": 3.25, "y": 4.25},
|
||||
{"label":"C", "matrix": [4, 4], "x": 4.25, "y": 4.25},
|
||||
{"label":"V", "matrix": [4, 5], "x": 5.25, "y": 4.25},
|
||||
{"label":"B", "matrix": [4, 6], "x": 6.25, "y": 4.25},
|
||||
{"label":"N", "matrix": [4, 7], "x": 7.25, "y": 4.25},
|
||||
{"label":"M", "matrix": [4, 8], "x": 8.25, "y": 4.25},
|
||||
{"label":",<", "matrix": [4, 9], "x": 9.25, "y": 4.25},
|
||||
{"label":".>", "matrix": [4, 10], "x": 10.25, "y": 4.25},
|
||||
{"label":"/?", "matrix": [4, 11], "x": 11.25, "y": 4.25},
|
||||
{"label":"Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75},
|
||||
|
||||
{"label":"Up", "matrix": [4, 15], "x": 16.25, "y": 4.25},
|
||||
|
||||
{"label":"LCtrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"label":"Lwin", "matrix": [5, 1], "x": 1.5, "y": 5.25},
|
||||
{"label":"LAlt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"label":"Space", "matrix": [5, 6], "x": 4, "y": 5.25, "w": 6.25},
|
||||
{"label":"RAlt", "matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"label":"RWin", "matrix": [5, 11], "x": 12.5, "y": 5.25},
|
||||
{"label":"RCtrl", "matrix": [5, 12], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
|
||||
{"label":"Left", "matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"label":"Down", "matrix": [5, 15], "x": 16.25, "y": 5.25},
|
||||
{"label":"Right", "matrix": [5, 16], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
37
keyboards/acheron/themis/87htsc/keymaps/default/keymap.c
Executable file
37
keyboards/acheron/themis/87htsc/keymaps/default/keymap.c
Executable file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
Copyright 2023 Gondolindrim
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_tkl_ansi_tsangan(
|
||||
KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, KC_SCRL, KC_PAUS ,
|
||||
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_INS , KC_HOME, KC_PGUP ,
|
||||
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_END , KC_PGDN ,
|
||||
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
|
||||
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP ,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_tkl_ansi_tsangan(
|
||||
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
37
keyboards/acheron/themis/87htsc/keymaps/via/keymap.c
Executable file
37
keyboards/acheron/themis/87htsc/keymaps/via/keymap.c
Executable file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
Copyright 2023 Gondolindrim
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_tkl_ansi_tsangan(
|
||||
KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, KC_SCRL, KC_PAUS ,
|
||||
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_INS , KC_HOME, KC_PGUP ,
|
||||
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_END , KC_PGDN ,
|
||||
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
|
||||
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP ,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_tkl_ansi_tsangan(
|
||||
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
1
keyboards/acheron/themis/87htsc/keymaps/via/rules.mk
Normal file
1
keyboards/acheron/themis/87htsc/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
||||
25
keyboards/acheron/themis/87htsc/mcuconf.h
Normal file
25
keyboards/acheron/themis/87htsc/mcuconf.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_PWM_USE_ADVANCED
|
||||
#define STM32_PWM_USE_ADVANCED TRUE
|
||||
|
||||
#undef STM32_PWM_USE_TIM1
|
||||
#define STM32_PWM_USE_TIM1 TRUE
|
||||
0
keyboards/acheron/themis/87htsc/rules.mk
Normal file
0
keyboards/acheron/themis/87htsc/rules.mk
Normal file
25
keyboards/acheron/themis/88htsc/88htsc.c
Normal file
25
keyboards/acheron/themis/88htsc/88htsc.c
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright 2023 Gondolindrim <gondolindrim@acheronproject.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
bool led_update_kb(led_t led_state) {
|
||||
bool res = led_update_user(led_state);
|
||||
if(res) {
|
||||
led_state.caps_lock ? rgblight_setrgb_at(0xAA,0xAA,0xAA,0) : rgblight_setrgb_at(0x00,0x00,0x00,0) ;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
33
keyboards/acheron/themis/88htsc/config.h
Normal file
33
keyboards/acheron/themis/88htsc/config.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
Copyright 2023 Gondolindrim <gondolindrim@acheronproject.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
#define RGBLED_NUM 1
|
||||
|
||||
#define WS2812_PWM_COMPLEMENTARY_OUTPUT
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
|
||||
#define WEAR_LEVELING_LOGICAL_SIZE 4096
|
||||
#define WEAR_LEVELING_BACKING_SIZE 8192
|
||||
22
keyboards/acheron/themis/88htsc/halconf.h
Normal file
22
keyboards/acheron/themis/88htsc/halconf.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_PWM TRUE
|
||||
#define HAL_USE_PAL TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
137
keyboards/acheron/themis/88htsc/info.json
Normal file
137
keyboards/acheron/themis/88htsc/info.json
Normal file
@@ -0,0 +1,137 @@
|
||||
{
|
||||
"keyboard_name": "Themis 88H-T-SC Rev. Alpha",
|
||||
"usb": {
|
||||
"pid": "0x5450",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["A8" ,"C9" ,"C8" ,"B14","B12","B10","B1" ,"B0" ,"A7" ,"A6" ,"A5" ,"A4" ,"C5" ,"C7" ,"B3" ,"A2" ,"C12","D2" ],
|
||||
"rows": ["A15","A10","C6" ,"C4" ,"A3" ,"A1" ,"C11","C10","B4"]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"lto": true,
|
||||
"mousekey": true,
|
||||
"extrakey": true,
|
||||
"console": false,
|
||||
"backlight": false,
|
||||
"rgblight": true,
|
||||
"audio": false,
|
||||
"encoder": false,
|
||||
"nkro": true
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"ws2812": {
|
||||
"pin": "B15"
|
||||
},
|
||||
"processor": "STM32F401",
|
||||
"bootloader": "stm32-dfu",
|
||||
"community_layouts": ["tkl_f13_ansi_tsangan"],
|
||||
"layouts": {
|
||||
"LAYOUT_tkl_f13_ansi_tsangan": {
|
||||
"layout": [
|
||||
{"label":"Escape", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"label":"F1", "matrix": [0, 1], "x": 1.25, "y": 0},
|
||||
{"label":"F2", "matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"label":"F3", "matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"label":"F4", "matrix": [0, 4], "x": 4.25, "y": 0},
|
||||
|
||||
{"label":"F5", "matrix": [0, 5], "x": 5.5, "y": 0},
|
||||
{"label":"F6", "matrix": [0, 6], "x": 6.5, "y": 0},
|
||||
{"label":"F7", "matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"label":"F8", "matrix": [0, 8], "x": 8.5, "y": 0},
|
||||
|
||||
{"label":"F9", "matrix": [0, 9], "x": 9.75, "y": 0},
|
||||
{"label":"F10", "matrix": [0, 10], "x": 10.75, "y": 0},
|
||||
{"label":"F11", "matrix": [0, 11], "x": 11.75, "y": 0},
|
||||
{"label":"F12", "matrix": [0, 12], "x": 12.75, "y": 0},
|
||||
|
||||
{"label":"F13", "matrix": [0, 13], "x": 14, "y": 0},
|
||||
|
||||
{"label":"Print Screen", "matrix": [6, 14], "x": 15.25, "y": 0},
|
||||
{"label":"Scroll Lock", "matrix": [6, 17], "x": 16.25, "y": 0},
|
||||
{"label":"Pause", "matrix": [6, 16], "x": 17.25, "y": 0},
|
||||
|
||||
{"label":"`~", "matrix": [1, 0], "x": 0, "y": 1.25},
|
||||
{"label":"1!", "matrix": [1, 1], "x": 1, "y": 1.25},
|
||||
{"label":"2@", "matrix": [1, 2], "x": 2, "y": 1.25},
|
||||
{"label":"3#", "matrix": [1, 3], "x": 3, "y": 1.25},
|
||||
{"label":"4$", "matrix": [1, 4], "x": 4, "y": 1.25},
|
||||
{"label":"5%", "matrix": [1, 5], "x": 5, "y": 1.25},
|
||||
{"label":"6^", "matrix": [1, 6], "x": 6, "y": 1.25},
|
||||
{"label":"7&", "matrix": [1, 7], "x": 7, "y": 1.25},
|
||||
{"label":"8*", "matrix": [1, 8], "x": 8, "y": 1.25},
|
||||
{"label":"9(", "matrix": [1, 9], "x": 9, "y": 1.25},
|
||||
{"label":"0)", "matrix": [1, 10], "x": 10, "y": 1.25},
|
||||
{"label":"-_", "matrix": [1, 11], "x": 11, "y": 1.25},
|
||||
{"label":"=+", "matrix": [1, 12], "x": 12, "y": 1.25},
|
||||
{"label":"Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
|
||||
|
||||
{"label":"Insert", "matrix": [7, 14], "x": 15.25, "y": 1.25},
|
||||
{"label":"Home", "matrix": [7, 17], "x": 16.25, "y": 1.25},
|
||||
{"label":"Page Up","matrix": [7, 16], "x": 17.25, "y": 1.25},
|
||||
|
||||
{"label":"Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
|
||||
{"label":"Q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
|
||||
{"label":"W", "matrix": [2, 2], "x": 2.5, "y": 2.25},
|
||||
{"label":"E", "matrix": [2, 3], "x": 3.5, "y": 2.25},
|
||||
{"label":"R", "matrix": [2, 4], "x": 4.5, "y": 2.25},
|
||||
{"label":"T", "matrix": [2, 5], "x": 5.5, "y": 2.25},
|
||||
{"label":"Y", "matrix": [2, 6], "x": 6.5, "y": 2.25},
|
||||
{"label":"U", "matrix": [2, 7], "x": 7.5, "y": 2.25},
|
||||
{"label":"I", "matrix": [2, 8], "x": 8.5, "y": 2.25},
|
||||
{"label":"O", "matrix": [2, 9], "x": 9.5, "y": 2.25},
|
||||
{"label":"P", "matrix": [2, 10], "x": 10.5, "y": 2.25},
|
||||
{"label":"[{", "matrix": [2, 11], "x": 11.5, "y": 2.25},
|
||||
{"label":"]}", "matrix": [2, 12], "x": 12.5, "y": 2.25},
|
||||
{"label":"\\|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
|
||||
|
||||
{"label":"Delete", "matrix": [8, 14], "x": 15.25, "y": 2.25},
|
||||
{"label":"End", "matrix": [8, 17], "x": 16.25, "y": 2.25},
|
||||
{"label":"Page Down", "matrix": [8, 16], "x": 17.25, "y": 2.25},
|
||||
|
||||
{"label":"Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
|
||||
{"label":"A", "matrix": [3, 1], "x": 1.75, "y": 3.25},
|
||||
{"label":"S", "matrix": [3, 2], "x": 2.75, "y": 3.25},
|
||||
{"label":"D", "matrix": [3, 3], "x": 3.75, "y": 3.25},
|
||||
{"label":"F", "matrix": [3, 4], "x": 4.75, "y": 3.25},
|
||||
{"label":"G", "matrix": [3, 5], "x": 5.75, "y": 3.25},
|
||||
{"label":"H", "matrix": [3, 6], "x": 6.75, "y": 3.25},
|
||||
{"label":"J", "matrix": [3, 7], "x": 7.75, "y": 3.25},
|
||||
{"label":"K", "matrix": [3, 8], "x": 8.75, "y": 3.25},
|
||||
{"label":"L", "matrix": [3, 9], "x": 9.75, "y": 3.25},
|
||||
{"label":";:", "matrix": [3, 10], "x": 10.75, "y": 3.25},
|
||||
{"label":"\'\"", "matrix": [3, 11], "x": 11.75, "y": 3.25},
|
||||
{"label":"Enter", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25},
|
||||
|
||||
{"label":"Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
|
||||
{"label":"Z", "matrix": [4, 2], "x": 2.25, "y": 4.25},
|
||||
{"label":"X", "matrix": [4, 3], "x": 3.25, "y": 4.25},
|
||||
{"label":"C", "matrix": [4, 4], "x": 4.25, "y": 4.25},
|
||||
{"label":"V", "matrix": [4, 5], "x": 5.25, "y": 4.25},
|
||||
{"label":"B", "matrix": [4, 6], "x": 6.25, "y": 4.25},
|
||||
{"label":"N", "matrix": [4, 7], "x": 7.25, "y": 4.25},
|
||||
{"label":"M", "matrix": [4, 8], "x": 8.25, "y": 4.25},
|
||||
{"label":",<", "matrix": [4, 9], "x": 9.25, "y": 4.25},
|
||||
{"label":".>", "matrix": [4, 10], "x": 10.25, "y": 4.25},
|
||||
{"label":"/?", "matrix": [4, 11], "x": 11.25, "y": 4.25},
|
||||
{"label":"Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75},
|
||||
|
||||
{"label":"Up", "matrix": [4, 15], "x": 16.25, "y": 4.25},
|
||||
|
||||
{"label":"LCtrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"label":"Lwin", "matrix": [5, 1], "x": 1.5, "y": 5.25},
|
||||
{"label":"LAlt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"label":"Space", "matrix": [5, 6], "x": 4, "y": 5.25, "w": 6.25},
|
||||
{"label":"RAlt", "matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"label":"RWin", "matrix": [5, 11], "x": 12.5, "y": 5.25},
|
||||
{"label":"RCtrl", "matrix": [5, 12], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
|
||||
{"label":"Left", "matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"label":"Down", "matrix": [5, 15], "x": 16.25, "y": 5.25},
|
||||
{"label":"Right", "matrix": [5, 16], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
37
keyboards/acheron/themis/88htsc/keymaps/default/keymap.c
Executable file
37
keyboards/acheron/themis/88htsc/keymaps/default/keymap.c
Executable file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
Copyright 2023 Gondolindrim
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_F13, KC_PSCR, KC_SCRL, KC_PAUS ,
|
||||
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_INS , KC_HOME, KC_PGUP ,
|
||||
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_END , KC_PGDN ,
|
||||
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
|
||||
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP ,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
37
keyboards/acheron/themis/88htsc/keymaps/via/keymap.c
Executable file
37
keyboards/acheron/themis/88htsc/keymaps/via/keymap.c
Executable file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
Copyright 2023 Gondolindrim
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_F13, KC_PSCR, KC_SCRL, KC_PAUS ,
|
||||
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_INS , KC_HOME, KC_PGUP ,
|
||||
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_END , KC_PGDN ,
|
||||
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
|
||||
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP ,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
1
keyboards/acheron/themis/88htsc/keymaps/via/rules.mk
Normal file
1
keyboards/acheron/themis/88htsc/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
||||
25
keyboards/acheron/themis/88htsc/mcuconf.h
Normal file
25
keyboards/acheron/themis/88htsc/mcuconf.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_PWM_USE_ADVANCED
|
||||
#define STM32_PWM_USE_ADVANCED TRUE
|
||||
|
||||
#undef STM32_PWM_USE_TIM1
|
||||
#define STM32_PWM_USE_TIM1 TRUE
|
||||
0
keyboards/acheron/themis/88htsc/rules.mk
Normal file
0
keyboards/acheron/themis/88htsc/rules.mk
Normal file
8
keyboards/acheron/themis/info.json
Normal file
8
keyboards/acheron/themis/info.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"manufacturer": "AcheronProject",
|
||||
"url": "",
|
||||
"maintainer": "Gondolindrim",
|
||||
"usb": {
|
||||
"vid": "0xAC11"
|
||||
}
|
||||
}
|
||||
23
keyboards/acheron/themis/readme.md
Normal file
23
keyboards/acheron/themis/readme.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# Acheron Themis QMK firmware
|
||||
|
||||

|
||||
|
||||
The Themis is Acheron Project's open-source, freely available tenkeyless (TKL) keyboard Printed Circuit Boards (PCB) which features:
|
||||
|
||||
- No LED lighting
|
||||
- Solderless ("hotswap") MX switches support
|
||||
- Fixed layout for each variant
|
||||
|
||||
* Keyboard Maintainer: [Gondolindrim](https://github.com/Gondolindrim)
|
||||
* Hardware Supported: open-source PCB using the [Joker template](https://acheronproject.com/joker_mcus/joker/). First units were manufactured using STM32F4x1 microcontroller;
|
||||
* Hardware Availability: open-source PCBs
|
||||
|
||||
In order to flash this PCB, first build the default layout (after setting up your build environment):
|
||||
|
||||
make acheron/themis/<revision>:default
|
||||
|
||||
After building or downloading the firmware, put the PCB into DFU mode by holding the reset button for at least five seconds and upload the firmware onto the microcontroller through a utility like `dfu-util` or QMK Toolbox. Alternatively, you can build and flash using:
|
||||
|
||||
make acheron/themis/<revision>: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).
|
||||
@@ -44,8 +44,14 @@
|
||||
"twinkle": true
|
||||
}
|
||||
},
|
||||
"layout_aliases": {
|
||||
"LAYOUT": "LAYOUT_65_ansi_blocker"
|
||||
},
|
||||
"community_layouts": [
|
||||
"65_ansi_blocker"
|
||||
],
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"LAYOUT_65_ansi_blocker": {
|
||||
"layout": [
|
||||
{ "label": "Esc", "matrix":[0,0],"x": 0, "y": 0 },
|
||||
{ "label": "1", "matrix":[0,1],"x": 1, "y": 0 },
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
[0] = LAYOUT_65_ansi_blocker(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BACKSPACE, KC_HOME,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_DEL,
|
||||
@@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT(
|
||||
[1] = LAYOUT_65_ansi_blocker(
|
||||
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
[0] = LAYOUT_65_ansi_blocker(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BACKSPACE, KC_HOME,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_DEL,
|
||||
@@ -12,7 +12,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT(
|
||||
[1] = LAYOUT_65_ansi_blocker(
|
||||
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
|
||||
@@ -9,8 +9,14 @@
|
||||
"rows": ["F0", "F1", "F4", "F5", "F6", "B1", "B2", "B3", "D3", "D5", "F7"],
|
||||
"cols": ["D0", "D1", "D2", "B0", "D4", "B4", "D6", "D7", "B5"]
|
||||
},
|
||||
"layout_aliases": {
|
||||
"LAYOUT": "LAYOUT_tkl_f13_ansi_tsangan"
|
||||
},
|
||||
"community_layouts": [
|
||||
"tkl_f13_ansi_tsangan"
|
||||
],
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"LAYOUT_tkl_f13_ansi_tsangan": {
|
||||
"layout": [
|
||||
{ "label": "Esc", "matrix":[0,0],"x": 0, "y": 0 },
|
||||
{ "label": "F1", "matrix":[0,1],"x": 1.25, "y": 0 },
|
||||
@@ -21,90 +27,90 @@
|
||||
{ "label": "F6", "matrix":[0,6],"x": 6.5, "y": 0 },
|
||||
{ "label": "F7", "matrix":[0,7],"x": 7.5, "y": 0 },
|
||||
{ "label": "F8", "matrix":[5,8],"x": 8.5, "y": 0 },
|
||||
{ "label": "F9", "matrix":[5,7],"x": 9.5, "y": 0 },
|
||||
{ "label": "F9", "matrix":[5,7],"x": 9.75, "y": 0 },
|
||||
{ "label": "F10", "matrix":[5,6],"x": 10.75, "y": 0 },
|
||||
{ "label": "F11", "matrix":[5,5],"x": 11.75, "y": 0 },
|
||||
{ "label": "F12", "matrix":[5,4],"x": 12.75, "y": 0 },
|
||||
{ "label": "F13", "matrix":[5,3],"x": 13.75, "y": 0 },
|
||||
{ "label": "F13", "matrix":[5,3],"x": 14, "y": 0 },
|
||||
{ "label": "Prtsc", "matrix":[5,2],"x": 15.25, "y": 0 },
|
||||
{ "label": "Scrlk", "matrix":[5,1],"x": 16.25, "y": 0 },
|
||||
{ "label": "Pause", "matrix":[5,0],"x": 17.25, "y": 0 },
|
||||
|
||||
{ "label": "~", "matrix":[1,0],"x": 0, "y": 1.5 },
|
||||
{ "label": "1", "matrix":[1,1],"x": 1, "y": 1.5 },
|
||||
{ "label": "2", "matrix":[1,2],"x": 2, "y": 1.5 },
|
||||
{ "label": "3", "matrix":[1,3],"x": 3, "y": 1.5 },
|
||||
{ "label": "4", "matrix":[1,4],"x": 4, "y": 1.5 },
|
||||
{ "label": "5", "matrix":[1,5],"x": 5, "y": 1.5 },
|
||||
{ "label": "6", "matrix":[1,6],"x": 6, "y": 1.5 },
|
||||
{ "label": "7", "matrix":[1,7],"x": 7, "y": 1.5 },
|
||||
{ "label": "8", "matrix":[1,8],"x": 8, "y": 1.5 },
|
||||
{ "label": "9", "matrix":[6,8],"x": 9, "y": 1.5 },
|
||||
{ "label": "0", "matrix":[6,7],"x": 10, "y": 1.5 },
|
||||
{ "label": "-", "matrix":[6,6],"x": 11, "y": 1.5 },
|
||||
{ "label": "=", "matrix":[6,5],"x": 12, "y": 1.5 },
|
||||
{ "label": "backspace", "matrix":[6,4],"x": 13, "y": 1.5, "w": 2 },
|
||||
{ "label": "insert", "matrix":[6,2],"x": 15.25, "y": 1.5 },
|
||||
{ "label": "home", "matrix":[6,1],"x": 16.25, "y": 1.5 },
|
||||
{ "label": "pg up", "matrix":[6,0],"x": 17.25, "y": 1.5 },
|
||||
{ "label": "~", "matrix":[1,0],"x": 0, "y": 1.25 },
|
||||
{ "label": "1", "matrix":[1,1],"x": 1, "y": 1.25 },
|
||||
{ "label": "2", "matrix":[1,2],"x": 2, "y": 1.25 },
|
||||
{ "label": "3", "matrix":[1,3],"x": 3, "y": 1.25 },
|
||||
{ "label": "4", "matrix":[1,4],"x": 4, "y": 1.25 },
|
||||
{ "label": "5", "matrix":[1,5],"x": 5, "y": 1.25 },
|
||||
{ "label": "6", "matrix":[1,6],"x": 6, "y": 1.25 },
|
||||
{ "label": "7", "matrix":[1,7],"x": 7, "y": 1.25 },
|
||||
{ "label": "8", "matrix":[1,8],"x": 8, "y": 1.25 },
|
||||
{ "label": "9", "matrix":[6,8],"x": 9, "y": 1.25 },
|
||||
{ "label": "0", "matrix":[6,7],"x": 10, "y": 1.25 },
|
||||
{ "label": "-", "matrix":[6,6],"x": 11, "y": 1.25 },
|
||||
{ "label": "=", "matrix":[6,5],"x": 12, "y": 1.25 },
|
||||
{ "label": "backspace", "matrix":[6,4],"x": 13, "y": 1.25, "w": 2 },
|
||||
{ "label": "insert", "matrix":[6,2],"x": 15.25, "y": 1.25 },
|
||||
{ "label": "home", "matrix":[6,1],"x": 16.25, "y": 1.25 },
|
||||
{ "label": "pg up", "matrix":[6,0],"x": 17.25, "y": 1.25 },
|
||||
|
||||
{ "label": "tab", "matrix":[2,0],"x": 0, "y": 2.5, "w": 1.5 },
|
||||
{ "label": "q", "matrix":[2,1],"x": 1.5, "y": 2.5 },
|
||||
{ "label": "w", "matrix":[2,2],"x": 2.5, "y": 2.5 },
|
||||
{ "label": "e", "matrix":[2,3],"x": 3.5, "y": 2.5 },
|
||||
{ "label": "r", "matrix":[2,4],"x": 4.5, "y": 2.5 },
|
||||
{ "label": "t", "matrix":[2,5],"x": 5.5, "y": 2.5 },
|
||||
{ "label": "y", "matrix":[2,6],"x": 6.5, "y": 2.5 },
|
||||
{ "label": "u", "matrix":[2,7],"x": 7.5, "y": 2.5 },
|
||||
{ "label": "i", "matrix":[2,8],"x": 8.5, "y": 2.5 },
|
||||
{ "label": "o", "matrix":[7,8],"x": 9.5, "y": 2.5 },
|
||||
{ "label": "p", "matrix":[7,7],"x": 10.5, "y": 2.5 },
|
||||
{ "label": "{", "matrix":[7,6],"x": 11.5, "y": 2.5 },
|
||||
{ "label": "}", "matrix":[7,5],"x": 12.5, "y": 2.5 },
|
||||
{ "label": "|", "matrix":[7,4],"x": 13.5, "y": 2.5, "w": 1.5 },
|
||||
{ "label": "delete", "matrix":[7,2],"x": 15.25, "y": 2.5 },
|
||||
{ "label": "end", "matrix":[7,1],"x": 16.25, "y": 2.5 },
|
||||
{ "label": "pg dn", "matrix":[7,0],"x": 17.25, "y": 2.5 },
|
||||
{ "label": "tab", "matrix":[2,0],"x": 0, "y": 2.25, "w": 1.5 },
|
||||
{ "label": "q", "matrix":[2,1],"x": 1.5, "y": 2.25 },
|
||||
{ "label": "w", "matrix":[2,2],"x": 2.5, "y": 2.25 },
|
||||
{ "label": "e", "matrix":[2,3],"x": 3.5, "y": 2.25 },
|
||||
{ "label": "r", "matrix":[2,4],"x": 4.5, "y": 2.25 },
|
||||
{ "label": "t", "matrix":[2,5],"x": 5.5, "y": 2.25 },
|
||||
{ "label": "y", "matrix":[2,6],"x": 6.5, "y": 2.25 },
|
||||
{ "label": "u", "matrix":[2,7],"x": 7.5, "y": 2.25 },
|
||||
{ "label": "i", "matrix":[2,8],"x": 8.5, "y": 2.25 },
|
||||
{ "label": "o", "matrix":[7,8],"x": 9.5, "y": 2.25 },
|
||||
{ "label": "p", "matrix":[7,7],"x": 10.5, "y": 2.25 },
|
||||
{ "label": "{", "matrix":[7,6],"x": 11.5, "y": 2.25 },
|
||||
{ "label": "}", "matrix":[7,5],"x": 12.5, "y": 2.25 },
|
||||
{ "label": "|", "matrix":[7,4],"x": 13.5, "y": 2.25, "w": 1.5 },
|
||||
{ "label": "delete", "matrix":[7,2],"x": 15.25, "y": 2.25 },
|
||||
{ "label": "end", "matrix":[7,1],"x": 16.25, "y": 2.25 },
|
||||
{ "label": "pg dn", "matrix":[7,0],"x": 17.25, "y": 2.25 },
|
||||
|
||||
{ "label": "capslock", "matrix":[3,0],"x": 0, "y": 3.5, "w": 1.75 },
|
||||
{ "label": "a", "matrix":[3,1],"x": 1.75, "y": 3.5 },
|
||||
{ "label": "s", "matrix":[3,2],"x": 2.75, "y": 3.5 },
|
||||
{ "label": "d", "matrix":[3,3],"x": 3.75, "y": 3.5 },
|
||||
{ "label": "f", "matrix":[3,4],"x": 4.75, "y": 3.5 },
|
||||
{ "label": "g", "matrix":[3,5],"x": 5.75, "y": 3.5 },
|
||||
{ "label": "h", "matrix":[3,6],"x": 6.75, "y": 3.5 },
|
||||
{ "label": "j", "matrix":[3,7],"x": 7.75, "y": 3.5 },
|
||||
{ "label": "k", "matrix":[3,8],"x": 8.75, "y": 3.5 },
|
||||
{ "label": "l", "matrix":[8,8],"x": 9.75, "y": 3.5 },
|
||||
{ "label": ";", "matrix":[8,7],"x": 10.75, "y": 3.5 },
|
||||
{ "label": "'", "matrix":[8,6],"x": 11.75, "y": 3.5 },
|
||||
{ "label": "enter", "matrix":[8,5],"x": 12.75, "y": 3.5, "w": 2.25 },
|
||||
{ "label": "capslock", "matrix":[3,0],"x": 0, "y": 3.25, "w": 1.75 },
|
||||
{ "label": "a", "matrix":[3,1],"x": 1.75, "y": 3.25 },
|
||||
{ "label": "s", "matrix":[3,2],"x": 2.75, "y": 3.25 },
|
||||
{ "label": "d", "matrix":[3,3],"x": 3.75, "y": 3.25 },
|
||||
{ "label": "f", "matrix":[3,4],"x": 4.75, "y": 3.25 },
|
||||
{ "label": "g", "matrix":[3,5],"x": 5.75, "y": 3.25 },
|
||||
{ "label": "h", "matrix":[3,6],"x": 6.75, "y": 3.25 },
|
||||
{ "label": "j", "matrix":[3,7],"x": 7.75, "y": 3.25 },
|
||||
{ "label": "k", "matrix":[3,8],"x": 8.75, "y": 3.25 },
|
||||
{ "label": "l", "matrix":[8,8],"x": 9.75, "y": 3.25 },
|
||||
{ "label": ";", "matrix":[8,7],"x": 10.75, "y": 3.25 },
|
||||
{ "label": "'", "matrix":[8,6],"x": 11.75, "y": 3.25 },
|
||||
{ "label": "enter", "matrix":[8,5],"x": 12.75, "y": 3.25, "w": 2.25 },
|
||||
|
||||
{ "label": "leftshift", "matrix":[4,0],"x": 0, "y": 4.5, "w": 2.25 },
|
||||
{ "label": "z", "matrix":[4,1],"x": 2.25, "y": 4.5 },
|
||||
{ "label": "x", "matrix":[4,2],"x": 3.25, "y": 4.5 },
|
||||
{ "label": "c", "matrix":[4,3],"x": 4.25, "y": 4.5 },
|
||||
{ "label": "v", "matrix":[4,4],"x": 5.25, "y": 4.5 },
|
||||
{ "label": "b", "matrix":[4,5],"x": 6.25, "y": 4.5 },
|
||||
{ "label": "n", "matrix":[4,6],"x": 7.25, "y": 4.5 },
|
||||
{ "label": "m", "matrix":[4,7],"x": 8.25, "y": 4.5 },
|
||||
{ "label": ",", "matrix":[4,8],"x": 9.25, "y": 4.5 },
|
||||
{ "label": ".", "matrix":[9,8],"x": 10.25, "y": 4.5 },
|
||||
{ "label": "/", "matrix":[9,7],"x": 11.25, "y": 4.5 },
|
||||
{ "label": "rightshift", "matrix":[9,6],"x": 12.25, "y": 4.5, "w": 2.75 },
|
||||
{ "label": "up", "matrix":[8,1],"x": 16.25, "y": 4.5 },
|
||||
{ "label": "leftshift", "matrix":[4,0],"x": 0, "y": 4.25, "w": 2.25 },
|
||||
{ "label": "z", "matrix":[4,1],"x": 2.25, "y": 4.25 },
|
||||
{ "label": "x", "matrix":[4,2],"x": 3.25, "y": 4.25 },
|
||||
{ "label": "c", "matrix":[4,3],"x": 4.25, "y": 4.25 },
|
||||
{ "label": "v", "matrix":[4,4],"x": 5.25, "y": 4.25 },
|
||||
{ "label": "b", "matrix":[4,5],"x": 6.25, "y": 4.25 },
|
||||
{ "label": "n", "matrix":[4,6],"x": 7.25, "y": 4.25 },
|
||||
{ "label": "m", "matrix":[4,7],"x": 8.25, "y": 4.25 },
|
||||
{ "label": ",", "matrix":[4,8],"x": 9.25, "y": 4.25 },
|
||||
{ "label": ".", "matrix":[9,8],"x": 10.25, "y": 4.25 },
|
||||
{ "label": "/", "matrix":[9,7],"x": 11.25, "y": 4.25 },
|
||||
{ "label": "rightshift", "matrix":[9,6],"x": 12.25, "y": 4.25, "w": 2.75 },
|
||||
{ "label": "up", "matrix":[8,1],"x": 16.25, "y": 4.25 },
|
||||
|
||||
{ "label": "lctrl", "matrix":[10,0],"x": 0, "y": 5.5, "w": 1.5 },
|
||||
{ "label": "lwin", "matrix":[10,1],"x": 1.5, "y": 5.5 },
|
||||
{ "label": "lalt", "matrix":[10,2],"x": 2.5, "y": 5.5, "w": 1.5 },
|
||||
{ "label": "space", "matrix":[10,3],"x": 4, "y": 5.5, "w": 7 },
|
||||
{ "label": "ralt", "matrix":[10,5],"x": 11, "y": 5.5, "w": 1.5 },
|
||||
{ "label": "rwin", "matrix":[10,6],"x": 12.5, "y": 5.5, "w": 1 },
|
||||
{ "label": "rctrl", "matrix":[10,7],"x": 13.5, "y": 5.5, "w":1.5},
|
||||
{ "label": "left", "matrix":[9,2],"x": 15.25, "y": 5.5 },
|
||||
{ "label": "down", "matrix":[9,1],"x": 16.25, "y": 5.5 },
|
||||
{ "label": "right", "matrix":[9,0],"x": 17.25, "y": 5.5 }
|
||||
{ "label": "lctrl", "matrix":[10,0],"x": 0, "y": 5.25, "w": 1.5 },
|
||||
{ "label": "lwin", "matrix":[10,1],"x": 1.5, "y": 5.25 },
|
||||
{ "label": "lalt", "matrix":[10,2],"x": 2.5, "y": 5.25, "w": 1.5 },
|
||||
{ "label": "space", "matrix":[10,3],"x": 4, "y": 5.25, "w": 7 },
|
||||
{ "label": "ralt", "matrix":[10,5],"x": 11, "y": 5.25, "w": 1.5 },
|
||||
{ "label": "rwin", "matrix":[10,6],"x": 12.5, "y": 5.25, "w": 1 },
|
||||
{ "label": "rctrl", "matrix":[10,7],"x": 13.5, "y": 5.25, "w":1.5},
|
||||
{ "label": "left", "matrix":[9,2],"x": 15.25, "y": 5.25 },
|
||||
{ "label": "down", "matrix":[9,1],"x": 16.25, "y": 5.25 },
|
||||
{ "label": "right", "matrix":[9,0],"x": 17.25, "y": 5.25 }
|
||||
]
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
[0] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
[0] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
|
||||
@@ -9,8 +9,17 @@
|
||||
"rows": ["F0", "F1", "F4", "F5", "C6", "B1", "B2", "B3", "D3", "D5", "D6"],
|
||||
"cols": ["D0", "D1", "D2", "B0", "C7", "B5", "D7", "B4", "B6"]
|
||||
},
|
||||
"layout_aliases": {
|
||||
"LAYOUT": "LAYOUT_tkl_f13_ansi_tsangan"
|
||||
},
|
||||
"community_layouts": [
|
||||
"tkl_f13_ansi_tsangan",
|
||||
"tkl_f13_ansi_tsangan_split_bs_rshift",
|
||||
"tkl_f13_iso_tsangan",
|
||||
"tkl_f13_iso_tsangan_split_bs_rshift"
|
||||
],
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"LAYOUT_tkl_f13_ansi_tsangan": {
|
||||
"layout": [
|
||||
{ "label": "Esc", "matrix":[0,0],"x": 0, "y": 0 },
|
||||
{ "label": "F1", "matrix":[0,1],"x": 1.25, "y": 0 },
|
||||
@@ -21,90 +30,384 @@
|
||||
{ "label": "F6", "matrix":[0,6],"x": 6.5, "y": 0 },
|
||||
{ "label": "F7", "matrix":[0,7],"x": 7.5, "y": 0 },
|
||||
{ "label": "F8", "matrix":[5,8],"x": 8.5, "y": 0 },
|
||||
{ "label": "F9", "matrix":[5,7],"x": 9.5, "y": 0 },
|
||||
{ "label": "F9", "matrix":[5,7],"x": 9.75, "y": 0 },
|
||||
{ "label": "F10", "matrix":[5,6],"x": 10.75, "y": 0 },
|
||||
{ "label": "F11", "matrix":[5,5],"x": 11.75, "y": 0 },
|
||||
{ "label": "F12", "matrix":[5,4],"x": 12.75, "y": 0 },
|
||||
{ "label": "F13", "matrix":[5,3],"x": 13.75, "y": 0 },
|
||||
{ "label": "F13", "matrix":[5,3],"x": 14, "y": 0 },
|
||||
{ "label": "Prtsc", "matrix":[5,2],"x": 15.25, "y": 0 },
|
||||
{ "label": "Scrlk", "matrix":[5,1],"x": 16.25, "y": 0 },
|
||||
{ "label": "Pause", "matrix":[5,0],"x": 17.25, "y": 0 },
|
||||
|
||||
{ "label": "~", "matrix":[1,0],"x": 0, "y": 1.5 },
|
||||
{ "label": "1", "matrix":[1,1],"x": 1, "y": 1.5 },
|
||||
{ "label": "2", "matrix":[1,2],"x": 2, "y": 1.5 },
|
||||
{ "label": "3", "matrix":[1,3],"x": 3, "y": 1.5 },
|
||||
{ "label": "4", "matrix":[1,4],"x": 4, "y": 1.5 },
|
||||
{ "label": "5", "matrix":[1,5],"x": 5, "y": 1.5 },
|
||||
{ "label": "6", "matrix":[1,6],"x": 6, "y": 1.5 },
|
||||
{ "label": "7", "matrix":[1,7],"x": 7, "y": 1.5 },
|
||||
{ "label": "8", "matrix":[1,8],"x": 8, "y": 1.5 },
|
||||
{ "label": "9", "matrix":[6,8],"x": 9, "y": 1.5 },
|
||||
{ "label": "0", "matrix":[6,7],"x": 10, "y": 1.5 },
|
||||
{ "label": "-", "matrix":[6,6],"x": 11, "y": 1.5 },
|
||||
{ "label": "=", "matrix":[6,5],"x": 12, "y": 1.5 },
|
||||
{ "label": "backspace", "matrix":[6,4],"x": 13, "y": 1.5, "w": 2 },
|
||||
{ "label": "insert", "matrix":[6,2],"x": 15.25, "y": 1.5 },
|
||||
{ "label": "home", "matrix":[6,1],"x": 16.25, "y": 1.5 },
|
||||
{ "label": "pg up", "matrix":[6,0],"x": 17.25, "y": 1.5 },
|
||||
{ "label": "~", "matrix":[1,0],"x": 0, "y": 1.25 },
|
||||
{ "label": "1", "matrix":[1,1],"x": 1, "y": 1.25 },
|
||||
{ "label": "2", "matrix":[1,2],"x": 2, "y": 1.25 },
|
||||
{ "label": "3", "matrix":[1,3],"x": 3, "y": 1.25 },
|
||||
{ "label": "4", "matrix":[1,4],"x": 4, "y": 1.25 },
|
||||
{ "label": "5", "matrix":[1,5],"x": 5, "y": 1.25 },
|
||||
{ "label": "6", "matrix":[1,6],"x": 6, "y": 1.25 },
|
||||
{ "label": "7", "matrix":[1,7],"x": 7, "y": 1.25 },
|
||||
{ "label": "8", "matrix":[1,8],"x": 8, "y": 1.25 },
|
||||
{ "label": "9", "matrix":[6,8],"x": 9, "y": 1.25 },
|
||||
{ "label": "0", "matrix":[6,7],"x": 10, "y": 1.25 },
|
||||
{ "label": "-", "matrix":[6,6],"x": 11, "y": 1.25 },
|
||||
{ "label": "=", "matrix":[6,5],"x": 12, "y": 1.25 },
|
||||
{ "label": "backspace", "matrix":[6,4],"x": 13, "y": 1.25, "w": 2 },
|
||||
{ "label": "insert", "matrix":[6,2],"x": 15.25, "y": 1.25 },
|
||||
{ "label": "home", "matrix":[6,1],"x": 16.25, "y": 1.25 },
|
||||
{ "label": "pg up", "matrix":[6,0],"x": 17.25, "y": 1.25 },
|
||||
|
||||
{ "label": "tab", "matrix":[2,0],"x": 0, "y": 2.5, "w": 1.5 },
|
||||
{ "label": "q", "matrix":[2,1],"x": 1.5, "y": 2.5 },
|
||||
{ "label": "w", "matrix":[2,2],"x": 2.5, "y": 2.5 },
|
||||
{ "label": "e", "matrix":[2,3],"x": 3.5, "y": 2.5 },
|
||||
{ "label": "r", "matrix":[2,4],"x": 4.5, "y": 2.5 },
|
||||
{ "label": "t", "matrix":[2,5],"x": 5.5, "y": 2.5 },
|
||||
{ "label": "y", "matrix":[2,6],"x": 6.5, "y": 2.5 },
|
||||
{ "label": "u", "matrix":[2,7],"x": 7.5, "y": 2.5 },
|
||||
{ "label": "i", "matrix":[2,8],"x": 8.5, "y": 2.5 },
|
||||
{ "label": "o", "matrix":[7,8],"x": 9.5, "y": 2.5 },
|
||||
{ "label": "p", "matrix":[7,7],"x": 10.5, "y": 2.5 },
|
||||
{ "label": "{", "matrix":[7,6],"x": 11.5, "y": 2.5 },
|
||||
{ "label": "}", "matrix":[7,5],"x": 12.5, "y": 2.5 },
|
||||
{ "label": "|", "matrix":[7,4],"x": 13.5, "y": 2.5, "w": 1.5 },
|
||||
{ "label": "delete", "matrix":[7,2],"x": 15.25, "y": 2.5 },
|
||||
{ "label": "end", "matrix":[7,1],"x": 16.25, "y": 2.5 },
|
||||
{ "label": "pg dn", "matrix":[7,0],"x": 17.25, "y": 2.5 },
|
||||
{ "label": "tab", "matrix":[2,0],"x": 0, "y": 2.25, "w": 1.5 },
|
||||
{ "label": "q", "matrix":[2,1],"x": 1.5, "y": 2.25 },
|
||||
{ "label": "w", "matrix":[2,2],"x": 2.5, "y": 2.25 },
|
||||
{ "label": "e", "matrix":[2,3],"x": 3.5, "y": 2.25 },
|
||||
{ "label": "r", "matrix":[2,4],"x": 4.5, "y": 2.25 },
|
||||
{ "label": "t", "matrix":[2,5],"x": 5.5, "y": 2.25 },
|
||||
{ "label": "y", "matrix":[2,6],"x": 6.5, "y": 2.25 },
|
||||
{ "label": "u", "matrix":[2,7],"x": 7.5, "y": 2.25 },
|
||||
{ "label": "i", "matrix":[2,8],"x": 8.5, "y": 2.25 },
|
||||
{ "label": "o", "matrix":[7,8],"x": 9.5, "y": 2.25 },
|
||||
{ "label": "p", "matrix":[7,7],"x": 10.5, "y": 2.25 },
|
||||
{ "label": "{", "matrix":[7,6],"x": 11.5, "y": 2.25 },
|
||||
{ "label": "}", "matrix":[7,5],"x": 12.5, "y": 2.25 },
|
||||
{ "label": "|", "matrix":[7,4],"x": 13.5, "y": 2.25, "w": 1.5 },
|
||||
{ "label": "delete", "matrix":[7,2],"x": 15.25, "y": 2.25 },
|
||||
{ "label": "end", "matrix":[7,1],"x": 16.25, "y": 2.25 },
|
||||
{ "label": "pg dn", "matrix":[7,0],"x": 17.25, "y": 2.25 },
|
||||
|
||||
{ "label": "capslock", "matrix":[3,0],"x": 0, "y": 3.5, "w": 1.75 },
|
||||
{ "label": "a", "matrix":[3,1],"x": 1.75, "y": 3.5 },
|
||||
{ "label": "s", "matrix":[3,2],"x": 2.75, "y": 3.5 },
|
||||
{ "label": "d", "matrix":[3,3],"x": 3.75, "y": 3.5 },
|
||||
{ "label": "f", "matrix":[3,4],"x": 4.75, "y": 3.5 },
|
||||
{ "label": "g", "matrix":[3,5],"x": 5.75, "y": 3.5 },
|
||||
{ "label": "h", "matrix":[3,6],"x": 6.75, "y": 3.5 },
|
||||
{ "label": "j", "matrix":[3,7],"x": 7.75, "y": 3.5 },
|
||||
{ "label": "k", "matrix":[3,8],"x": 8.75, "y": 3.5 },
|
||||
{ "label": "l", "matrix":[8,8],"x": 9.75, "y": 3.5 },
|
||||
{ "label": ";", "matrix":[8,7],"x": 10.75, "y": 3.5 },
|
||||
{ "label": "'", "matrix":[8,6],"x": 11.75, "y": 3.5 },
|
||||
{ "label": "enter", "matrix":[8,5],"x": 12.75, "y": 3.5, "w": 2.25 },
|
||||
{ "label": "capslock", "matrix":[3,0],"x": 0, "y": 3.25, "w": 1.75 },
|
||||
{ "label": "a", "matrix":[3,1],"x": 1.75, "y": 3.25 },
|
||||
{ "label": "s", "matrix":[3,2],"x": 2.75, "y": 3.25 },
|
||||
{ "label": "d", "matrix":[3,3],"x": 3.75, "y": 3.25 },
|
||||
{ "label": "f", "matrix":[3,4],"x": 4.75, "y": 3.25 },
|
||||
{ "label": "g", "matrix":[3,5],"x": 5.75, "y": 3.25 },
|
||||
{ "label": "h", "matrix":[3,6],"x": 6.75, "y": 3.25 },
|
||||
{ "label": "j", "matrix":[3,7],"x": 7.75, "y": 3.25 },
|
||||
{ "label": "k", "matrix":[3,8],"x": 8.75, "y": 3.25 },
|
||||
{ "label": "l", "matrix":[8,8],"x": 9.75, "y": 3.25 },
|
||||
{ "label": ";", "matrix":[8,7],"x": 10.75, "y": 3.25 },
|
||||
{ "label": "'", "matrix":[8,6],"x": 11.75, "y": 3.25 },
|
||||
{ "label": "enter", "matrix":[8,5],"x": 12.75, "y": 3.25, "w": 2.25 },
|
||||
|
||||
{ "label": "leftshift", "matrix":[4,0],"x": 0, "y": 4.5, "w": 2.25 },
|
||||
{ "label": "z", "matrix":[4,1],"x": 2.25, "y": 4.5 },
|
||||
{ "label": "x", "matrix":[4,2],"x": 3.25, "y": 4.5 },
|
||||
{ "label": "c", "matrix":[4,3],"x": 4.25, "y": 4.5 },
|
||||
{ "label": "v", "matrix":[4,4],"x": 5.25, "y": 4.5 },
|
||||
{ "label": "b", "matrix":[4,5],"x": 6.25, "y": 4.5 },
|
||||
{ "label": "n", "matrix":[4,6],"x": 7.25, "y": 4.5 },
|
||||
{ "label": "m", "matrix":[4,7],"x": 8.25, "y": 4.5 },
|
||||
{ "label": ",", "matrix":[4,8],"x": 9.25, "y": 4.5 },
|
||||
{ "label": ".", "matrix":[9,8],"x": 10.25, "y": 4.5 },
|
||||
{ "label": "/", "matrix":[9,7],"x": 11.25, "y": 4.5 },
|
||||
{ "label": "rightshift", "matrix":[9,6],"x": 12.25, "y": 4.5, "w": 2.75 },
|
||||
{ "label": "up", "matrix":[8,1],"x": 16.25, "y": 4.5 },
|
||||
{ "label": "leftshift", "matrix":[4,0],"x": 0, "y": 4.25, "w": 2.25 },
|
||||
{ "label": "z", "matrix":[4,1],"x": 2.25, "y": 4.25 },
|
||||
{ "label": "x", "matrix":[4,2],"x": 3.25, "y": 4.25 },
|
||||
{ "label": "c", "matrix":[4,3],"x": 4.25, "y": 4.25 },
|
||||
{ "label": "v", "matrix":[4,4],"x": 5.25, "y": 4.25 },
|
||||
{ "label": "b", "matrix":[4,5],"x": 6.25, "y": 4.25 },
|
||||
{ "label": "n", "matrix":[4,6],"x": 7.25, "y": 4.25 },
|
||||
{ "label": "m", "matrix":[4,7],"x": 8.25, "y": 4.25 },
|
||||
{ "label": ",", "matrix":[4,8],"x": 9.25, "y": 4.25 },
|
||||
{ "label": ".", "matrix":[9,8],"x": 10.25, "y": 4.25 },
|
||||
{ "label": "/", "matrix":[9,7],"x": 11.25, "y": 4.25 },
|
||||
{ "label": "rightshift", "matrix":[9,6],"x": 12.25, "y": 4.25, "w": 2.75 },
|
||||
{ "label": "up", "matrix":[8,1],"x": 16.25, "y": 4.25 },
|
||||
|
||||
{ "label": "lctrl", "matrix":[10,0],"x": 0, "y": 5.5, "w": 1.5 },
|
||||
{ "label": "lwin", "matrix":[10,1],"x": 1.5, "y": 5.5 },
|
||||
{ "label": "lalt", "matrix":[10,2],"x": 2.5, "y": 5.5, "w": 1.5 },
|
||||
{ "label": "space", "matrix":[10,3],"x": 4, "y": 5.5, "w": 7 },
|
||||
{ "label": "ralt", "matrix":[10,5],"x": 11, "y": 5.5, "w": 1.5 },
|
||||
{ "label": "rwin", "matrix":[10,6],"x": 12.5, "y": 5.5, "w": 1 },
|
||||
{ "label": "rctrl", "matrix":[10,7],"x": 13.5, "y": 5.5, "w":1.5},
|
||||
{ "label": "left", "matrix":[9,2],"x": 15.25, "y": 5.5 },
|
||||
{ "label": "down", "matrix":[9,1],"x": 16.25, "y": 5.5 },
|
||||
{ "label": "right", "matrix":[9,0],"x": 17.25, "y": 5.5 }
|
||||
{ "label": "lctrl", "matrix":[10,0],"x": 0, "y": 5.25, "w": 1.5 },
|
||||
{ "label": "lwin", "matrix":[10,1],"x": 1.5, "y": 5.25 },
|
||||
{ "label": "lalt", "matrix":[10,2],"x": 2.5, "y": 5.25, "w": 1.5 },
|
||||
{ "label": "space", "matrix":[10,3],"x": 4, "y": 5.25, "w": 7 },
|
||||
{ "label": "ralt", "matrix":[10,5],"x": 11, "y": 5.25, "w": 1.5 },
|
||||
{ "label": "rwin", "matrix":[10,6],"x": 12.5, "y": 5.25, "w": 1 },
|
||||
{ "label": "rctrl", "matrix":[10,7],"x": 13.5, "y": 5.25, "w":1.5},
|
||||
{ "label": "left", "matrix":[9,2],"x": 15.25, "y": 5.25 },
|
||||
{ "label": "down", "matrix":[9,1],"x": 16.25, "y": 5.25 },
|
||||
{ "label": "right", "matrix":[9,0],"x": 17.25, "y": 5.25 }
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_f13_ansi_tsangan_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0},
|
||||
{"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0},
|
||||
{"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0},
|
||||
{"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0},
|
||||
{"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"label": "F8", "matrix": [5, 8], "x": 8.5, "y": 0},
|
||||
{"label": "F9", "matrix": [5, 7], "x": 9.75, "y": 0},
|
||||
{"label": "F10", "matrix": [5, 6], "x": 10.75, "y": 0},
|
||||
{"label": "F11", "matrix": [5, 5], "x": 11.75, "y": 0},
|
||||
{"label": "F12", "matrix": [5, 4], "x": 12.75, "y": 0},
|
||||
{"label": "F13", "matrix": [5, 3], "x": 14, "y": 0},
|
||||
{"label": "Prtsc", "matrix": [5, 2], "x": 15.25, "y": 0},
|
||||
{"label": "Scrlk", "matrix": [5, 1], "x": 16.25, "y": 0},
|
||||
{"label": "Pause", "matrix": [5, 0], "x": 17.25, "y": 0},
|
||||
|
||||
{"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25},
|
||||
{"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25},
|
||||
{"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25},
|
||||
{"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25},
|
||||
{"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25},
|
||||
{"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25},
|
||||
{"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25},
|
||||
{"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25},
|
||||
{"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25},
|
||||
{"label": "9", "matrix": [6, 8], "x": 9, "y": 1.25},
|
||||
{"label": "0", "matrix": [6, 7], "x": 10, "y": 1.25},
|
||||
{"label": "-", "matrix": [6, 6], "x": 11, "y": 1.25},
|
||||
{"label": "=", "matrix": [6, 5], "x": 12, "y": 1.25},
|
||||
{"label": "backspace", "matrix": [6, 4], "x": 13, "y": 1.25},
|
||||
{"label": "backspace", "matrix": [6, 3], "x": 14, "y": 1.25},
|
||||
{"label": "insert", "matrix": [6, 2], "x": 15.25, "y": 1.25},
|
||||
{"label": "home", "matrix": [6, 1], "x": 16.25, "y": 1.25},
|
||||
{"label": "pg up", "matrix": [6, 0], "x": 17.25, "y": 1.25},
|
||||
|
||||
{"label": "tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
|
||||
{"label": "q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
|
||||
{"label": "w", "matrix": [2, 2], "x": 2.5, "y": 2.25},
|
||||
{"label": "e", "matrix": [2, 3], "x": 3.5, "y": 2.25},
|
||||
{"label": "r", "matrix": [2, 4], "x": 4.5, "y": 2.25},
|
||||
{"label": "t", "matrix": [2, 5], "x": 5.5, "y": 2.25},
|
||||
{"label": "y", "matrix": [2, 6], "x": 6.5, "y": 2.25},
|
||||
{"label": "u", "matrix": [2, 7], "x": 7.5, "y": 2.25},
|
||||
{"label": "i", "matrix": [2, 8], "x": 8.5, "y": 2.25},
|
||||
{"label": "o", "matrix": [7, 8], "x": 9.5, "y": 2.25},
|
||||
{"label": "p", "matrix": [7, 7], "x": 10.5, "y": 2.25},
|
||||
{"label": "{", "matrix": [7, 6], "x": 11.5, "y": 2.25},
|
||||
{"label": "}", "matrix": [7, 5], "x": 12.5, "y": 2.25},
|
||||
{"label": "|", "matrix": [7, 4], "x": 13.5, "y": 2.25, "w": 1.5},
|
||||
{"label": "delete", "matrix": [7, 2], "x": 15.25, "y": 2.25},
|
||||
{"label": "end", "matrix": [7, 1], "x": 16.25, "y": 2.25},
|
||||
{"label": "pg dn", "matrix": [7, 0], "x": 17.25, "y": 2.25},
|
||||
|
||||
{"label": "capslock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
|
||||
{"label": "a", "matrix": [3, 1], "x": 1.75, "y": 3.25},
|
||||
{"label": "s", "matrix": [3, 2], "x": 2.75, "y": 3.25},
|
||||
{"label": "d", "matrix": [3, 3], "x": 3.75, "y": 3.25},
|
||||
{"label": "f", "matrix": [3, 4], "x": 4.75, "y": 3.25},
|
||||
{"label": "g", "matrix": [3, 5], "x": 5.75, "y": 3.25},
|
||||
{"label": "h", "matrix": [3, 6], "x": 6.75, "y": 3.25},
|
||||
{"label": "j", "matrix": [3, 7], "x": 7.75, "y": 3.25},
|
||||
{"label": "k", "matrix": [3, 8], "x": 8.75, "y": 3.25},
|
||||
{"label": "l", "matrix": [8, 8], "x": 9.75, "y": 3.25},
|
||||
{"label": ";", "matrix": [8, 7], "x": 10.75, "y": 3.25},
|
||||
{"label": "'", "matrix": [8, 6], "x": 11.75, "y": 3.25},
|
||||
{"label": "enter", "matrix": [8, 5], "x": 12.75, "y": 3.25, "w": 2.25},
|
||||
|
||||
{"label": "leftshift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
|
||||
{"label": "z", "matrix": [4, 1], "x": 2.25, "y": 4.25},
|
||||
{"label": "x", "matrix": [4, 2], "x": 3.25, "y": 4.25},
|
||||
{"label": "c", "matrix": [4, 3], "x": 4.25, "y": 4.25},
|
||||
{"label": "v", "matrix": [4, 4], "x": 5.25, "y": 4.25},
|
||||
{"label": "b", "matrix": [4, 5], "x": 6.25, "y": 4.25},
|
||||
{"label": "n", "matrix": [4, 6], "x": 7.25, "y": 4.25},
|
||||
{"label": "m", "matrix": [4, 7], "x": 8.25, "y": 4.25},
|
||||
{"label": ",", "matrix": [4, 8], "x": 9.25, "y": 4.25},
|
||||
{"label": ".", "matrix": [9, 8], "x": 10.25, "y": 4.25},
|
||||
{"label": "/", "matrix": [9, 7], "x": 11.25, "y": 4.25},
|
||||
{"label": "rightshift", "matrix": [9, 6], "x": 12.25, "y": 4.25, "w": 1.75},
|
||||
{"label": "rightshift", "matrix": [9, 5], "x": 14, "y": 4.25},
|
||||
{"label": "up", "matrix": [8, 1], "x": 16.25, "y": 4.25},
|
||||
|
||||
{"label": "lctrl", "matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"label": "lwin", "matrix": [10, 1], "x": 1.5, "y": 5.25},
|
||||
{"label": "lalt", "matrix": [10, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"label": "space", "matrix": [10, 3], "x": 4, "y": 5.25, "w": 7},
|
||||
{"label": "ralt", "matrix": [10, 5], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"label": "rwin", "matrix": [10, 6], "x": 12.5, "y": 5.25},
|
||||
{"label": "rctrl", "matrix": [10, 7], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
{"label": "left", "matrix": [9, 2], "x": 15.25, "y": 5.25},
|
||||
{"label": "down", "matrix": [9, 1], "x": 16.25, "y": 5.25},
|
||||
{"label": "right", "matrix": [9, 0], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_f13_iso_tsangan": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0},
|
||||
{"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0},
|
||||
{"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0},
|
||||
{"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0},
|
||||
{"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"label": "F8", "matrix": [5, 8], "x": 8.5, "y": 0},
|
||||
{"label": "F9", "matrix": [5, 7], "x": 9.75, "y": 0},
|
||||
{"label": "F10", "matrix": [5, 6], "x": 10.75, "y": 0},
|
||||
{"label": "F11", "matrix": [5, 5], "x": 11.75, "y": 0},
|
||||
{"label": "F12", "matrix": [5, 4], "x": 12.75, "y": 0},
|
||||
{"label": "F13", "matrix": [5, 3], "x": 14, "y": 0},
|
||||
{"label": "Prtsc", "matrix": [5, 2], "x": 15.25, "y": 0},
|
||||
{"label": "Scrlk", "matrix": [5, 1], "x": 16.25, "y": 0},
|
||||
{"label": "Pause", "matrix": [5, 0], "x": 17.25, "y": 0},
|
||||
|
||||
{"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25},
|
||||
{"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25},
|
||||
{"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25},
|
||||
{"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25},
|
||||
{"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25},
|
||||
{"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25},
|
||||
{"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25},
|
||||
{"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25},
|
||||
{"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25},
|
||||
{"label": "9", "matrix": [6, 8], "x": 9, "y": 1.25},
|
||||
{"label": "0", "matrix": [6, 7], "x": 10, "y": 1.25},
|
||||
{"label": "-", "matrix": [6, 6], "x": 11, "y": 1.25},
|
||||
{"label": "=", "matrix": [6, 5], "x": 12, "y": 1.25},
|
||||
{"label": "backspace", "matrix": [6, 4], "x": 13, "y": 1.25, "w": 2},
|
||||
{"label": "insert", "matrix": [6, 2], "x": 15.25, "y": 1.25},
|
||||
{"label": "home", "matrix": [6, 1], "x": 16.25, "y": 1.25},
|
||||
{"label": "pg up", "matrix": [6, 0], "x": 17.25, "y": 1.25},
|
||||
|
||||
{"label": "tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
|
||||
{"label": "q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
|
||||
{"label": "w", "matrix": [2, 2], "x": 2.5, "y": 2.25},
|
||||
{"label": "e", "matrix": [2, 3], "x": 3.5, "y": 2.25},
|
||||
{"label": "r", "matrix": [2, 4], "x": 4.5, "y": 2.25},
|
||||
{"label": "t", "matrix": [2, 5], "x": 5.5, "y": 2.25},
|
||||
{"label": "y", "matrix": [2, 6], "x": 6.5, "y": 2.25},
|
||||
{"label": "u", "matrix": [2, 7], "x": 7.5, "y": 2.25},
|
||||
{"label": "i", "matrix": [2, 8], "x": 8.5, "y": 2.25},
|
||||
{"label": "o", "matrix": [7, 8], "x": 9.5, "y": 2.25},
|
||||
{"label": "p", "matrix": [7, 7], "x": 10.5, "y": 2.25},
|
||||
{"label": "{", "matrix": [7, 6], "x": 11.5, "y": 2.25},
|
||||
{"label": "}", "matrix": [7, 5], "x": 12.5, "y": 2.25},
|
||||
{"label": "delete", "matrix": [7, 2], "x": 15.25, "y": 2.25},
|
||||
{"label": "end", "matrix": [7, 1], "x": 16.25, "y": 2.25},
|
||||
{"label": "pg dn", "matrix": [7, 0], "x": 17.25, "y": 2.25},
|
||||
|
||||
{"label": "capslock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
|
||||
{"label": "a", "matrix": [3, 1], "x": 1.75, "y": 3.25},
|
||||
{"label": "s", "matrix": [3, 2], "x": 2.75, "y": 3.25},
|
||||
{"label": "d", "matrix": [3, 3], "x": 3.75, "y": 3.25},
|
||||
{"label": "f", "matrix": [3, 4], "x": 4.75, "y": 3.25},
|
||||
{"label": "g", "matrix": [3, 5], "x": 5.75, "y": 3.25},
|
||||
{"label": "h", "matrix": [3, 6], "x": 6.75, "y": 3.25},
|
||||
{"label": "j", "matrix": [3, 7], "x": 7.75, "y": 3.25},
|
||||
{"label": "k", "matrix": [3, 8], "x": 8.75, "y": 3.25},
|
||||
{"label": "l", "matrix": [8, 8], "x": 9.75, "y": 3.25},
|
||||
{"label": ";", "matrix": [8, 7], "x": 10.75, "y": 3.25},
|
||||
{"label": "'", "matrix": [8, 6], "x": 11.75, "y": 3.25},
|
||||
{"label": "#", "matrix": [7, 4], "x": 12.75, "y": 3.25},
|
||||
{"label": "enter", "matrix": [8, 5], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
|
||||
|
||||
{"label": "leftshift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
|
||||
{"label": "\\", "matrix": [9, 3], "x": 1.25, "y": 4.25},
|
||||
{"label": "z", "matrix": [4, 1], "x": 2.25, "y": 4.25},
|
||||
{"label": "x", "matrix": [4, 2], "x": 3.25, "y": 4.25},
|
||||
{"label": "c", "matrix": [4, 3], "x": 4.25, "y": 4.25},
|
||||
{"label": "v", "matrix": [4, 4], "x": 5.25, "y": 4.25},
|
||||
{"label": "b", "matrix": [4, 5], "x": 6.25, "y": 4.25},
|
||||
{"label": "n", "matrix": [4, 6], "x": 7.25, "y": 4.25},
|
||||
{"label": "m", "matrix": [4, 7], "x": 8.25, "y": 4.25},
|
||||
{"label": ",", "matrix": [4, 8], "x": 9.25, "y": 4.25},
|
||||
{"label": ".", "matrix": [9, 8], "x": 10.25, "y": 4.25},
|
||||
{"label": "/", "matrix": [9, 7], "x": 11.25, "y": 4.25},
|
||||
{"label": "rightshift", "matrix": [9, 6], "x": 12.25, "y": 4.25, "w": 2.75},
|
||||
{"label": "up", "matrix": [8, 1], "x": 16.25, "y": 4.25},
|
||||
|
||||
{"label": "lctrl", "matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"label": "lwin", "matrix": [10, 1], "x": 1.5, "y": 5.25},
|
||||
{"label": "lalt", "matrix": [10, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"label": "space", "matrix": [10, 3], "x": 4, "y": 5.25, "w": 7},
|
||||
{"label": "ralt", "matrix": [10, 5], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"label": "rwin", "matrix": [10, 6], "x": 12.5, "y": 5.25},
|
||||
{"label": "rctrl", "matrix": [10, 7], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
{"label": "left", "matrix": [9, 2], "x": 15.25, "y": 5.25},
|
||||
{"label": "down", "matrix": [9, 1], "x": 16.25, "y": 5.25},
|
||||
{"label": "right", "matrix": [9, 0], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_f13_iso_tsangan_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0},
|
||||
{"label": "F2", "matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"label": "F3", "matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"label": "F4", "matrix": [0, 4], "x": 4.25, "y": 0},
|
||||
{"label": "F5", "matrix": [0, 5], "x": 5.5, "y": 0},
|
||||
{"label": "F6", "matrix": [0, 6], "x": 6.5, "y": 0},
|
||||
{"label": "F7", "matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"label": "F8", "matrix": [5, 8], "x": 8.5, "y": 0},
|
||||
{"label": "F9", "matrix": [5, 7], "x": 9.75, "y": 0},
|
||||
{"label": "F10", "matrix": [5, 6], "x": 10.75, "y": 0},
|
||||
{"label": "F11", "matrix": [5, 5], "x": 11.75, "y": 0},
|
||||
{"label": "F12", "matrix": [5, 4], "x": 12.75, "y": 0},
|
||||
{"label": "F13", "matrix": [5, 3], "x": 14, "y": 0},
|
||||
{"label": "Prtsc", "matrix": [5, 2], "x": 15.25, "y": 0},
|
||||
{"label": "Scrlk", "matrix": [5, 1], "x": 16.25, "y": 0},
|
||||
{"label": "Pause", "matrix": [5, 0], "x": 17.25, "y": 0},
|
||||
|
||||
{"label": "~", "matrix": [1, 0], "x": 0, "y": 1.25},
|
||||
{"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25},
|
||||
{"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25},
|
||||
{"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25},
|
||||
{"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25},
|
||||
{"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25},
|
||||
{"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25},
|
||||
{"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25},
|
||||
{"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25},
|
||||
{"label": "9", "matrix": [6, 8], "x": 9, "y": 1.25},
|
||||
{"label": "0", "matrix": [6, 7], "x": 10, "y": 1.25},
|
||||
{"label": "-", "matrix": [6, 6], "x": 11, "y": 1.25},
|
||||
{"label": "=", "matrix": [6, 5], "x": 12, "y": 1.25},
|
||||
{"label": "backspace", "matrix": [6, 4], "x": 13, "y": 1.25},
|
||||
{"label": "backspace", "matrix": [6, 3], "x": 14, "y": 1.25},
|
||||
{"label": "insert", "matrix": [6, 2], "x": 15.25, "y": 1.25},
|
||||
{"label": "home", "matrix": [6, 1], "x": 16.25, "y": 1.25},
|
||||
{"label": "pg up", "matrix": [6, 0], "x": 17.25, "y": 1.25},
|
||||
|
||||
{"label": "tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
|
||||
{"label": "q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
|
||||
{"label": "w", "matrix": [2, 2], "x": 2.5, "y": 2.25},
|
||||
{"label": "e", "matrix": [2, 3], "x": 3.5, "y": 2.25},
|
||||
{"label": "r", "matrix": [2, 4], "x": 4.5, "y": 2.25},
|
||||
{"label": "t", "matrix": [2, 5], "x": 5.5, "y": 2.25},
|
||||
{"label": "y", "matrix": [2, 6], "x": 6.5, "y": 2.25},
|
||||
{"label": "u", "matrix": [2, 7], "x": 7.5, "y": 2.25},
|
||||
{"label": "i", "matrix": [2, 8], "x": 8.5, "y": 2.25},
|
||||
{"label": "o", "matrix": [7, 8], "x": 9.5, "y": 2.25},
|
||||
{"label": "p", "matrix": [7, 7], "x": 10.5, "y": 2.25},
|
||||
{"label": "{", "matrix": [7, 6], "x": 11.5, "y": 2.25},
|
||||
{"label": "}", "matrix": [7, 5], "x": 12.5, "y": 2.25},
|
||||
{"label": "delete", "matrix": [7, 2], "x": 15.25, "y": 2.25},
|
||||
{"label": "end", "matrix": [7, 1], "x": 16.25, "y": 2.25},
|
||||
{"label": "pg dn", "matrix": [7, 0], "x": 17.25, "y": 2.25},
|
||||
|
||||
{"label": "capslock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
|
||||
{"label": "a", "matrix": [3, 1], "x": 1.75, "y": 3.25},
|
||||
{"label": "s", "matrix": [3, 2], "x": 2.75, "y": 3.25},
|
||||
{"label": "d", "matrix": [3, 3], "x": 3.75, "y": 3.25},
|
||||
{"label": "f", "matrix": [3, 4], "x": 4.75, "y": 3.25},
|
||||
{"label": "g", "matrix": [3, 5], "x": 5.75, "y": 3.25},
|
||||
{"label": "h", "matrix": [3, 6], "x": 6.75, "y": 3.25},
|
||||
{"label": "j", "matrix": [3, 7], "x": 7.75, "y": 3.25},
|
||||
{"label": "k", "matrix": [3, 8], "x": 8.75, "y": 3.25},
|
||||
{"label": "l", "matrix": [8, 8], "x": 9.75, "y": 3.25},
|
||||
{"label": ";", "matrix": [8, 7], "x": 10.75, "y": 3.25},
|
||||
{"label": "'", "matrix": [8, 6], "x": 11.75, "y": 3.25},
|
||||
{"label": "#", "matrix": [7, 4], "x": 12.75, "y": 3.25},
|
||||
{"label": "enter", "matrix": [8, 5], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
|
||||
|
||||
{"label": "leftshift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
|
||||
{"label": "\\", "matrix": [9, 3], "x": 1.25, "y": 4.25},
|
||||
{"label": "z", "matrix": [4, 1], "x": 2.25, "y": 4.25},
|
||||
{"label": "x", "matrix": [4, 2], "x": 3.25, "y": 4.25},
|
||||
{"label": "c", "matrix": [4, 3], "x": 4.25, "y": 4.25},
|
||||
{"label": "v", "matrix": [4, 4], "x": 5.25, "y": 4.25},
|
||||
{"label": "b", "matrix": [4, 5], "x": 6.25, "y": 4.25},
|
||||
{"label": "n", "matrix": [4, 6], "x": 7.25, "y": 4.25},
|
||||
{"label": "m", "matrix": [4, 7], "x": 8.25, "y": 4.25},
|
||||
{"label": ",", "matrix": [4, 8], "x": 9.25, "y": 4.25},
|
||||
{"label": ".", "matrix": [9, 8], "x": 10.25, "y": 4.25},
|
||||
{"label": "/", "matrix": [9, 7], "x": 11.25, "y": 4.25},
|
||||
{"label": "rightshift", "matrix": [9, 6], "x": 12.25, "y": 4.25, "w": 1.75},
|
||||
{"label": "rightshift", "matrix": [9, 5], "x": 14, "y": 4.25},
|
||||
{"label": "up", "matrix": [8, 1], "x": 16.25, "y": 4.25},
|
||||
|
||||
{"label": "lctrl", "matrix": [10, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"label": "lwin", "matrix": [10, 1], "x": 1.5, "y": 5.25},
|
||||
{"label": "lalt", "matrix": [10, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"label": "space", "matrix": [10, 3], "x": 4, "y": 5.25, "w": 7},
|
||||
{"label": "ralt", "matrix": [10, 5], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"label": "rwin", "matrix": [10, 6], "x": 12.5, "y": 5.25},
|
||||
{"label": "rctrl", "matrix": [10, 7], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
{"label": "left", "matrix": [9, 2], "x": 15.25, "y": 5.25},
|
||||
{"label": "down", "matrix": [9, 1], "x": 16.25, "y": 5.25},
|
||||
{"label": "right", "matrix": [9, 0], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,29 +30,62 @@
|
||||
"pid": "0x4F4E",
|
||||
"vid": "0x414B"
|
||||
},
|
||||
"community_layouts": [
|
||||
"numpad_5x4"
|
||||
],
|
||||
"community_layouts": [
|
||||
"ortho_5x4",
|
||||
"numpad_5x4"
|
||||
],
|
||||
"layouts": {
|
||||
"LAYOUT_ortho_5x4": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"matrix": [2, 1], "x": 1, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3, "y": 2},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3},
|
||||
{"matrix": [3, 1], "x": 1, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4},
|
||||
{"matrix": [4, 1], "x": 1, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2, "y": 4},
|
||||
{"matrix": [4, 3], "x": 3, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_numpad_5x4": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"matrix": [2, 1], "x": 1, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2, "y": 2},
|
||||
{"h": 2, "matrix": [1, 3], "x": 3, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1, "h": 2},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3},
|
||||
{"matrix": [3, 1], "x": 1, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2, "y": 3},
|
||||
{"matrix": [4, 0], "w": 2, "x": 0, "y": 4},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 2},
|
||||
{"matrix": [4, 2], "x": 2, "y": 4},
|
||||
{"h": 2, "matrix": [3, 3], "x": 3, "y": 3}
|
||||
{"matrix": [3, 3], "x": 3, "y": 3, "h": 2}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┐
|
||||
* │TG1│ / │ * │ - │
|
||||
* │NUM│ / │ * │ - │
|
||||
* ├───┼───┼───┼───┤
|
||||
* │ 7 │ 8 │ 9 │ │
|
||||
* ├───┼───┼───┤ + │
|
||||
@@ -22,21 +22,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_P7, KC_P8, KC_P9,
|
||||
KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||
KC_P1, KC_P2, KC_P3,
|
||||
KC_P0, KC_PDOT, KC_PENT
|
||||
KC_P0, KC_PDOT, KC_PENT
|
||||
),
|
||||
|
||||
/*
|
||||
* ┌───┬───┬───┬───┐
|
||||
* │TG1│ / │ * │ - │
|
||||
* ┌───┬───┬───┐───┤
|
||||
* │NUM│ / │ * │ - │
|
||||
* ├───┼───┼───┼───┤
|
||||
* │Hom│ ↑ │PgU│ │
|
||||
* ├───┼───┼───┤ + │
|
||||
* │ ← │ │ → │ │
|
||||
* ├───┼───┼───┤───┤
|
||||
* ├───┼───┼───┼───┤
|
||||
* │End│ ↓ │PgD│ │
|
||||
* ├───┴───┼───┤Ent│
|
||||
* │Insert │Del│ │
|
||||
* └───────┴───┘───┘
|
||||
* └───────┴───┴───┘
|
||||
*/
|
||||
[1] = LAYOUT_numpad_5x4(
|
||||
_______, _______, _______, _______,
|
||||
|
||||
@@ -22,21 +22,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_P7, KC_P8, KC_P9,
|
||||
KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||
KC_P1, KC_P2, KC_P3,
|
||||
KC_P0, KC_PDOT, KC_PENT
|
||||
KC_P0, KC_PDOT, KC_PENT
|
||||
),
|
||||
|
||||
/*
|
||||
* ┌───┬───┬───┬───┐
|
||||
* │ │ / │ * │ - │
|
||||
* ┌───┬───┬───┐───┤
|
||||
* │NUM│ / │ * │ - │
|
||||
* ├───┼───┼───┼───┤
|
||||
* │Hom│ ↑ │PgU│ │
|
||||
* ├───┼───┼───┤ + │
|
||||
* │ ← │ │ → │ │
|
||||
* ├───┼───┼───┤───┤
|
||||
* ├───┼───┼───┼───┤
|
||||
* │End│ ↓ │PgD│ │
|
||||
* ├───┴───┼───┤Ent│
|
||||
* │Insert │Del│ │
|
||||
* └───────┴───┘───┘
|
||||
* └───────┴───┴───┘
|
||||
*/
|
||||
[1] = LAYOUT_numpad_5x4(
|
||||
_______, _______, _______, _______,
|
||||
|
||||
18
keyboards/akb/ogrn/matrix_diagram.md
Normal file
18
keyboards/akb/ogrn/matrix_diagram.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# Matrix Diagram for Alchemist Keyboards OGRN
|
||||
|
||||
```
|
||||
┌───┬───┬───┬───┐
|
||||
│00 │01 │02 │03 │
|
||||
┌───┐ ├───┼───┼───┼───┤ ┌───┐
|
||||
│ │ │10 │11 │12 │13 │ │ │
|
||||
│10 │ ├───┼───┼───┼───┤ │13 │ 2u Numpad Plus
|
||||
│ │ │20 │21 │22 │23 │ │ │
|
||||
├───┤ ├───┼───┼───┼───┤ ├───┤
|
||||
│ │ │30 │31 │32 │33 │ │ │
|
||||
│30 │ ├───┼───┼───┼───┤ │33 │ 2u Numpad Enter
|
||||
│ │ │40 │41 │42 │43 │ │ │
|
||||
└───┘ └───┴───┴───┴───┘ └───┘
|
||||
┌───────┬───────┐
|
||||
│41 │42 │
|
||||
└───────┴───────┘
|
||||
```
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
This is the QMK firmware repository for the Alpine65, a 65% hotswap keyboard designed by Bitmap Designs and Gondolindrim.
|
||||
|
||||
The Alpine65 has entered GB and sucessfully finalized in november 2020; there is no further way to buy an Alpine65 other than the secondhand market. The IC page for the keyboard can be found [here](https://https://geekhack.org/index.php?topic=106974).
|
||||
The Alpine65 has entered GB and sucessfully finalized in november 2020; there is no further way to buy an Alpine65 other than the secondhand market. The IC page for the keyboard can be found [here](https://geekhack.org/index.php?topic=106974).
|
||||
|
||||
## How to compile
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
"layout_aliases": {
|
||||
"LAYOUT": "LAYOUT_all"
|
||||
},
|
||||
"community_layouts": ["75_ansi", "75_iso"],
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
@@ -118,6 +119,99 @@
|
||||
{"matrix": [5, 14], "x": 15, "y": 5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_75_ansi": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [5, 8], "x": 14, "y": 0},
|
||||
{"matrix": [0, 14], "x": 15, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
|
||||
{"matrix": [1, 14], "x": 15, "y": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.5, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.5, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.5, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.5, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.5, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.5, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.5, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.5, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.5, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.5, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.5, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5},
|
||||
{"matrix": [2, 14], "x": 15, "y": 2},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 1], "x": 1.75, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.75, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.75, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.75, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.75, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.75, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.75, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.75, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.75, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.75, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.75, "y": 3},
|
||||
{"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 14], "x": 15, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25},
|
||||
{"matrix": [4, 2], "x": 2.25, "y": 4},
|
||||
{"matrix": [4, 3], "x": 3.25, "y": 4},
|
||||
{"matrix": [4, 4], "x": 4.25, "y": 4},
|
||||
{"matrix": [4, 5], "x": 5.25, "y": 4},
|
||||
{"matrix": [4, 6], "x": 6.25, "y": 4},
|
||||
{"matrix": [4, 7], "x": 7.25, "y": 4},
|
||||
{"matrix": [4, 8], "x": 8.25, "y": 4},
|
||||
{"matrix": [4, 9], "x": 9.25, "y": 4},
|
||||
{"matrix": [4, 10], "x": 10.25, "y": 4},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4},
|
||||
{"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75},
|
||||
{"matrix": [4, 13], "x": 14, "y": 4},
|
||||
{"matrix": [4, 14], "x": 15, "y": 4},
|
||||
|
||||
{"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
|
||||
{"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
|
||||
{"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25},
|
||||
{"matrix": [5, 9], "x": 10, "y": 5},
|
||||
{"matrix": [5, 10], "x": 11, "y": 5},
|
||||
{"matrix": [5, 11], "x": 12, "y": 5},
|
||||
{"matrix": [5, 12], "x": 13, "y": 5},
|
||||
{"matrix": [5, 13], "x": 14, "y": 5},
|
||||
{"matrix": [5, 14], "x": 15, "y": 5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_75_ansi_rwkl": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
@@ -210,6 +304,100 @@
|
||||
{"matrix": [5, 14], "x": 15, "y": 5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_75_iso": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [5, 8], "x": 14, "y": 0},
|
||||
{"matrix": [0, 14], "x": 15, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
|
||||
{"matrix": [1, 14], "x": 15, "y": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.5, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.5, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.5, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.5, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.5, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.5, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.5, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.5, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.5, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.5, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.5, "y": 2},
|
||||
{"matrix": [2, 14], "x": 15, "y": 2},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 1], "x": 1.75, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.75, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.75, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.75, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.75, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.75, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.75, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.75, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.75, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.75, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.75, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.75, "y": 3},
|
||||
{"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2},
|
||||
{"matrix": [3, 14], "x": 15, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.25, "y": 4},
|
||||
{"matrix": [4, 3], "x": 3.25, "y": 4},
|
||||
{"matrix": [4, 4], "x": 4.25, "y": 4},
|
||||
{"matrix": [4, 5], "x": 5.25, "y": 4},
|
||||
{"matrix": [4, 6], "x": 6.25, "y": 4},
|
||||
{"matrix": [4, 7], "x": 7.25, "y": 4},
|
||||
{"matrix": [4, 8], "x": 8.25, "y": 4},
|
||||
{"matrix": [4, 9], "x": 9.25, "y": 4},
|
||||
{"matrix": [4, 10], "x": 10.25, "y": 4},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4},
|
||||
{"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75},
|
||||
{"matrix": [4, 13], "x": 14, "y": 4},
|
||||
{"matrix": [4, 14], "x": 15, "y": 4},
|
||||
|
||||
{"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
|
||||
{"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
|
||||
{"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25},
|
||||
{"matrix": [5, 9], "x": 10, "y": 5},
|
||||
{"matrix": [5, 10], "x": 11, "y": 5},
|
||||
{"matrix": [5, 11], "x": 12, "y": 5},
|
||||
{"matrix": [5, 12], "x": 13, "y": 5},
|
||||
{"matrix": [5, 13], "x": 14, "y": 5},
|
||||
{"matrix": [5, 14], "x": 15, "y": 5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_75_iso_rwkl": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
@@ -43,8 +43,11 @@
|
||||
"backlight": {
|
||||
"pin": "GP26"
|
||||
},
|
||||
"layout_aliases": {
|
||||
"LAYOUT": "LAYOUT_ortho_4x3"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"LAYOUT_ortho_4x3": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
|
||||
@@ -8,7 +8,7 @@ enum layer_names {
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(
|
||||
[_BASE] = LAYOUT_ortho_4x3(
|
||||
KC_1, KC_2, KC_3,
|
||||
KC_4, KC_5, KC_6,
|
||||
KC_7, KC_8, KC_9,
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user