mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-07-27 19:41:16 +00:00
Merge branch 'qmk:master' into dev
This commit is contained in:
commit
a892fc61e2
2
.github/workflows/stale.yml
vendored
2
.github/workflows/stale.yml
vendored
@ -45,7 +45,7 @@ jobs:
|
||||
stale-pr-label: stale
|
||||
days-before-pr-stale: 45
|
||||
days-before-pr-close: 30
|
||||
exempt-pr-labels: bug,awaiting review,breaking_change,in progress,on hold
|
||||
exempt-pr-labels: bug,awaiting review,breaking_change,in progress,on hold,needs-core-wireless,crippled-firmware
|
||||
|
||||
stale-pr-message: >
|
||||
Thank you for your contribution!
|
||||
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"license": "GPL-2.0-or-later",
|
||||
"devDependencies": {
|
||||
"vite": "^5.2.14",
|
||||
"vite": "^5.4.12",
|
||||
"vitepress": "^1.1.0",
|
||||
"vitepress-plugin-tabs": "^0.5.0",
|
||||
"vue": "^3.4.24"
|
||||
|
@ -178,205 +178,220 @@
|
||||
"@docsearch/css" "3.6.0"
|
||||
algoliasearch "^4.19.1"
|
||||
|
||||
"@esbuild/aix-ppc64@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz#a70f4ac11c6a1dfc18b8bbb13284155d933b9537"
|
||||
integrity sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==
|
||||
"@esbuild/aix-ppc64@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz#c7184a326533fcdf1b8ee0733e21c713b975575f"
|
||||
integrity sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==
|
||||
|
||||
"@esbuild/android-arm64@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz#db1c9202a5bc92ea04c7b6840f1bbe09ebf9e6b9"
|
||||
integrity sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==
|
||||
"@esbuild/android-arm64@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz#09d9b4357780da9ea3a7dfb833a1f1ff439b4052"
|
||||
integrity sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==
|
||||
|
||||
"@esbuild/android-arm@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.2.tgz#3b488c49aee9d491c2c8f98a909b785870d6e995"
|
||||
integrity sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==
|
||||
"@esbuild/android-arm@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.21.5.tgz#9b04384fb771926dfa6d7ad04324ecb2ab9b2e28"
|
||||
integrity sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==
|
||||
|
||||
"@esbuild/android-x64@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.2.tgz#3b1628029e5576249d2b2d766696e50768449f98"
|
||||
integrity sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==
|
||||
"@esbuild/android-x64@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.21.5.tgz#29918ec2db754cedcb6c1b04de8cd6547af6461e"
|
||||
integrity sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==
|
||||
|
||||
"@esbuild/darwin-arm64@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz#6e8517a045ddd86ae30c6608c8475ebc0c4000bb"
|
||||
integrity sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==
|
||||
"@esbuild/darwin-arm64@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz#e495b539660e51690f3928af50a76fb0a6ccff2a"
|
||||
integrity sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==
|
||||
|
||||
"@esbuild/darwin-x64@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz#90ed098e1f9dd8a9381695b207e1cff45540a0d0"
|
||||
integrity sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==
|
||||
"@esbuild/darwin-x64@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz#c13838fa57372839abdddc91d71542ceea2e1e22"
|
||||
integrity sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==
|
||||
|
||||
"@esbuild/freebsd-arm64@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz#d71502d1ee89a1130327e890364666c760a2a911"
|
||||
integrity sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==
|
||||
"@esbuild/freebsd-arm64@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz#646b989aa20bf89fd071dd5dbfad69a3542e550e"
|
||||
integrity sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==
|
||||
|
||||
"@esbuild/freebsd-x64@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz#aa5ea58d9c1dd9af688b8b6f63ef0d3d60cea53c"
|
||||
integrity sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==
|
||||
"@esbuild/freebsd-x64@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz#aa615cfc80af954d3458906e38ca22c18cf5c261"
|
||||
integrity sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==
|
||||
|
||||
"@esbuild/linux-arm64@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz#055b63725df678379b0f6db9d0fa85463755b2e5"
|
||||
integrity sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==
|
||||
"@esbuild/linux-arm64@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz#70ac6fa14f5cb7e1f7f887bcffb680ad09922b5b"
|
||||
integrity sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==
|
||||
|
||||
"@esbuild/linux-arm@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz#76b3b98cb1f87936fbc37f073efabad49dcd889c"
|
||||
integrity sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==
|
||||
"@esbuild/linux-arm@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz#fc6fd11a8aca56c1f6f3894f2bea0479f8f626b9"
|
||||
integrity sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==
|
||||
|
||||
"@esbuild/linux-ia32@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz#c0e5e787c285264e5dfc7a79f04b8b4eefdad7fa"
|
||||
integrity sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==
|
||||
"@esbuild/linux-ia32@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz#3271f53b3f93e3d093d518d1649d6d68d346ede2"
|
||||
integrity sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==
|
||||
|
||||
"@esbuild/linux-loong64@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz#a6184e62bd7cdc63e0c0448b83801001653219c5"
|
||||
integrity sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==
|
||||
"@esbuild/linux-loong64@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz#ed62e04238c57026aea831c5a130b73c0f9f26df"
|
||||
integrity sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==
|
||||
|
||||
"@esbuild/linux-mips64el@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz#d08e39ce86f45ef8fc88549d29c62b8acf5649aa"
|
||||
integrity sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==
|
||||
"@esbuild/linux-mips64el@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz#e79b8eb48bf3b106fadec1ac8240fb97b4e64cbe"
|
||||
integrity sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==
|
||||
|
||||
"@esbuild/linux-ppc64@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz#8d252f0b7756ffd6d1cbde5ea67ff8fd20437f20"
|
||||
integrity sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==
|
||||
"@esbuild/linux-ppc64@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz#5f2203860a143b9919d383ef7573521fb154c3e4"
|
||||
integrity sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==
|
||||
|
||||
"@esbuild/linux-riscv64@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz#19f6dcdb14409dae607f66ca1181dd4e9db81300"
|
||||
integrity sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==
|
||||
"@esbuild/linux-riscv64@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz#07bcafd99322d5af62f618cb9e6a9b7f4bb825dc"
|
||||
integrity sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==
|
||||
|
||||
"@esbuild/linux-s390x@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz#3c830c90f1a5d7dd1473d5595ea4ebb920988685"
|
||||
integrity sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==
|
||||
"@esbuild/linux-s390x@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz#b7ccf686751d6a3e44b8627ababc8be3ef62d8de"
|
||||
integrity sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==
|
||||
|
||||
"@esbuild/linux-x64@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz#86eca35203afc0d9de0694c64ec0ab0a378f6fff"
|
||||
integrity sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==
|
||||
"@esbuild/linux-x64@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz#6d8f0c768e070e64309af8004bb94e68ab2bb3b0"
|
||||
integrity sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==
|
||||
|
||||
"@esbuild/netbsd-x64@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz#e771c8eb0e0f6e1877ffd4220036b98aed5915e6"
|
||||
integrity sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==
|
||||
"@esbuild/netbsd-x64@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz#bbe430f60d378ecb88decb219c602667387a6047"
|
||||
integrity sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==
|
||||
|
||||
"@esbuild/openbsd-x64@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz#9a795ae4b4e37e674f0f4d716f3e226dd7c39baf"
|
||||
integrity sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==
|
||||
"@esbuild/openbsd-x64@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz#99d1cf2937279560d2104821f5ccce220cb2af70"
|
||||
integrity sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==
|
||||
|
||||
"@esbuild/sunos-x64@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz#7df23b61a497b8ac189def6e25a95673caedb03f"
|
||||
integrity sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==
|
||||
"@esbuild/sunos-x64@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz#08741512c10d529566baba837b4fe052c8f3487b"
|
||||
integrity sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==
|
||||
|
||||
"@esbuild/win32-arm64@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz#f1ae5abf9ca052ae11c1bc806fb4c0f519bacf90"
|
||||
integrity sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==
|
||||
"@esbuild/win32-arm64@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz#675b7385398411240735016144ab2e99a60fc75d"
|
||||
integrity sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==
|
||||
|
||||
"@esbuild/win32-ia32@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz#241fe62c34d8e8461cd708277813e1d0ba55ce23"
|
||||
integrity sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==
|
||||
"@esbuild/win32-ia32@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz#1bfc3ce98aa6ca9a0969e4d2af72144c59c1193b"
|
||||
integrity sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==
|
||||
|
||||
"@esbuild/win32-x64@0.20.2":
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz#9c907b21e30a52db959ba4f80bb01a0cc403d5cc"
|
||||
integrity sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==
|
||||
"@esbuild/win32-x64@0.21.5":
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c"
|
||||
integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==
|
||||
|
||||
"@jridgewell/sourcemap-codec@^1.4.15":
|
||||
version "1.4.15"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
|
||||
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
|
||||
|
||||
"@rollup/rollup-android-arm-eabi@4.22.4":
|
||||
version "4.22.4"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.22.4.tgz#8b613b9725e8f9479d142970b106b6ae878610d5"
|
||||
integrity sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==
|
||||
"@rollup/rollup-android-arm-eabi@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz#d4dd60da0075a6ce9a6c76d71b8204f3e1822285"
|
||||
integrity sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA==
|
||||
|
||||
"@rollup/rollup-android-arm64@4.22.4":
|
||||
version "4.22.4"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.22.4.tgz#654ca1049189132ff602bfcf8df14c18da1f15fb"
|
||||
integrity sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==
|
||||
"@rollup/rollup-android-arm64@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz#25c4d33259a7a2ccd2f52a5ffcc0bb3ab3f0729d"
|
||||
integrity sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g==
|
||||
|
||||
"@rollup/rollup-darwin-arm64@4.22.4":
|
||||
version "4.22.4"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.22.4.tgz#6d241d099d1518ef0c2205d96b3fa52e0fe1954b"
|
||||
integrity sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==
|
||||
"@rollup/rollup-darwin-arm64@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz#d137dff254b19163a6b52ac083a71cd055dae844"
|
||||
integrity sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g==
|
||||
|
||||
"@rollup/rollup-darwin-x64@4.22.4":
|
||||
version "4.22.4"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.22.4.tgz#42bd19d292a57ee11734c980c4650de26b457791"
|
||||
integrity sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==
|
||||
"@rollup/rollup-darwin-x64@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz#58ff20b5dacb797d3adca19f02a21c532f9d55bf"
|
||||
integrity sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ==
|
||||
|
||||
"@rollup/rollup-linux-arm-gnueabihf@4.22.4":
|
||||
version "4.22.4"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz#f23555ee3d8fe941c5c5fd458cd22b65eb1c2232"
|
||||
integrity sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==
|
||||
"@rollup/rollup-freebsd-arm64@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz#96ce1a241c591ec3e068f4af765d94eddb24e60c"
|
||||
integrity sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew==
|
||||
|
||||
"@rollup/rollup-linux-arm-musleabihf@4.22.4":
|
||||
version "4.22.4"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.22.4.tgz#f3bbd1ae2420f5539d40ac1fde2b38da67779baa"
|
||||
integrity sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==
|
||||
"@rollup/rollup-freebsd-x64@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz#e59e7ede505be41f0b4311b0b943f8eb44938467"
|
||||
integrity sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA==
|
||||
|
||||
"@rollup/rollup-linux-arm64-gnu@4.22.4":
|
||||
version "4.22.4"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.22.4.tgz#7abe900120113e08a1f90afb84c7c28774054d15"
|
||||
integrity sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==
|
||||
"@rollup/rollup-linux-arm-gnueabihf@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz#e455ca6e4ff35bd46d62201c153352e717000a7b"
|
||||
integrity sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw==
|
||||
|
||||
"@rollup/rollup-linux-arm64-musl@4.22.4":
|
||||
version "4.22.4"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.22.4.tgz#9e655285c8175cd44f57d6a1e8e5dedfbba1d820"
|
||||
integrity sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==
|
||||
"@rollup/rollup-linux-arm-musleabihf@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz#bc1a93d807d19e70b1e343a5bfea43723bcd6327"
|
||||
integrity sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg==
|
||||
|
||||
"@rollup/rollup-linux-powerpc64le-gnu@4.22.4":
|
||||
version "4.22.4"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.22.4.tgz#9a79ae6c9e9d8fe83d49e2712ecf4302db5bef5e"
|
||||
integrity sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==
|
||||
"@rollup/rollup-linux-arm64-gnu@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz#f38bf843f1dc3d5de680caf31084008846e3efae"
|
||||
integrity sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA==
|
||||
|
||||
"@rollup/rollup-linux-riscv64-gnu@4.22.4":
|
||||
version "4.22.4"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.22.4.tgz#67ac70eca4ace8e2942fabca95164e8874ab8128"
|
||||
integrity sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==
|
||||
"@rollup/rollup-linux-arm64-musl@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz#b3987a96c18b7287129cf735be2dbf83e94d9d05"
|
||||
integrity sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g==
|
||||
|
||||
"@rollup/rollup-linux-s390x-gnu@4.22.4":
|
||||
version "4.22.4"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.22.4.tgz#9f883a7440f51a22ed7f99e1d070bd84ea5005fc"
|
||||
integrity sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==
|
||||
"@rollup/rollup-linux-loongarch64-gnu@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz#0f0324044e71c4f02e9f49e7ec4e347b655b34ee"
|
||||
integrity sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ==
|
||||
|
||||
"@rollup/rollup-linux-x64-gnu@4.22.4":
|
||||
version "4.22.4"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.22.4.tgz#70116ae6c577fe367f58559e2cffb5641a1dd9d0"
|
||||
integrity sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==
|
||||
"@rollup/rollup-linux-powerpc64le-gnu@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz#809479f27f1fd5b4eecd2aa732132ad952d454ba"
|
||||
integrity sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ==
|
||||
|
||||
"@rollup/rollup-linux-x64-musl@4.22.4":
|
||||
version "4.22.4"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.22.4.tgz#f473f88219feb07b0b98b53a7923be716d1d182f"
|
||||
integrity sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==
|
||||
"@rollup/rollup-linux-riscv64-gnu@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz#7bc75c4f22db04d3c972f83431739cfa41c6a36e"
|
||||
integrity sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw==
|
||||
|
||||
"@rollup/rollup-win32-arm64-msvc@4.22.4":
|
||||
version "4.22.4"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.22.4.tgz#4349482d17f5d1c58604d1c8900540d676f420e0"
|
||||
integrity sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==
|
||||
"@rollup/rollup-linux-s390x-gnu@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz#cfe8052345c55864d83ae343362cf1912480170e"
|
||||
integrity sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ==
|
||||
|
||||
"@rollup/rollup-win32-ia32-msvc@4.22.4":
|
||||
version "4.22.4"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.22.4.tgz#a6fc39a15db618040ec3c2a24c1e26cb5f4d7422"
|
||||
integrity sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==
|
||||
"@rollup/rollup-linux-x64-gnu@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz#c6b048f1e25f3fea5b4bd246232f4d07a159c5a0"
|
||||
integrity sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g==
|
||||
|
||||
"@rollup/rollup-win32-x64-msvc@4.22.4":
|
||||
version "4.22.4"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.22.4.tgz#3dd5d53e900df2a40841882c02e56f866c04d202"
|
||||
integrity sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==
|
||||
"@rollup/rollup-linux-x64-musl@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz#615273ac52d1a201f4de191cbd3389016a9d7d80"
|
||||
integrity sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA==
|
||||
|
||||
"@rollup/rollup-win32-arm64-msvc@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz#32ed85810c1b831c648eca999d68f01255b30691"
|
||||
integrity sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw==
|
||||
|
||||
"@rollup/rollup-win32-ia32-msvc@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz#d47effada68bcbfdccd30c4a788d42e4542ff4d3"
|
||||
integrity sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ==
|
||||
|
||||
"@rollup/rollup-win32-x64-msvc@4.31.0":
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz#7a2d89a82cf0388d60304964217dd7beac6de645"
|
||||
integrity sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw==
|
||||
|
||||
"@shikijs/core@1.3.0", "@shikijs/core@^1.3.0":
|
||||
version "1.3.0"
|
||||
@ -390,10 +405,10 @@
|
||||
dependencies:
|
||||
shiki "1.3.0"
|
||||
|
||||
"@types/estree@1.0.5":
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4"
|
||||
integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==
|
||||
"@types/estree@1.0.6":
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50"
|
||||
integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
|
||||
|
||||
"@types/linkify-it@*":
|
||||
version "3.0.5"
|
||||
@ -589,34 +604,34 @@ entities@^4.5.0:
|
||||
resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48"
|
||||
integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==
|
||||
|
||||
esbuild@^0.20.1:
|
||||
version "0.20.2"
|
||||
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.2.tgz#9d6b2386561766ee6b5a55196c6d766d28c87ea1"
|
||||
integrity sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==
|
||||
esbuild@^0.21.3:
|
||||
version "0.21.5"
|
||||
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.21.5.tgz#9ca301b120922959b766360d8ac830da0d02997d"
|
||||
integrity sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==
|
||||
optionalDependencies:
|
||||
"@esbuild/aix-ppc64" "0.20.2"
|
||||
"@esbuild/android-arm" "0.20.2"
|
||||
"@esbuild/android-arm64" "0.20.2"
|
||||
"@esbuild/android-x64" "0.20.2"
|
||||
"@esbuild/darwin-arm64" "0.20.2"
|
||||
"@esbuild/darwin-x64" "0.20.2"
|
||||
"@esbuild/freebsd-arm64" "0.20.2"
|
||||
"@esbuild/freebsd-x64" "0.20.2"
|
||||
"@esbuild/linux-arm" "0.20.2"
|
||||
"@esbuild/linux-arm64" "0.20.2"
|
||||
"@esbuild/linux-ia32" "0.20.2"
|
||||
"@esbuild/linux-loong64" "0.20.2"
|
||||
"@esbuild/linux-mips64el" "0.20.2"
|
||||
"@esbuild/linux-ppc64" "0.20.2"
|
||||
"@esbuild/linux-riscv64" "0.20.2"
|
||||
"@esbuild/linux-s390x" "0.20.2"
|
||||
"@esbuild/linux-x64" "0.20.2"
|
||||
"@esbuild/netbsd-x64" "0.20.2"
|
||||
"@esbuild/openbsd-x64" "0.20.2"
|
||||
"@esbuild/sunos-x64" "0.20.2"
|
||||
"@esbuild/win32-arm64" "0.20.2"
|
||||
"@esbuild/win32-ia32" "0.20.2"
|
||||
"@esbuild/win32-x64" "0.20.2"
|
||||
"@esbuild/aix-ppc64" "0.21.5"
|
||||
"@esbuild/android-arm" "0.21.5"
|
||||
"@esbuild/android-arm64" "0.21.5"
|
||||
"@esbuild/android-x64" "0.21.5"
|
||||
"@esbuild/darwin-arm64" "0.21.5"
|
||||
"@esbuild/darwin-x64" "0.21.5"
|
||||
"@esbuild/freebsd-arm64" "0.21.5"
|
||||
"@esbuild/freebsd-x64" "0.21.5"
|
||||
"@esbuild/linux-arm" "0.21.5"
|
||||
"@esbuild/linux-arm64" "0.21.5"
|
||||
"@esbuild/linux-ia32" "0.21.5"
|
||||
"@esbuild/linux-loong64" "0.21.5"
|
||||
"@esbuild/linux-mips64el" "0.21.5"
|
||||
"@esbuild/linux-ppc64" "0.21.5"
|
||||
"@esbuild/linux-riscv64" "0.21.5"
|
||||
"@esbuild/linux-s390x" "0.21.5"
|
||||
"@esbuild/linux-x64" "0.21.5"
|
||||
"@esbuild/netbsd-x64" "0.21.5"
|
||||
"@esbuild/openbsd-x64" "0.21.5"
|
||||
"@esbuild/sunos-x64" "0.21.5"
|
||||
"@esbuild/win32-arm64" "0.21.5"
|
||||
"@esbuild/win32-ia32" "0.21.5"
|
||||
"@esbuild/win32-x64" "0.21.5"
|
||||
|
||||
estree-walker@^2.0.2:
|
||||
version "2.0.2"
|
||||
@ -662,29 +677,29 @@ mitt@^3.0.1:
|
||||
resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1"
|
||||
integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==
|
||||
|
||||
nanoid@^3.3.7:
|
||||
version "3.3.7"
|
||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8"
|
||||
integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==
|
||||
nanoid@^3.3.8:
|
||||
version "3.3.8"
|
||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf"
|
||||
integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==
|
||||
|
||||
perfect-debounce@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a"
|
||||
integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==
|
||||
|
||||
picocolors@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
|
||||
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
|
||||
picocolors@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
|
||||
integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
|
||||
|
||||
postcss@^8.4.38:
|
||||
version "8.4.38"
|
||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e"
|
||||
integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==
|
||||
postcss@^8.4.38, postcss@^8.4.43:
|
||||
version "8.5.1"
|
||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.1.tgz#e2272a1f8a807fafa413218245630b5db10a3214"
|
||||
integrity sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==
|
||||
dependencies:
|
||||
nanoid "^3.3.7"
|
||||
picocolors "^1.0.0"
|
||||
source-map-js "^1.2.0"
|
||||
nanoid "^3.3.8"
|
||||
picocolors "^1.1.1"
|
||||
source-map-js "^1.2.1"
|
||||
|
||||
preact@^10.0.0:
|
||||
version "10.20.2"
|
||||
@ -696,29 +711,32 @@ rfdc@^1.3.1:
|
||||
resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f"
|
||||
integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==
|
||||
|
||||
rollup@^4.13.0:
|
||||
version "4.22.4"
|
||||
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.22.4.tgz#4135a6446671cd2a2453e1ad42a45d5973ec3a0f"
|
||||
integrity sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==
|
||||
rollup@^4.20.0:
|
||||
version "4.31.0"
|
||||
resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.31.0.tgz#b84af969a0292cb047dce2c0ec5413a9457597a4"
|
||||
integrity sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw==
|
||||
dependencies:
|
||||
"@types/estree" "1.0.5"
|
||||
"@types/estree" "1.0.6"
|
||||
optionalDependencies:
|
||||
"@rollup/rollup-android-arm-eabi" "4.22.4"
|
||||
"@rollup/rollup-android-arm64" "4.22.4"
|
||||
"@rollup/rollup-darwin-arm64" "4.22.4"
|
||||
"@rollup/rollup-darwin-x64" "4.22.4"
|
||||
"@rollup/rollup-linux-arm-gnueabihf" "4.22.4"
|
||||
"@rollup/rollup-linux-arm-musleabihf" "4.22.4"
|
||||
"@rollup/rollup-linux-arm64-gnu" "4.22.4"
|
||||
"@rollup/rollup-linux-arm64-musl" "4.22.4"
|
||||
"@rollup/rollup-linux-powerpc64le-gnu" "4.22.4"
|
||||
"@rollup/rollup-linux-riscv64-gnu" "4.22.4"
|
||||
"@rollup/rollup-linux-s390x-gnu" "4.22.4"
|
||||
"@rollup/rollup-linux-x64-gnu" "4.22.4"
|
||||
"@rollup/rollup-linux-x64-musl" "4.22.4"
|
||||
"@rollup/rollup-win32-arm64-msvc" "4.22.4"
|
||||
"@rollup/rollup-win32-ia32-msvc" "4.22.4"
|
||||
"@rollup/rollup-win32-x64-msvc" "4.22.4"
|
||||
"@rollup/rollup-android-arm-eabi" "4.31.0"
|
||||
"@rollup/rollup-android-arm64" "4.31.0"
|
||||
"@rollup/rollup-darwin-arm64" "4.31.0"
|
||||
"@rollup/rollup-darwin-x64" "4.31.0"
|
||||
"@rollup/rollup-freebsd-arm64" "4.31.0"
|
||||
"@rollup/rollup-freebsd-x64" "4.31.0"
|
||||
"@rollup/rollup-linux-arm-gnueabihf" "4.31.0"
|
||||
"@rollup/rollup-linux-arm-musleabihf" "4.31.0"
|
||||
"@rollup/rollup-linux-arm64-gnu" "4.31.0"
|
||||
"@rollup/rollup-linux-arm64-musl" "4.31.0"
|
||||
"@rollup/rollup-linux-loongarch64-gnu" "4.31.0"
|
||||
"@rollup/rollup-linux-powerpc64le-gnu" "4.31.0"
|
||||
"@rollup/rollup-linux-riscv64-gnu" "4.31.0"
|
||||
"@rollup/rollup-linux-s390x-gnu" "4.31.0"
|
||||
"@rollup/rollup-linux-x64-gnu" "4.31.0"
|
||||
"@rollup/rollup-linux-x64-musl" "4.31.0"
|
||||
"@rollup/rollup-win32-arm64-msvc" "4.31.0"
|
||||
"@rollup/rollup-win32-ia32-msvc" "4.31.0"
|
||||
"@rollup/rollup-win32-x64-msvc" "4.31.0"
|
||||
fsevents "~2.3.2"
|
||||
|
||||
shiki@1.3.0, shiki@^1.3.0:
|
||||
@ -733,6 +751,11 @@ source-map-js@^1.2.0:
|
||||
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af"
|
||||
integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==
|
||||
|
||||
source-map-js@^1.2.1:
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46"
|
||||
integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==
|
||||
|
||||
speakingurl@^14.0.1:
|
||||
version "14.0.1"
|
||||
resolved "https://registry.yarnpkg.com/speakingurl/-/speakingurl-14.0.1.tgz#f37ec8ddc4ab98e9600c1c9ec324a8c48d772a53"
|
||||
@ -743,14 +766,14 @@ tabbable@^6.2.0:
|
||||
resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97"
|
||||
integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==
|
||||
|
||||
vite@^5.2.14, vite@^5.2.9:
|
||||
version "5.2.14"
|
||||
resolved "https://registry.yarnpkg.com/vite/-/vite-5.2.14.tgz#fd5f60facf6b5f90ec7da6323c467a365d380c3d"
|
||||
integrity sha512-TFQLuwWLPms+NBNlh0D9LZQ+HXW471COABxw/9TEUBrjuHMo9BrYBPrN/SYAwIuVL+rLerycxiLT41t4f5MZpA==
|
||||
vite@^5.2.9, vite@^5.4.12:
|
||||
version "5.4.12"
|
||||
resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.12.tgz#627d12ff06de3942557dfe8632fd712a12a072c7"
|
||||
integrity sha512-KwUaKB27TvWwDJr1GjjWthLMATbGEbeWYZIbGZ5qFIsgPP3vWzLu4cVooqhm5/Z2SPDUMjyPVjTztm5tYKwQxA==
|
||||
dependencies:
|
||||
esbuild "^0.20.1"
|
||||
postcss "^8.4.38"
|
||||
rollup "^4.13.0"
|
||||
esbuild "^0.21.3"
|
||||
postcss "^8.4.43"
|
||||
rollup "^4.20.0"
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.3"
|
||||
|
||||
|
@ -129,7 +129,7 @@ needed for older distros.
|
||||
## Can't Get Message on Console
|
||||
Check:
|
||||
- *hid_listen* finds your device. See above.
|
||||
- Enable debug by pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard#magic-commands).
|
||||
- Enable debug by pressing **Magic**+d. See [Magic Commands](https://github.com/tmk/tmk_keyboard/wiki#magic-commands-for-debug).
|
||||
- Set `debug_enable=true`. See [Debugging](#debugging)
|
||||
- Try using `print` function instead of debug print. See **common/print.h**.
|
||||
- Disconnect other devices with console function. See [Issue #97](https://github.com/tmk/tmk_keyboard/issues/97).
|
||||
|
@ -117,7 +117,9 @@ If yes, we send the string `"QMK is the best thing ever!"` to the computer via t
|
||||
We return `true` to indicate to the caller that the key press we just processed should continue to be processed as normal (as we didn't replace or alter the functionality).
|
||||
Finally, we define the keymap so that the first button activates our macro and the second button is just an escape button.
|
||||
|
||||
?>It is recommended to use the SAFE_RANGE macro as per [Customizing Functionality](custom_quantum_functions).
|
||||
::: tip
|
||||
It is recommended to use the SAFE_RANGE macro as per [Customizing Functionality](custom_quantum_functions).
|
||||
:::
|
||||
|
||||
You might want to add more than one macro.
|
||||
You can do that by adding another keycode and adding another case to the switch statement, like so:
|
||||
|
@ -74,8 +74,9 @@ Additionally, `config.h` here will be processed like the same file in your keyma
|
||||
|
||||
The reason for this, is that `<name>.h` won't be added in time to add settings (such as `#define TAPPING_TERM 100`), and including the `<name.h>` file in any `config.h` files will result in compile issues.
|
||||
|
||||
!>You should use the `config.h` for [configuration options](config_options), and the `<name>.h` file for user or keymap specific settings (such as the enum for layer or keycodes)
|
||||
|
||||
::: warning
|
||||
You should use the `config.h` for [configuration options](config_options), and the `<name>.h` file for user or keymap specific settings (such as the enum for layer or keycodes)
|
||||
:::
|
||||
|
||||
## Readme (`readme.md`)
|
||||
|
||||
|
@ -214,7 +214,9 @@ When additional overlapping mouse key is pressed, the mouse cursor will continue
|
||||
|`MOUSEKEY_OVERLAP_WHEEL_DELTA`|`MOUSEKEY_WHEEL_DELTA`|Step size of reset mouse wheel acceleration |
|
||||
|`MOUSEKEY_OVERLAP_INTERVAL` |`MOUSEKEY_INTERVAL` |Reset time between cursor movements in milliseconds (Kinetic mode only)|
|
||||
|
||||
?> This feature will not be applied on Inertial mode
|
||||
::: tip
|
||||
This feature will not be applied on Inertial mode
|
||||
:::
|
||||
|
||||
## Use with PS/2 Mouse and Pointing Device
|
||||
|
||||
|
@ -50,6 +50,13 @@ By default docker or podman are automatically detected and docker is preferred o
|
||||
RUNTIME="podman" util/docker_build.sh keyboard:keymap:target
|
||||
```
|
||||
|
||||
If flashing is not required, it's possible to run the container as unprivileged (on Linux), and without docker-machine (on Windows/macOS):
|
||||
|
||||
```
|
||||
SKIP_FLASHING_SUPPORT=1 util/docker_build.sh keyboard:keymap:target
|
||||
```
|
||||
|
||||
|
||||
## FAQ
|
||||
|
||||
### Why can't I flash on Windows/macOS
|
||||
|
@ -20,29 +20,31 @@ If you own a board from one of the following vendors already, consider asking th
|
||||
| Vendor | Reason |
|
||||
|------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| BBB Keyboard | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. |
|
||||
| Chillkey | |
|
||||
| Chosfox | Selling L75 wired/wireless boards based on QMK without sources, just `via.json` provided. Raised on discord over multiple weeks without response. |
|
||||
| CIDOO | Selling wired boards based on QMK without sources, just `via.json` provided. |
|
||||
| Darmoshark | Selling wired boards based on QMK without sources, just `via.json` provided. |
|
||||
| Epomaker | Lots of historical keyboards with `via.json` but no corresponding sources. Wireless code for a small handful provided, pending core cleanup for QMK upstreaming. Most other boards have source nowhere to be seen. |
|
||||
| Ergokbd (IFKB) | At least their crkbd clone ships with QMK+Vial, seemingly refuses to disclose sources despite multiple customers requesting them. |
|
||||
| iLovBee | Official 30-day copyright source code request issued Sep 11 2024 due to deception on PR, no response received. Ambiguity on PRs -- marketing says wireless, PR author said wired-only, then included wireless code anyway. Seemingly intentionally deceptive. |
|
||||
| KiiBOOM | Seems to use the same OEM as Epomaker, same problems. |
|
||||
| kprepublic | Makes no attempt to release source code, all boards in QMK are reverse-engineered, created, and supported by the community. New board variants magically appear without telling customers they're incompatible with existing QMK versions, in some cases bricking boards or requiring ISP flashing. |
|
||||
| Luminkey | Selling tri-mode boards based on QMK without sources, just `via.json` provided. |
|
||||
| Meletrix | Selling tri-mode boards based on QMK without sources, just `via.json` provided. |
|
||||
| mmd / Smartmmd / i-game.tech | Ambiguity on PRs -- marketing says wireless, PR author said wired-only, then included wireless code anyway. Seemingly intentionally deceptive. |
|
||||
| MyKeyClub | Community-supported JRIS75, vendor was contacted by community members and refused to cooperate. |
|
||||
| owlab | Selling wired based on QMK without sources, just `via.json` provided. Ambiguous as to whether or not wireless firmware is based on QMK, given that their configuration tool looks very similar to VIA. |
|
||||
| pressplayid | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided |
|
||||
| qwertykeys | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided. |
|
||||
| Redragon | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. |
|
||||
| Royal Kludge | PRs for fake boards in order to attain VIA compatibility identified. Lots of other keyboards with `via.json` but no corresponding sources, attempted upstreaming crippled firmware without wireless. Wireless code for some provided, pending core cleanup for QMK upstreaming. PRs including different manufacturer names as well. |
|
||||
| Shenzhen Hangsheng | PR submissions with crippled firmware, debating with maintainers about wireless despite marketing material clearly stating tri-mode. |
|
||||
| Shortcut Studio | Selling tri-mode boards based on QMK without sources, just `via.json` provided. |
|
||||
| Tacworks | Selling tri-mode boards based on QMK, crippled firmware already merged into QMK without wireless without QMK team realising. |
|
||||
| TKD / Vertex | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. |
|
||||
| WOBKEY | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. |
|
||||
| Weikav | Selling tri-mode boards based on QMK without sources, just `via.json` provided. |
|
||||
| Womier | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. |
|
||||
| Wuque Studio | Selling wired and tri-mode boards based on QMK without sources, just `via.json` provided. |
|
||||
| XVX | Ambiguity on PRs -- marketing says wireless, PR author said wired-only. Seemingly intentionally deceptive. |
|
||||
| Zuoya | Selling tri-mode boards based on QMK without sources, just `via.json` provided. |
|
||||
|
||||
::: danger Violations
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
The Mod-Tap key `MT(mod, kc)` acts like a modifier when held, and a regular keycode when tapped. In other words, you can have a key that sends Escape when you tap it, but functions as a Control or Shift key when you hold it down.
|
||||
|
||||
The modifiers this keycode and `OSM()` accept are prefixed with `MOD_`, not `KC_`:
|
||||
The modifiers (`mod`) argument to the `MT()` macro are prefixed with `MOD_`, not `KC_`:
|
||||
|
||||
|Modifier |Description |
|
||||
|----------|----------------------------------------|
|
||||
|
189
keyboards/ai03/lily/keyboard.json
Normal file
189
keyboards/ai03/lily/keyboard.json
Normal file
@ -0,0 +1,189 @@
|
||||
{
|
||||
"manufacturer": "ai03 Design Studio",
|
||||
"keyboard_name": "Lily",
|
||||
"maintainer": "ai03",
|
||||
"bootloader": "atmel-dfu",
|
||||
"build": {
|
||||
"debounce_type": "asym_eager_defer_pk",
|
||||
"lto": true
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgblight": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "B0",
|
||||
"on_state": 0
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"],
|
||||
"rows": ["B2", "B7", "D5", "B1", "D3"]
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"qmk": {
|
||||
"locking": {
|
||||
"enabled": true,
|
||||
"resync": true
|
||||
}
|
||||
},
|
||||
"rgblight": {
|
||||
"animations": {
|
||||
"alternating": true,
|
||||
"breathing": true,
|
||||
"christmas": true,
|
||||
"knight": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"rgb_test": true,
|
||||
"snake": true,
|
||||
"static_gradient": true,
|
||||
"twinkle": true
|
||||
},
|
||||
"led_count": 4
|
||||
},
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0x0026",
|
||||
"vid": "0xA103"
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "D2"
|
||||
},
|
||||
"community_layouts": ["60_hhkb"],
|
||||
"layouts": {
|
||||
"LAYOUT_60_hhkb": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [2, 12], "x": 14, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 7], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [2, 12], "x": 14, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 5], "x": 4, "y": 4, "w": 3},
|
||||
{"matrix": [4, 7], "x": 7, "y": 4},
|
||||
{"matrix": [4, 9], "x": 8, "y": 4, "w": 3},
|
||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
45
keyboards/ai03/lily/keymaps/60_hhkb/keymap.c
Normal file
45
keyboards/ai03/lily/keymaps/60_hhkb/keymap.c
Normal file
@ -0,0 +1,45 @@
|
||||
/* Copyright 2025 Cipulot & ai03 Design Studio
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// clang-format off
|
||||
[0] = LAYOUT_60_hhkb(
|
||||
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_BSLS, KC_GRV,
|
||||
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_BSPC,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_60_hhkb(
|
||||
_______, 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_INS, KC_DEL,
|
||||
KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______,
|
||||
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
|
||||
_______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______,
|
||||
_______, _______, _______, _______, MO(2)
|
||||
),
|
||||
|
||||
[2] = LAYOUT_60_hhkb(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______
|
||||
)
|
||||
// clang-format on
|
||||
};
|
45
keyboards/ai03/lily/keymaps/default/keymap.c
Normal file
45
keyboards/ai03/lily/keymaps/default/keymap.c
Normal file
@ -0,0 +1,45 @@
|
||||
/* Copyright 2025 Cipulot & ai03 Design Studio
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// clang-format off
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
||||
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_BSPC,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_all(
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
|
||||
KC_CAPS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______,
|
||||
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PAST, KC_PSLS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
|
||||
_______, _______, _______, _______, _______, _______, KC_PPLS, KC_PMNS, KC_END, KC_PGDN, KC_DOWN, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, MO(2)
|
||||
),
|
||||
|
||||
[2] = LAYOUT_all(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
// clang-format on
|
||||
};
|
26
keyboards/ai03/lily/readme.md
Normal file
26
keyboards/ai03/lily/readme.md
Normal file
@ -0,0 +1,26 @@
|
||||
# Lily
|
||||
|
||||

|
||||
|
||||
PCB for Gok's Lily keyboard
|
||||
|
||||
* Keyboard Maintainer: [ai03](https://github.com/ai03-2725)
|
||||
* Hardware Supported: Lily PCB
|
||||
* Hardware Availability: Through Lily group buy
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make ai03/lily:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make ai03/liily: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:
|
||||
|
||||
* **Physical reset**: Double tap the button on the bottom on the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
22
keyboards/beekeeb/3w6hs/config.h
Normal file
22
keyboards/beekeeb/3w6hs/config.h
Normal file
@ -0,0 +1,22 @@
|
||||
// Copyright 2023 beekeeb
|
||||
// Copyright 2021 weteor
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 8
|
||||
#define MATRIX_COLS 10
|
||||
|
||||
#define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2)
|
||||
#define MATRIX_COLS_PER_SIDE (MATRIX_COLS / 2)
|
||||
|
||||
#define MATRIX_ROW_PINS_L { GP7, GP8, GP9, GP10}
|
||||
#define MATRIX_COL_PINS_L { GP11, GP12, GP13, GP14, GP15 }
|
||||
|
||||
#define MATRIX_ROW_PINS_R { P10, P11, P12, P05 }
|
||||
#define MATRIX_COL_PINS_R { P06, P13, P14, P01, P00 }
|
||||
|
||||
#define I2C_DRIVER I2CD0
|
||||
#define I2C1_SDA_PIN GP0
|
||||
#define I2C1_SCL_PIN GP1
|
22
keyboards/beekeeb/3w6hs/halconf.h
Normal file
22
keyboards/beekeeb/3w6hs/halconf.h
Normal file
@ -0,0 +1,22 @@
|
||||
/* Copyright 2023 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 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_I2C TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
|
69
keyboards/beekeeb/3w6hs/keyboard.json
Normal file
69
keyboards/beekeeb/3w6hs/keyboard.json
Normal file
@ -0,0 +1,69 @@
|
||||
{
|
||||
"manufacturer": "beekeeb",
|
||||
"keyboard_name": "3w6hs",
|
||||
"maintainer": "beekeeb",
|
||||
"diode_direction": "COL2ROW",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0003",
|
||||
"vid": "0xBEEB",
|
||||
"no_startup_check": true
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"bootloader": "rp2040",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"mousekey": true,
|
||||
"extrakey": true
|
||||
},
|
||||
"community_layouts": ["split_3x5_3"],
|
||||
"layouts": {
|
||||
"LAYOUT_split_3x5_3": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0.8},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0.2},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0.2},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0.4},
|
||||
|
||||
{"matrix": [4, 0], "x": 8, "y": 0.4},
|
||||
{"matrix": [4, 1], "x": 9, "y": 0.2},
|
||||
{"matrix": [4, 2], "x": 10, "y": 0},
|
||||
{"matrix": [4, 3], "x": 11, "y": 0.2},
|
||||
{"matrix": [4, 4], "x": 12, "y": 0.8},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1.8},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1.2},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1.2},
|
||||
{"matrix": [1, 4], "x": 4, "y": 1.4},
|
||||
|
||||
{"matrix": [5, 0], "x": 8, "y": 1.4},
|
||||
{"matrix": [5, 1], "x": 9, "y": 1.2},
|
||||
{"matrix": [5, 2], "x": 10, "y": 1},
|
||||
{"matrix": [5, 3], "x": 11, "y": 1.2},
|
||||
{"matrix": [5, 4], "x": 12, "y": 1.8},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2.8},
|
||||
{"matrix": [2, 1], "x": 1, "y": 2.2},
|
||||
{"matrix": [2, 2], "x": 2, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3, "y": 2.2},
|
||||
{"matrix": [2, 4], "x": 4, "y": 2.4},
|
||||
|
||||
{"matrix": [6, 0], "x": 8, "y": 2.4},
|
||||
{"matrix": [6, 1], "x": 9, "y": 2.2},
|
||||
{"matrix": [6, 2], "x": 10, "y": 2},
|
||||
{"matrix": [6, 3], "x": 11, "y": 2.2},
|
||||
{"matrix": [6, 4], "x": 12, "y": 2.8},
|
||||
|
||||
{"matrix": [3, 2], "x": 3.2, "y": 3.6},
|
||||
{"matrix": [3, 3], "x": 4.2, "y": 3.6},
|
||||
{"matrix": [3, 4], "x": 5.2, "y": 3.8},
|
||||
|
||||
{"matrix": [7, 0], "x": 6.8, "y": 3.8},
|
||||
{"matrix": [7, 1], "x": 7.8, "y": 3.6},
|
||||
{"matrix": [7, 2], "x": 8.8, "y": 3.6}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
68
keyboards/beekeeb/3w6hs/keymaps/default/keymap.c
Normal file
68
keyboards/beekeeb/3w6hs/keymaps/default/keymap.c
Normal file
@ -0,0 +1,68 @@
|
||||
/* Copyright 2021 weteor
|
||||
*
|
||||
* 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
|
||||
|
||||
enum layers {
|
||||
_ALPHA_QWERTY,
|
||||
_ALPHA_COLEMAK,
|
||||
_SYM,
|
||||
_NAV,
|
||||
_NUM,
|
||||
_CFG,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
|
||||
[_ALPHA_QWERTY] = LAYOUT_split_3x5_3(
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
|
||||
LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
|
||||
|
||||
LCTL_T(KC_ESC), LT(_NUM,KC_SPC), LT(_NAV, KC_TAB), LT(_SYM, KC_BSPC), KC_ENT, LALT_T(KC_DEL)
|
||||
),
|
||||
[_ALPHA_COLEMAK] = LAYOUT_split_3x5_3(
|
||||
KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_QUOT,
|
||||
KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
|
||||
LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SCLN),
|
||||
LCTL_T(KC_ENT), LT(_NUM,KC_SPC), LT(_NAV, KC_TAB), LT(_SYM, KC_BSPC), KC_ENT, LALT_T(KC_DEL)
|
||||
),
|
||||
[_SYM] = LAYOUT_split_3x5_3(
|
||||
KC_GRV , KC_CIRC, KC_AT, KC_DLR, KC_TILD, KC_AMPR, KC_EXLM, KC_PIPE, KC_UNDS, KC_HASH,
|
||||
KC_SLSH, KC_LBRC, KC_LCBR, KC_LPRN, KC_EQL, KC_ASTR, KC_RPRN, KC_RCBR, KC_RBRC, KC_BSLS,
|
||||
_______, KC_QUES, KC_PLUS, KC_PERC, XXXXXXX, XXXXXXX, XXXXXXX, KC_MINS, XXXXXXX, _______,
|
||||
XXXXXXX, MO(_CFG), XXXXXXX, _______, XXXXXXX, XXXXXXX
|
||||
),
|
||||
[_NAV] = LAYOUT_split_3x5_3(
|
||||
XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX, KC_PGDN, KC_UP, KC_PGUP, KC_DEL,
|
||||
KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, XXXXXXX, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, _______, XXXXXXX, MO(_CFG), XXXXXXX
|
||||
),
|
||||
[_NUM] = LAYOUT_split_3x5_3(
|
||||
XXXXXXX, KC_F9, KC_F10, KC_F11, KC_F12, KC_PPLS, KC_P7, KC_P8, KC_P9, KC_PSLS,
|
||||
XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_P0, KC_P4, KC_P5, KC_P6, KC_PDOT,
|
||||
XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_PMNS, KC_P1, KC_P2, KC_P3, KC_PAST,
|
||||
XXXXXXX, _______, XXXXXXX, KC_PEQL, KC_PENT, XXXXXXX
|
||||
),
|
||||
[_CFG] = LAYOUT_split_3x5_3(
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,DF(_ALPHA_QWERTY), DF(_ALPHA_COLEMAK),
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
XXXXXXX, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX
|
||||
),
|
||||
};
|
248
keyboards/beekeeb/3w6hs/matrix.c
Normal file
248
keyboards/beekeeb/3w6hs/matrix.c
Normal file
@ -0,0 +1,248 @@
|
||||
/*
|
||||
Copyright 2013 Oleg Kostyuk <cub.uanic@gmail.com>
|
||||
2020 Pierre Chevalier <pierrechevalier83@gmail.com>
|
||||
2021 weteor
|
||||
2023 beekeeb
|
||||
*/
|
||||
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*
|
||||
* This code was heavily inspired by the ergodox_ez keymap, and modernized
|
||||
* to take advantage of the quantum.h microcontroller agnostics gpio control
|
||||
* abstractions and use the macros defined in config.h for the wiring as opposed
|
||||
* to repeating that information all over the place.
|
||||
*/
|
||||
|
||||
#include "matrix.h"
|
||||
#include "debug.h"
|
||||
#include "wait.h"
|
||||
#include "i2c_master.h"
|
||||
|
||||
extern i2c_status_t tca9555_status;
|
||||
//#define I2C_TIMEOUT 1000
|
||||
|
||||
// I2C address:
|
||||
// All address pins of the tca9555 are connected to the ground
|
||||
// | 0 | 1 | 0 | 0 | A2 | A1 | A0 |
|
||||
// | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
|
||||
#define I2C_ADDR (0b0100000 << 1)
|
||||
|
||||
// Register addresses
|
||||
#define IODIRA 0x06 // i/o direction register
|
||||
#define IODIRB 0x07
|
||||
#define IREGP0 0x00 // GPIO pull-up resistor register
|
||||
#define IREGP1 0x01
|
||||
#define OREGP0 0x02 // general purpose i/o port register (write modifies OLAT)
|
||||
#define OREGP1 0x03
|
||||
|
||||
bool i2c_initialized = 0;
|
||||
i2c_status_t tca9555_status = I2C_ADDR;
|
||||
|
||||
uint8_t init_tca9555(void) {
|
||||
dprint("starting init\n");
|
||||
tca9555_status = I2C_ADDR;
|
||||
|
||||
// I2C subsystem
|
||||
if (i2c_initialized == 0) {
|
||||
i2c_init(); // on pins D(1,0)
|
||||
i2c_initialized = true;
|
||||
wait_ms(I2C_TIMEOUT);
|
||||
}
|
||||
|
||||
// set pin direction
|
||||
// - unused : input : 1
|
||||
// - input : input : 1
|
||||
// - driving : output : 0
|
||||
uint8_t conf[2] = {
|
||||
// This means: read all pins of port 0
|
||||
0b11111111,
|
||||
// This means: we will write on pins 0 to 3 on port 1. read rest
|
||||
0b11110000,
|
||||
};
|
||||
tca9555_status = i2c_write_register(I2C_ADDR, IODIRA, conf, 2, I2C_TIMEOUT);
|
||||
|
||||
return tca9555_status;
|
||||
}
|
||||
|
||||
/* matrix state(1:on, 0:off) */
|
||||
static matrix_row_t matrix[MATRIX_ROWS]; // debounced values
|
||||
|
||||
static matrix_row_t read_cols(uint8_t row);
|
||||
static void init_cols(void);
|
||||
static void unselect_rows(void);
|
||||
static void select_row(uint8_t row);
|
||||
|
||||
static uint8_t tca9555_reset_loop;
|
||||
|
||||
void matrix_init_custom(void) {
|
||||
// initialize row and col
|
||||
|
||||
tca9555_status = init_tca9555();
|
||||
|
||||
unselect_rows();
|
||||
init_cols();
|
||||
|
||||
// initialize matrix state: all keys off
|
||||
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
|
||||
matrix[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void matrix_power_up(void) {
|
||||
tca9555_status = init_tca9555();
|
||||
|
||||
unselect_rows();
|
||||
init_cols();
|
||||
|
||||
// initialize matrix state: all keys off
|
||||
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
|
||||
matrix[i] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Reads and stores a row, returning
|
||||
// whether a change occurred.
|
||||
static inline bool store_matrix_row(matrix_row_t current_matrix[], uint8_t index) {
|
||||
matrix_row_t temp = read_cols(index);
|
||||
if (current_matrix[index] != temp) {
|
||||
current_matrix[index] = temp;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
|
||||
if (tca9555_status) { // if there was an error
|
||||
if (++tca9555_reset_loop == 0) {
|
||||
// since tca9555_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans
|
||||
// this will be approx bit more frequent than once per second
|
||||
dprint("trying to reset tca9555\n");
|
||||
tca9555_status = init_tca9555();
|
||||
if (tca9555_status) {
|
||||
dprint("right side not responding\n");
|
||||
} else {
|
||||
dprint("right side attached\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool changed = false;
|
||||
for (uint8_t i = 0; i < MATRIX_ROWS_PER_SIDE; i++) {
|
||||
// select rows from left and right hands
|
||||
uint8_t left_index = i;
|
||||
uint8_t right_index = i + MATRIX_ROWS_PER_SIDE;
|
||||
select_row(left_index);
|
||||
select_row(right_index);
|
||||
|
||||
// we don't need a 30us delay anymore, because selecting a
|
||||
// left-hand row requires more than 30us for i2c.
|
||||
|
||||
changed |= store_matrix_row(current_matrix, left_index);
|
||||
changed |= store_matrix_row(current_matrix, right_index);
|
||||
|
||||
unselect_rows();
|
||||
}
|
||||
|
||||
return changed;
|
||||
}
|
||||
|
||||
static void init_cols(void) {
|
||||
// init on tca9555
|
||||
// not needed, already done as part of init_tca9555()
|
||||
|
||||
// init on mcu
|
||||
pin_t matrix_col_pins_mcu[MATRIX_COLS_PER_SIDE] = MATRIX_COL_PINS_L;
|
||||
for (int pin_index = 0; pin_index < MATRIX_COLS_PER_SIDE; pin_index++) {
|
||||
pin_t pin = matrix_col_pins_mcu[pin_index];
|
||||
gpio_set_pin_input_high(pin);
|
||||
gpio_write_pin_high(pin);
|
||||
}
|
||||
}
|
||||
|
||||
static matrix_row_t read_cols(uint8_t row) {
|
||||
if (row < MATRIX_ROWS_PER_SIDE) {
|
||||
pin_t matrix_col_pins_mcu[MATRIX_COLS_PER_SIDE] = MATRIX_COL_PINS_L;
|
||||
matrix_row_t current_row_value = 0;
|
||||
// For each col...
|
||||
for (uint8_t col_index = 0; col_index < MATRIX_COLS_PER_SIDE; col_index++) {
|
||||
// Select the col pin to read (active low)
|
||||
uint8_t pin_state = gpio_read_pin(matrix_col_pins_mcu[col_index]);
|
||||
|
||||
// Populate the matrix row with the state of the col pin
|
||||
current_row_value |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index);
|
||||
}
|
||||
return current_row_value;
|
||||
} else {
|
||||
if (tca9555_status) { // if there was an error
|
||||
return 0;
|
||||
} else {
|
||||
uint8_t data = 0;
|
||||
uint8_t port0 = 0;
|
||||
tca9555_status = i2c_read_register(I2C_ADDR, IREGP0, &port0, 1, I2C_TIMEOUT);
|
||||
if (tca9555_status) { // if there was an error
|
||||
// do nothing
|
||||
return 0;
|
||||
} else {
|
||||
port0 = ~port0;
|
||||
// We read all the pins on GPIOA.
|
||||
// The initial state was all ones and any depressed key at a given column for the currently selected row will have its bit flipped to zero.
|
||||
// The return value is a row as represented in the generic matrix code were the rightmost bits represent the lower columns and zeroes represent non-depressed keys while ones represent depressed keys.
|
||||
// the pins connected to eact columns are sequential, but in reverse order, and counting from zero down (col 5 -> GPIO04, col6 -> GPIO03 and so on).
|
||||
data |= (port0 & 0x01) << 4;
|
||||
data |= (port0 & 0x02) << 2;
|
||||
data |= (port0 & 0x04);
|
||||
data |= (port0 & 0x08) >> 2;
|
||||
data |= (port0 & 0x10) >> 4;
|
||||
|
||||
tca9555_status = I2C_STATUS_SUCCESS;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void unselect_rows(void) {
|
||||
// no need to unselect on tca9555, because the select step sets all
|
||||
// the other row bits high, and it's not changing to a different
|
||||
// direction
|
||||
|
||||
// unselect rows on microcontroller
|
||||
pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_L;
|
||||
for (int pin_index = 0; pin_index < MATRIX_ROWS_PER_SIDE; pin_index++) {
|
||||
pin_t pin = matrix_row_pins_mcu[pin_index];
|
||||
gpio_set_pin_input_high(pin);
|
||||
gpio_write_pin_low(pin);
|
||||
}
|
||||
}
|
||||
|
||||
static void select_row(uint8_t row) {
|
||||
uint8_t port1 = 0xff;
|
||||
|
||||
if (row < MATRIX_ROWS_PER_SIDE) {
|
||||
// select on atmega32u4
|
||||
pin_t matrix_row_pins_mcu[MATRIX_ROWS_PER_SIDE] = MATRIX_ROW_PINS_L;
|
||||
pin_t pin = matrix_row_pins_mcu[row];
|
||||
gpio_set_pin_output(pin);
|
||||
gpio_write_pin_low(pin);
|
||||
} else {
|
||||
// select on tca9555
|
||||
if (tca9555_status) { // if there was an error
|
||||
// do nothing
|
||||
} else {
|
||||
switch(row) {
|
||||
case 4: port1 &= ~(1 << 0); break;
|
||||
case 5: port1 &= ~(1 << 1); break;
|
||||
case 6: port1 &= ~(1 << 2); break;
|
||||
case 7:
|
||||
port1 &= ~(1 << 3);
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
|
||||
tca9555_status = i2c_write_register(I2C_ADDR, OREGP1, &port1, 1, I2C_TIMEOUT);
|
||||
// Select the desired row by writing a byte for the entire GPIOB bus where only the bit representing the row we want to select is a zero (write instruction) and every other bit is a one.
|
||||
// Note that the row - MATRIX_ROWS_PER_SIDE reflects the fact that being on the right hand, the columns are numbered from MATRIX_ROWS_PER_SIDE to MATRIX_ROWS, but the pins we want to write to are indexed from zero up on the GPIOB bus.
|
||||
}
|
||||
}
|
||||
}
|
24
keyboards/beekeeb/3w6hs/mcuconf.h
Normal file
24
keyboards/beekeeb/3w6hs/mcuconf.h
Normal file
@ -0,0 +1,24 @@
|
||||
/* Copyright 2023 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 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef RP_I2C_USE_I2C0
|
||||
#undef RP_I2C_USE_I2C1
|
||||
#define RP_I2C_USE_I2C0 TRUE
|
||||
#define RP_I2C_USE_I2C1 FALSE
|
26
keyboards/beekeeb/3w6hs/readme.md
Normal file
26
keyboards/beekeeb/3w6hs/readme.md
Normal file
@ -0,0 +1,26 @@
|
||||
# 3W6HS
|
||||
|
||||

|
||||
|
||||
The 3W6HS is a hotswap, RP2040, low profile, split keyboard with 36 keys, modified from 3W6 by weteor.
|
||||
|
||||
* Keyboard Maintainer: [beekeeb](https://github.com/beekeeb)
|
||||
* Hardware Supported: RP2040
|
||||
* Hardware Availability: [https://shop.beekeeb.com/](https://shop.beekeeb.com)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make beekeeb/3w6hs:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make beekeeb/3w6hs: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
|
||||
|
||||
To enter the bootloader, follow these steps:
|
||||
* Disconnect the keyboard from the computer.
|
||||
* Locate the BOOT button, which is the top button on the left side of the keyboard.
|
||||
* While holding down the BOOT button, connect the keyboard back to the computer.
|
3
keyboards/beekeeb/3w6hs/rules.mk
Normal file
3
keyboards/beekeeb/3w6hs/rules.mk
Normal file
@ -0,0 +1,3 @@
|
||||
CUSTOM_MATRIX = lite
|
||||
SRC += matrix.c
|
||||
I2C_DRIVER_REQUIRED = yes
|
8
keyboards/chill/ghoul/chconf.h
Normal file
8
keyboards/chill/ghoul/chconf.h
Normal file
@ -0,0 +1,8 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#pragma once
|
||||
|
||||
#define CH_CFG_ST_RESOLUTION 16
|
||||
#define CH_CFG_ST_FREQUENCY 10000
|
||||
|
||||
#include_next <chconf.h>
|
7
keyboards/chill/ghoul/config.h
Normal file
7
keyboards/chill/ghoul/config.h
Normal file
@ -0,0 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#pragma once
|
||||
|
||||
#define BACKLIGHT_PWM_DRIVER PWMD2
|
||||
#define BACKLIGHT_PWM_CHANNEL 2
|
||||
#define BACKLIGHT_PAL_MODE 2
|
7
keyboards/chill/ghoul/halconf.h
Normal file
7
keyboards/chill/ghoul/halconf.h
Normal file
@ -0,0 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_PWM TRUE
|
||||
|
||||
#include_next <halconf.h>
|
408
keyboards/chill/ghoul/keyboard.json
Normal file
408
keyboards/chill/ghoul/keyboard.json
Normal file
@ -0,0 +1,408 @@
|
||||
{
|
||||
"manufacturer": "Chill",
|
||||
"keyboard_name": "Ghoul",
|
||||
"maintainer": "chillKB",
|
||||
"url": "https://github.com/chillKB/ghoulTKL",
|
||||
"backlight": {
|
||||
"driver": "pwm",
|
||||
"pin": "B3"
|
||||
},
|
||||
"bootloader": "stm32-dfu",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"backlight": true,
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "B4",
|
||||
"on_state": 0,
|
||||
"scroll_lock": "B6"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["A10", "A9", "A8", "B15", "B14", "B13", "B12", "B11", "B10", "B2", "B1", "B0", "A6", "A5", "A15", "A1", "A0"],
|
||||
"rows": ["B7", "B9", "B8", "A7", "A4", "A3"]
|
||||
},
|
||||
"processor": "STM32F072",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0xFC87",
|
||||
"vid": "0xC01D"
|
||||
},
|
||||
"community_layouts": ["tkl_ansi", "tkl_ansi_split_bs_rshift", "tkl_ansi_tsangan", "tkl_ansi_tsangan_split_bs_rshift"],
|
||||
"layout_aliases": {
|
||||
"LAYOUT_all": "LAYOUT_tkl_ansi_split_bs_rshift"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_tkl_ansi": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "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.5, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8.5, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9.5, "y": 0},
|
||||
{"matrix": [0, 10], "x": 11, "y": 0},
|
||||
{"matrix": [0, 11], "x": 12, "y": 0},
|
||||
{"matrix": [0, 12], "x": 13, "y": 0},
|
||||
{"matrix": [0, 13], "x": 14, "y": 0},
|
||||
{"matrix": [0, 14], "x": 15.25, "y": 0},
|
||||
{"matrix": [0, 15], "x": 16.25, "y": 0},
|
||||
{"matrix": [0, 16], "x": 17.25, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1.5},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1.5},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1.5},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1.5},
|
||||
{"matrix": [1, 4], "x": 4, "y": 1.5},
|
||||
{"matrix": [1, 5], "x": 5, "y": 1.5},
|
||||
{"matrix": [1, 6], "x": 6, "y": 1.5},
|
||||
{"matrix": [1, 7], "x": 7, "y": 1.5},
|
||||
{"matrix": [1, 8], "x": 8, "y": 1.5},
|
||||
{"matrix": [1, 9], "x": 9, "y": 1.5},
|
||||
{"matrix": [1, 10], "x": 10, "y": 1.5},
|
||||
{"matrix": [1, 11], "x": 11, "y": 1.5},
|
||||
{"matrix": [1, 12], "x": 12, "y": 1.5},
|
||||
{"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2},
|
||||
{"matrix": [1, 14], "x": 15.25, "y": 1.5},
|
||||
{"matrix": [1, 15], "x": 16.25, "y": 1.5},
|
||||
{"matrix": [1, 16], "x": 17.25, "y": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 2.5},
|
||||
{"matrix": [2, 2], "x": 2.5, "y": 2.5},
|
||||
{"matrix": [2, 3], "x": 3.5, "y": 2.5},
|
||||
{"matrix": [2, 4], "x": 4.5, "y": 2.5},
|
||||
{"matrix": [2, 5], "x": 5.5, "y": 2.5},
|
||||
{"matrix": [2, 6], "x": 6.5, "y": 2.5},
|
||||
{"matrix": [2, 7], "x": 7.5, "y": 2.5},
|
||||
{"matrix": [2, 8], "x": 8.5, "y": 2.5},
|
||||
{"matrix": [2, 9], "x": 9.5, "y": 2.5},
|
||||
{"matrix": [2, 10], "x": 10.5, "y": 2.5},
|
||||
{"matrix": [2, 11], "x": 11.5, "y": 2.5},
|
||||
{"matrix": [2, 12], "x": 12.5, "y": 2.5},
|
||||
{"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5},
|
||||
{"matrix": [2, 14], "x": 15.25, "y": 2.5},
|
||||
{"matrix": [2, 15], "x": 16.25, "y": 2.5},
|
||||
{"matrix": [2, 16], "x": 17.25, "y": 2.5},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
|
||||
{"matrix": [3, 1], "x": 1.75, "y": 3.5},
|
||||
{"matrix": [3, 2], "x": 2.75, "y": 3.5},
|
||||
{"matrix": [3, 3], "x": 3.75, "y": 3.5},
|
||||
{"matrix": [3, 4], "x": 4.75, "y": 3.5},
|
||||
{"matrix": [3, 5], "x": 5.75, "y": 3.5},
|
||||
{"matrix": [3, 6], "x": 6.75, "y": 3.5},
|
||||
{"matrix": [3, 7], "x": 7.75, "y": 3.5},
|
||||
{"matrix": [3, 8], "x": 8.75, "y": 3.5},
|
||||
{"matrix": [3, 9], "x": 9.75, "y": 3.5},
|
||||
{"matrix": [3, 10], "x": 10.75, "y": 3.5},
|
||||
{"matrix": [3, 11], "x": 11.75, "y": 3.5},
|
||||
{"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
|
||||
{"matrix": [4, 2], "x": 2.25, "y": 4.5},
|
||||
{"matrix": [4, 3], "x": 3.25, "y": 4.5},
|
||||
{"matrix": [4, 4], "x": 4.25, "y": 4.5},
|
||||
{"matrix": [4, 5], "x": 5.25, "y": 4.5},
|
||||
{"matrix": [4, 6], "x": 6.25, "y": 4.5},
|
||||
{"matrix": [4, 7], "x": 7.25, "y": 4.5},
|
||||
{"matrix": [4, 8], "x": 8.25, "y": 4.5},
|
||||
{"matrix": [4, 9], "x": 9.25, "y": 4.5},
|
||||
{"matrix": [4, 10], "x": 10.25, "y": 4.5},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4.5},
|
||||
{"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75},
|
||||
{"matrix": [4, 15], "x": 16.25, "y": 4.5},
|
||||
{"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25},
|
||||
{"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25},
|
||||
{"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25},
|
||||
{"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25},
|
||||
{"matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25},
|
||||
{"matrix": [5, 12], "x": 12.5, "y": 5.5, "w": 1.25},
|
||||
{"matrix": [5, 13], "x": 13.75, "y": 5.5, "w": 1.25},
|
||||
{"matrix": [5, 14], "x": 15.25, "y": 5.5},
|
||||
{"matrix": [5, 15], "x": 16.25, "y": 5.5},
|
||||
{"matrix": [5, 16], "x": 17.25, "y": 5.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_ansi_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "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.5, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8.5, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9.5, "y": 0},
|
||||
{"matrix": [0, 10], "x": 11, "y": 0},
|
||||
{"matrix": [0, 11], "x": 12, "y": 0},
|
||||
{"matrix": [0, 12], "x": 13, "y": 0},
|
||||
{"matrix": [0, 13], "x": 14, "y": 0},
|
||||
{"matrix": [0, 14], "x": 15.25, "y": 0},
|
||||
{"matrix": [0, 15], "x": 16.25, "y": 0},
|
||||
{"matrix": [0, 16], "x": 17.25, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1.5},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1.5},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1.5},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1.5},
|
||||
{"matrix": [1, 4], "x": 4, "y": 1.5},
|
||||
{"matrix": [1, 5], "x": 5, "y": 1.5},
|
||||
{"matrix": [1, 6], "x": 6, "y": 1.5},
|
||||
{"matrix": [1, 7], "x": 7, "y": 1.5},
|
||||
{"matrix": [1, 8], "x": 8, "y": 1.5},
|
||||
{"matrix": [1, 9], "x": 9, "y": 1.5},
|
||||
{"matrix": [1, 10], "x": 10, "y": 1.5},
|
||||
{"matrix": [1, 11], "x": 11, "y": 1.5},
|
||||
{"matrix": [1, 12], "x": 12, "y": 1.5},
|
||||
{"matrix": [1, 13], "x": 13, "y": 1.5},
|
||||
{"matrix": [3, 13], "x": 14, "y": 1.5},
|
||||
{"matrix": [1, 14], "x": 15.25, "y": 1.5},
|
||||
{"matrix": [1, 15], "x": 16.25, "y": 1.5},
|
||||
{"matrix": [1, 16], "x": 17.25, "y": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 2.5},
|
||||
{"matrix": [2, 2], "x": 2.5, "y": 2.5},
|
||||
{"matrix": [2, 3], "x": 3.5, "y": 2.5},
|
||||
{"matrix": [2, 4], "x": 4.5, "y": 2.5},
|
||||
{"matrix": [2, 5], "x": 5.5, "y": 2.5},
|
||||
{"matrix": [2, 6], "x": 6.5, "y": 2.5},
|
||||
{"matrix": [2, 7], "x": 7.5, "y": 2.5},
|
||||
{"matrix": [2, 8], "x": 8.5, "y": 2.5},
|
||||
{"matrix": [2, 9], "x": 9.5, "y": 2.5},
|
||||
{"matrix": [2, 10], "x": 10.5, "y": 2.5},
|
||||
{"matrix": [2, 11], "x": 11.5, "y": 2.5},
|
||||
{"matrix": [2, 12], "x": 12.5, "y": 2.5},
|
||||
{"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5},
|
||||
{"matrix": [2, 14], "x": 15.25, "y": 2.5},
|
||||
{"matrix": [2, 15], "x": 16.25, "y": 2.5},
|
||||
{"matrix": [2, 16], "x": 17.25, "y": 2.5},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
|
||||
{"matrix": [3, 1], "x": 1.75, "y": 3.5},
|
||||
{"matrix": [3, 2], "x": 2.75, "y": 3.5},
|
||||
{"matrix": [3, 3], "x": 3.75, "y": 3.5},
|
||||
{"matrix": [3, 4], "x": 4.75, "y": 3.5},
|
||||
{"matrix": [3, 5], "x": 5.75, "y": 3.5},
|
||||
{"matrix": [3, 6], "x": 6.75, "y": 3.5},
|
||||
{"matrix": [3, 7], "x": 7.75, "y": 3.5},
|
||||
{"matrix": [3, 8], "x": 8.75, "y": 3.5},
|
||||
{"matrix": [3, 9], "x": 9.75, "y": 3.5},
|
||||
{"matrix": [3, 10], "x": 10.75, "y": 3.5},
|
||||
{"matrix": [3, 11], "x": 11.75, "y": 3.5},
|
||||
{"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
|
||||
{"matrix": [4, 2], "x": 2.25, "y": 4.5},
|
||||
{"matrix": [4, 3], "x": 3.25, "y": 4.5},
|
||||
{"matrix": [4, 4], "x": 4.25, "y": 4.5},
|
||||
{"matrix": [4, 5], "x": 5.25, "y": 4.5},
|
||||
{"matrix": [4, 6], "x": 6.25, "y": 4.5},
|
||||
{"matrix": [4, 7], "x": 7.25, "y": 4.5},
|
||||
{"matrix": [4, 8], "x": 8.25, "y": 4.5},
|
||||
{"matrix": [4, 9], "x": 9.25, "y": 4.5},
|
||||
{"matrix": [4, 10], "x": 10.25, "y": 4.5},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4.5},
|
||||
{"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75},
|
||||
{"matrix": [4, 13], "x": 14, "y": 4.5},
|
||||
{"matrix": [4, 15], "x": 16.25, "y": 4.5},
|
||||
{"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25},
|
||||
{"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25},
|
||||
{"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25},
|
||||
{"matrix": [5, 10], "x": 10, "y": 5.5, "w": 1.25},
|
||||
{"matrix": [5, 11], "x": 11.25, "y": 5.5, "w": 1.25},
|
||||
{"matrix": [5, 12], "x": 12.5, "y": 5.5, "w": 1.25},
|
||||
{"matrix": [5, 13], "x": 13.75, "y": 5.5, "w": 1.25},
|
||||
{"matrix": [5, 14], "x": 15.25, "y": 5.5},
|
||||
{"matrix": [5, 15], "x": 16.25, "y": 5.5},
|
||||
{"matrix": [5, 16], "x": 17.25, "y": 5.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_ansi_tsangan": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "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.5, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8.5, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9.5, "y": 0},
|
||||
{"matrix": [0, 10], "x": 11, "y": 0},
|
||||
{"matrix": [0, 11], "x": 12, "y": 0},
|
||||
{"matrix": [0, 12], "x": 13, "y": 0},
|
||||
{"matrix": [0, 13], "x": 14, "y": 0},
|
||||
{"matrix": [0, 14], "x": 15.25, "y": 0},
|
||||
{"matrix": [0, 15], "x": 16.25, "y": 0},
|
||||
{"matrix": [0, 16], "x": 17.25, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1.5},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1.5},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1.5},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1.5},
|
||||
{"matrix": [1, 4], "x": 4, "y": 1.5},
|
||||
{"matrix": [1, 5], "x": 5, "y": 1.5},
|
||||
{"matrix": [1, 6], "x": 6, "y": 1.5},
|
||||
{"matrix": [1, 7], "x": 7, "y": 1.5},
|
||||
{"matrix": [1, 8], "x": 8, "y": 1.5},
|
||||
{"matrix": [1, 9], "x": 9, "y": 1.5},
|
||||
{"matrix": [1, 10], "x": 10, "y": 1.5},
|
||||
{"matrix": [1, 11], "x": 11, "y": 1.5},
|
||||
{"matrix": [1, 12], "x": 12, "y": 1.5},
|
||||
{"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2},
|
||||
{"matrix": [1, 14], "x": 15.25, "y": 1.5},
|
||||
{"matrix": [1, 15], "x": 16.25, "y": 1.5},
|
||||
{"matrix": [1, 16], "x": 17.25, "y": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 2.5},
|
||||
{"matrix": [2, 2], "x": 2.5, "y": 2.5},
|
||||
{"matrix": [2, 3], "x": 3.5, "y": 2.5},
|
||||
{"matrix": [2, 4], "x": 4.5, "y": 2.5},
|
||||
{"matrix": [2, 5], "x": 5.5, "y": 2.5},
|
||||
{"matrix": [2, 6], "x": 6.5, "y": 2.5},
|
||||
{"matrix": [2, 7], "x": 7.5, "y": 2.5},
|
||||
{"matrix": [2, 8], "x": 8.5, "y": 2.5},
|
||||
{"matrix": [2, 9], "x": 9.5, "y": 2.5},
|
||||
{"matrix": [2, 10], "x": 10.5, "y": 2.5},
|
||||
{"matrix": [2, 11], "x": 11.5, "y": 2.5},
|
||||
{"matrix": [2, 12], "x": 12.5, "y": 2.5},
|
||||
{"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5},
|
||||
{"matrix": [2, 14], "x": 15.25, "y": 2.5},
|
||||
{"matrix": [2, 15], "x": 16.25, "y": 2.5},
|
||||
{"matrix": [2, 16], "x": 17.25, "y": 2.5},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
|
||||
{"matrix": [3, 1], "x": 1.75, "y": 3.5},
|
||||
{"matrix": [3, 2], "x": 2.75, "y": 3.5},
|
||||
{"matrix": [3, 3], "x": 3.75, "y": 3.5},
|
||||
{"matrix": [3, 4], "x": 4.75, "y": 3.5},
|
||||
{"matrix": [3, 5], "x": 5.75, "y": 3.5},
|
||||
{"matrix": [3, 6], "x": 6.75, "y": 3.5},
|
||||
{"matrix": [3, 7], "x": 7.75, "y": 3.5},
|
||||
{"matrix": [3, 8], "x": 8.75, "y": 3.5},
|
||||
{"matrix": [3, 9], "x": 9.75, "y": 3.5},
|
||||
{"matrix": [3, 10], "x": 10.75, "y": 3.5},
|
||||
{"matrix": [3, 11], "x": 11.75, "y": 3.5},
|
||||
{"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
|
||||
{"matrix": [4, 2], "x": 2.25, "y": 4.5},
|
||||
{"matrix": [4, 3], "x": 3.25, "y": 4.5},
|
||||
{"matrix": [4, 4], "x": 4.25, "y": 4.5},
|
||||
{"matrix": [4, 5], "x": 5.25, "y": 4.5},
|
||||
{"matrix": [4, 6], "x": 6.25, "y": 4.5},
|
||||
{"matrix": [4, 7], "x": 7.25, "y": 4.5},
|
||||
{"matrix": [4, 8], "x": 8.25, "y": 4.5},
|
||||
{"matrix": [4, 9], "x": 9.25, "y": 4.5},
|
||||
{"matrix": [4, 10], "x": 10.25, "y": 4.5},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4.5},
|
||||
{"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 2.75},
|
||||
{"matrix": [4, 15], "x": 16.25, "y": 4.5},
|
||||
{"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5, 1], "x": 1.5, "y": 5.5},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7},
|
||||
{"matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5, 12], "x": 12.5, "y": 5.5},
|
||||
{"matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5, 14], "x": 15.25, "y": 5.5},
|
||||
{"matrix": [5, 15], "x": 16.25, "y": 5.5},
|
||||
{"matrix": [5, 16], "x": 17.25, "y": 5.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_ansi_tsangan_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "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.5, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8.5, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9.5, "y": 0},
|
||||
{"matrix": [0, 10], "x": 11, "y": 0},
|
||||
{"matrix": [0, 11], "x": 12, "y": 0},
|
||||
{"matrix": [0, 12], "x": 13, "y": 0},
|
||||
{"matrix": [0, 13], "x": 14, "y": 0},
|
||||
{"matrix": [0, 14], "x": 15.25, "y": 0},
|
||||
{"matrix": [0, 15], "x": 16.25, "y": 0},
|
||||
{"matrix": [0, 16], "x": 17.25, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1.5},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1.5},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1.5},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1.5},
|
||||
{"matrix": [1, 4], "x": 4, "y": 1.5},
|
||||
{"matrix": [1, 5], "x": 5, "y": 1.5},
|
||||
{"matrix": [1, 6], "x": 6, "y": 1.5},
|
||||
{"matrix": [1, 7], "x": 7, "y": 1.5},
|
||||
{"matrix": [1, 8], "x": 8, "y": 1.5},
|
||||
{"matrix": [1, 9], "x": 9, "y": 1.5},
|
||||
{"matrix": [1, 10], "x": 10, "y": 1.5},
|
||||
{"matrix": [1, 11], "x": 11, "y": 1.5},
|
||||
{"matrix": [1, 12], "x": 12, "y": 1.5},
|
||||
{"matrix": [1, 13], "x": 13, "y": 1.5},
|
||||
{"matrix": [3, 13], "x": 14, "y": 1.5},
|
||||
{"matrix": [1, 14], "x": 15.25, "y": 1.5},
|
||||
{"matrix": [1, 15], "x": 16.25, "y": 1.5},
|
||||
{"matrix": [1, 16], "x": 17.25, "y": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 2.5},
|
||||
{"matrix": [2, 2], "x": 2.5, "y": 2.5},
|
||||
{"matrix": [2, 3], "x": 3.5, "y": 2.5},
|
||||
{"matrix": [2, 4], "x": 4.5, "y": 2.5},
|
||||
{"matrix": [2, 5], "x": 5.5, "y": 2.5},
|
||||
{"matrix": [2, 6], "x": 6.5, "y": 2.5},
|
||||
{"matrix": [2, 7], "x": 7.5, "y": 2.5},
|
||||
{"matrix": [2, 8], "x": 8.5, "y": 2.5},
|
||||
{"matrix": [2, 9], "x": 9.5, "y": 2.5},
|
||||
{"matrix": [2, 10], "x": 10.5, "y": 2.5},
|
||||
{"matrix": [2, 11], "x": 11.5, "y": 2.5},
|
||||
{"matrix": [2, 12], "x": 12.5, "y": 2.5},
|
||||
{"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5},
|
||||
{"matrix": [2, 14], "x": 15.25, "y": 2.5},
|
||||
{"matrix": [2, 15], "x": 16.25, "y": 2.5},
|
||||
{"matrix": [2, 16], "x": 17.25, "y": 2.5},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
|
||||
{"matrix": [3, 1], "x": 1.75, "y": 3.5},
|
||||
{"matrix": [3, 2], "x": 2.75, "y": 3.5},
|
||||
{"matrix": [3, 3], "x": 3.75, "y": 3.5},
|
||||
{"matrix": [3, 4], "x": 4.75, "y": 3.5},
|
||||
{"matrix": [3, 5], "x": 5.75, "y": 3.5},
|
||||
{"matrix": [3, 6], "x": 6.75, "y": 3.5},
|
||||
{"matrix": [3, 7], "x": 7.75, "y": 3.5},
|
||||
{"matrix": [3, 8], "x": 8.75, "y": 3.5},
|
||||
{"matrix": [3, 9], "x": 9.75, "y": 3.5},
|
||||
{"matrix": [3, 10], "x": 10.75, "y": 3.5},
|
||||
{"matrix": [3, 11], "x": 11.75, "y": 3.5},
|
||||
{"matrix": [3, 12], "x": 12.75, "y": 3.5, "w": 2.25},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
|
||||
{"matrix": [4, 2], "x": 2.25, "y": 4.5},
|
||||
{"matrix": [4, 3], "x": 3.25, "y": 4.5},
|
||||
{"matrix": [4, 4], "x": 4.25, "y": 4.5},
|
||||
{"matrix": [4, 5], "x": 5.25, "y": 4.5},
|
||||
{"matrix": [4, 6], "x": 6.25, "y": 4.5},
|
||||
{"matrix": [4, 7], "x": 7.25, "y": 4.5},
|
||||
{"matrix": [4, 8], "x": 8.25, "y": 4.5},
|
||||
{"matrix": [4, 9], "x": 9.25, "y": 4.5},
|
||||
{"matrix": [4, 10], "x": 10.25, "y": 4.5},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4.5},
|
||||
{"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75},
|
||||
{"matrix": [4, 13], "x": 14, "y": 4.5},
|
||||
{"matrix": [4, 15], "x": 16.25, "y": 4.5},
|
||||
{"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5, 1], "x": 1.5, "y": 5.5},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5, 6], "x": 4, "y": 5.5, "w": 7},
|
||||
{"matrix": [5, 11], "x": 11, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5, 12], "x": 12.5, "y": 5.5},
|
||||
{"matrix": [5, 13], "x": 13.5, "y": 5.5, "w": 1.5},
|
||||
{"matrix": [5, 14], "x": 15.25, "y": 5.5},
|
||||
{"matrix": [5, 15], "x": 16.25, "y": 5.5},
|
||||
{"matrix": [5, 16], "x": 17.25, "y": 5.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
24
keyboards/chill/ghoul/keymaps/default/keymap.c
Normal file
24
keyboards/chill/ghoul/keymaps/default/keymap.c
Normal file
@ -0,0 +1,24 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_all(
|
||||
_______, KC_VOLU, KC_VOLD, KC_MUTE, _______, KC_MPRV, KC_MPLY, KC_MSTP, KC_MNXT, _______, _______, _______, KC_SLEP, _______, _______, _______,
|
||||
BL_TOGG, BL_UP, BL_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
11
keyboards/chill/ghoul/mcuconf.h
Normal file
11
keyboards/chill/ghoul/mcuconf.h
Normal file
@ -0,0 +1,11 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_PWM_USE_TIM2
|
||||
#define STM32_PWM_USE_TIM2 TRUE
|
||||
|
||||
#undef STM32_ST_USE_TIMER
|
||||
#define STM32_ST_USE_TIMER 14
|
27
keyboards/chill/ghoul/readme.md
Normal file
27
keyboards/chill/ghoul/readme.md
Normal file
@ -0,0 +1,27 @@
|
||||
# Ghoul TKL
|
||||
|
||||

|
||||
|
||||
A modern replacement PCB for Filco TKLs, adding support for PCB-mount stabilizers and popular alternate layouts. In-switch backlight LEDs are also supported.
|
||||
|
||||
* Keyboard Maintainer: [chillKB](https://github.com/chillKB)
|
||||
* Hardware Supported: Ghoul TKL PCB
|
||||
* Hardware Availability: [Open source on GitHub](https://github.com/chillKB/ghoulTKL)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make chill/ghoul:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make chill/ghoul:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 3 ways:
|
||||
|
||||
* **Bootmagic reset**: Hold down the top left key (usually Escape) and plug in the keyboard
|
||||
* **Physical reset button**: Hold the boot button and tap the reset button on the back of the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
663
keyboards/clap_studio/flame60/keyboard.json
Normal file
663
keyboards/clap_studio/flame60/keyboard.json
Normal file
@ -0,0 +1,663 @@
|
||||
{
|
||||
"manufacturer": "Clap_Studio",
|
||||
"keyboard_name": "Flame60",
|
||||
"maintainer": "Freather",
|
||||
"bootloader": "atmel-dfu",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B0", "B1", "B2", "B3", "B7", "D3", "D2", "D1", "D0", "B5", "B4", "D7", "D6", "D4"],
|
||||
"rows": ["F4", "F1", "D5", "B6", "F5"]
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"url": "https://www.instagram.com/clap__studio__/",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x464C",
|
||||
"vid": "0x434C"
|
||||
},
|
||||
"layout_aliases": {
|
||||
"LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [1, 13], "x": 14, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [1, 13], "x": 14, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_tsangan": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_tsangan_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [1, 13], "x": 14, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 1], "x": 0, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [1, 13], "x": 14, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_tsangan": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_tsangan_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [1, 13], "x": 14, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 12], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
35
keyboards/clap_studio/flame60/keymaps/default/keymap.c
Normal file
35
keyboards/clap_studio/flame60/keymaps/default/keymap.c
Normal file
@ -0,0 +1,35 @@
|
||||
// Copyright 2023 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
|
||||
* │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
|
||||
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
|
||||
* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
|
||||
* │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │
|
||||
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
|
||||
* │Ctrl│GUI │Alt │ │ Alt│ GUI│ Fn │Ctrl│
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
|
||||
*/
|
||||
[0] = LAYOUT_60_ansi(
|
||||
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
|
||||
),
|
||||
|
||||
[1] = LAYOUT_60_ansi(
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
27
keyboards/clap_studio/flame60/readme.md
Normal file
27
keyboards/clap_studio/flame60/readme.md
Normal file
@ -0,0 +1,27 @@
|
||||
# Flame60
|
||||
|
||||

|
||||
|
||||
The Flame60 consists of a screwless exterior, flex cut pcb and plate to ensure a soft typing experience.
|
||||
|
||||
* Keyboard Maintainer: [CMM.Studio Freather](https://github.com/frankBTHID)
|
||||
* Hardware Supported: Atmega32u4
|
||||
* Hardware Availability: [CLAP.STUDIO (Instagram)](https://www.instagram.com/clap__studio__/)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make clap_studio/flame60:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make clap_studio/flame60:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 3 ways:
|
||||
|
||||
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
|
||||
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
@ -6,7 +6,7 @@ This is a standard off-the-shelf Durgod Taurus K310 full-sized 104/105-key
|
||||
keyboard without backlight. This supports both the ANSI and ISO variants.
|
||||
|
||||
* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert)
|
||||
* Hardware Supported: [Durgod Taurus K310 board with STM32F070RBT6](https://www.durgod.com/page9?product_id=53&_l=en "Durgod.com Product Page")
|
||||
* Hardware Supported: [Durgod Taurus K310 board with STM32F070RBT6](https://www.durgod.com/product/k310-space-gray/)
|
||||
* Hardware Availability: [Amazon.com](https://www.amazon.com/Durgod-Taurus-K310-Mechanical-Keyboard/dp/B07TXB4XF3)
|
||||
|
||||
## Instructions
|
||||
|
@ -6,7 +6,7 @@ This is a standard off-the-shelf Durgod Taurus K320 TKL (87/88-key)
|
||||
keyboard without backlight. This supports both the ANSI and ISO variants.
|
||||
|
||||
* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert)
|
||||
* Hardware Supported: [Durgod Taurus K320 board with STM32F070RBT6](https://www.durgod.com/page9?product_id=47&_l=en "Durgod.com Product Page")
|
||||
* Hardware Supported: [Durgod Taurus K320 board with STM32F070RBT6](https://www.durgod.com/product/k320-space-gray/)
|
||||
* Hardware Availability: [Amazon.com](https://www.amazon.com/Durgod-Taurus-Corona-Mechanical-Keyboard/dp/B078H3WPHM)
|
||||
|
||||
## Instructions
|
||||
@ -15,11 +15,11 @@ keyboard without backlight. This supports both the ANSI and ISO variants.
|
||||
|
||||
Make command example for this keyboard (after setting up your build environment):
|
||||
|
||||
make durgod/k3x0/k320/base:default
|
||||
make durgod/k320/base:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make durgod/k3x0/k320/base:default:flash
|
||||
make durgod/k320/base: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).
|
||||
|
||||
|
@ -5,8 +5,8 @@ K310 full-sized 104/105-key and K320 TKL 87/88-key keyboards.
|
||||
|
||||
* Keyboard Maintainers: [dkjer](https://github.com/dkjer) and [tylert](https://github.com/tylert)
|
||||
* Hardware Supported:
|
||||
* [Durgod Taurus K310 with STM32F070RBT6](https://www.durgod.com/page9?product_id=53&_l=en "Taurus K310 Product Page | Durgod.com")
|
||||
* [Durgod Taurus K320 with STM32F070RBT6](https://www.durgod.com/page9?product_id=47&_l=en "Taurus K320 Product Page | Durgod.com")
|
||||
* [Durgod Taurus K310 with STM32F070RBT6](https://www.durgod.com/product/k310-space-gray/)
|
||||
* [Durgod Taurus K320 with STM32F070RBT6](https://www.durgod.com/product/k320-space-gray/)
|
||||
* Hardware Availability:
|
||||
* [K310 on Amazon.com](https://www.amazon.com/Durgod-Taurus-K310-Mechanical-Keyboard/dp/B07TXB4XF3)
|
||||
* [K320 on Amazon.com](https://www.amazon.com/Durgod-Taurus-Corona-Mechanical-Keyboard/dp/B078H3WPHM)
|
||||
@ -16,8 +16,8 @@ K310 full-sized 104/105-key and K320 TKL 87/88-key keyboards.
|
||||
### Build
|
||||
|
||||
Instructions for building the K310 and K320 firmware can be found here:
|
||||
* [K310](k310/readme.md)
|
||||
* [K320](k320/readme.md)
|
||||
* [K310](../k310/readme.md)
|
||||
* [K320](../k320/readme.md)
|
||||
|
||||
### Initial Flash
|
||||
|
||||
@ -67,10 +67,10 @@ dfu-util -a 0 -d 0483:DF11 -s 0x08000000 -U k3x0_original.bin
|
||||
|
||||
```bash
|
||||
# k310
|
||||
qmk flash -kb durgod/k3x0/k310 -km default
|
||||
qmk flash -kb durgod/k310 -km default
|
||||
|
||||
# k320
|
||||
qmk flash -kb durgod/k3x0/k320 -km default
|
||||
qmk flash -kb durgod/k320 -km default
|
||||
```
|
||||
|
||||
### Subsequent Flashing
|
||||
|
137
keyboards/handwired/dactyl_manuform/5x8/keyboard.json
Normal file
137
keyboards/handwired/dactyl_manuform/5x8/keyboard.json
Normal file
@ -0,0 +1,137 @@
|
||||
{
|
||||
"keyboard_name": "Dactyl-Manuform (5x8)",
|
||||
"manufacturer": "tshort",
|
||||
"url": "",
|
||||
"maintainer": "qmk",
|
||||
"usb": {
|
||||
"vid": "0x444D",
|
||||
"pid": "0x3537",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
},
|
||||
"qmk": {
|
||||
"locking": {
|
||||
"enabled": true,
|
||||
"resync": true
|
||||
}
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B6", "B2", "B3", "B1", "F7", "F6", "F5", "F4"],
|
||||
"rows": ["D4", "C6", "D7", "E6", "B4", "B5"]
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"split": {
|
||||
"enabled": true,
|
||||
"serial": {
|
||||
"pin": "D0"
|
||||
}
|
||||
},
|
||||
"development_board": "promicro",
|
||||
"layouts": {
|
||||
"LAYOUT_5x8": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0.5},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0.5},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0.5},
|
||||
{"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": [6, 7], "x": 17, "y": 0.5},
|
||||
{"matrix": [6, 6], "x": 16, "y": 0.5},
|
||||
{"matrix": [6, 5], "x": 15, "y": 0.5},
|
||||
{"matrix": [6, 4], "x": 14, "y": 0},
|
||||
{"matrix": [6, 3], "x": 13, "y": 0},
|
||||
{"matrix": [6, 2], "x": 12, "y": 0},
|
||||
{"matrix": [6, 1], "x": 11, "y": 0},
|
||||
{"matrix": [6, 0], "x": 10, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1.5},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1.5},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1.5},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1},
|
||||
{"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": [7, 7], "x": 17, "y": 1.5},
|
||||
{"matrix": [7, 6], "x": 16, "y": 1.5},
|
||||
{"matrix": [7, 5], "x": 15, "y": 1.5},
|
||||
{"matrix": [7, 4], "x": 14, "y": 1},
|
||||
{"matrix": [7, 3], "x": 13, "y": 1},
|
||||
{"matrix": [7, 2], "x": 12, "y": 1},
|
||||
{"matrix": [7, 1], "x": 11, "y": 1},
|
||||
{"matrix": [7, 0], "x": 10, "y": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2.5},
|
||||
{"matrix": [2, 1], "x": 1, "y": 2.5},
|
||||
{"matrix": [2, 2], "x": 2, "y": 2.5},
|
||||
{"matrix": [2, 3], "x": 3, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7, "y": 2},
|
||||
|
||||
{"matrix": [8, 7], "x": 17, "y": 2.5},
|
||||
{"matrix": [8, 6], "x": 16, "y": 2.5},
|
||||
{"matrix": [8, 5], "x": 15, "y": 2.5},
|
||||
{"matrix": [8, 4], "x": 14, "y": 2},
|
||||
{"matrix": [8, 3], "x": 13, "y": 2},
|
||||
{"matrix": [8, 2], "x": 12, "y": 2},
|
||||
{"matrix": [8, 1], "x": 11, "y": 2},
|
||||
{"matrix": [8, 0], "x": 10, "y": 2},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3.5},
|
||||
{"matrix": [3, 1], "x": 1, "y": 3.5},
|
||||
{"matrix": [3, 2], "x": 2, "y": 3.5},
|
||||
{"matrix": [3, 3], "x": 3, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6, "y": 3},
|
||||
|
||||
{"matrix": [9, 6], "x": 17, "y": 3.5},
|
||||
{"matrix": [9, 5], "x": 16, "y": 3.5},
|
||||
{"matrix": [9, 4], "x": 15, "y": 3.5},
|
||||
{"matrix": [9, 3], "x": 14, "y": 3},
|
||||
{"matrix": [9, 2], "x": 13, "y": 3},
|
||||
{"matrix": [9, 1], "x": 12, "y": 3},
|
||||
{"matrix": [9, 0], "x": 11, "y": 3},
|
||||
|
||||
{"matrix": [4, 1], "x": 1, "y": 4.5},
|
||||
{"matrix": [4, 2], "x": 2, "y": 4.5},
|
||||
{"matrix": [4, 3], "x": 3, "y": 4},
|
||||
{"matrix": [4, 4], "x": 4, "y": 4},
|
||||
|
||||
{"matrix": [10, 4], "x": 14, "y": 4},
|
||||
{"matrix": [10, 3], "x": 13, "y": 4},
|
||||
{"matrix": [10, 2], "x": 12, "y": 5},
|
||||
{"matrix": [10, 1], "x": 11, "y": 5},
|
||||
|
||||
{"matrix": [4, 5], "x": 4.5, "y": 5},
|
||||
{"matrix": [4, 6], "x": 5.5, "y": 5},
|
||||
|
||||
{"matrix": [10, 6], "x": 14.5, "y": 4.5},
|
||||
{"matrix": [10, 5], "x": 15.5, "y": 4.5},
|
||||
|
||||
{"matrix": [5, 5], "x": 5, "y": 6},
|
||||
{"matrix": [5, 6], "x": 6, "y": 6},
|
||||
|
||||
{"matrix": [11, 6], "x": 12, "y": 6},
|
||||
{"matrix": [11, 5], "x": 11, "y": 6},
|
||||
|
||||
{"matrix": [5, 3], "x": 5, "y": 7},
|
||||
{"matrix": [5, 4], "x": 6, "y": 7},
|
||||
|
||||
{"matrix": [11, 4], "x": 12, "y": 7},
|
||||
{"matrix": [11, 3], "x": 11, "y": 7}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,84 @@
|
||||
/* Copyright 2024 Philip Slinkin (s.philya@gmail.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layers {
|
||||
_QWERTY,
|
||||
_RIGHT2LEFT
|
||||
};
|
||||
|
||||
/* Base (qwerty)
|
||||
* ,-------------------------------------------------------, ,-------------------------------------------------------,
|
||||
* | Esc | ` | 1 | 2 | 3 | 4 | 5 | 6 | | 7 | 8 | 9 | 0 | - | = | \ | BS |
|
||||
* |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------|
|
||||
* |M_RSTP| Tab | q | w | e | r | t |QKBOOT| | F8 | y | u | i | o | p | [ | ] |
|
||||
* |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------|
|
||||
* |M_REC1| Caps | a | s | d | f | g | F7 | | F9 | h | j | k | l | ; | " |ENTER |
|
||||
* |------+------+------+------+------+------+------+------' '------+------+------+------+------+------+------+------|
|
||||
* |M_REC2| Shift| z | x | c | v | b | | n | m | , | . | / |Shift | Ctrl |
|
||||
* '------+------+------+------+------+------+------' '------+------+------+------+------+------+------'
|
||||
* | Ctrl | Wint | Alt | INS | | Up | Down | Left | Right|
|
||||
* '------+------+------+------+------, ,------+------+------+------+------'
|
||||
* | TT(1)|SPACE | | SPACE| BS |
|
||||
* '------+------+------' ,------+------+------'
|
||||
* | ESC |ENTER | | HOME | END |
|
||||
* '------+------' '------+------'
|
||||
* | DEL | F2 | | PGUP | PGDN |
|
||||
* '------+------' '------+------'
|
||||
*/
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_QWERTY] = LAYOUT_5x8(
|
||||
KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_BSPC,
|
||||
DM_RSTP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, QK_BOOT, KC_F8, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,
|
||||
DM_REC1, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_F7, KC_F9, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
DM_REC2, 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_RCTL,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_INS, KC_UP, KC_DOWN, KC_LEFT, KC_RGHT,
|
||||
TT(1), KC_SPC, KC_SPC, KC_BSPC,
|
||||
KC_ESC, KC_ENT, KC_HOME, KC_END,
|
||||
KC_DEL, KC_F2, KC_PGUP, KC_PGDN
|
||||
),
|
||||
/* Base (right to left on hold button)
|
||||
* ,-------------------------------------------------------, ,-------------------------------------------------------,
|
||||
* | BS | \ | = | - | 0 | 9 | 8 | 7 | | | | | | | | | |
|
||||
* |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------|
|
||||
* | [ | ] | p | o | i | u | y |QKBOOT| | | | | | | | | |
|
||||
* |------+------+------+------+------+------+------+------| |------+------+------+------+------+------+------+------|
|
||||
* |M_PLY1| " | ; | l | k | j | h |PRSCRN| | | | Left | Down | Up | Right| |ENTER |
|
||||
* |------+------+------+------+------+------+------+------' '------+------+------+------+------+------+------+------|
|
||||
* |M_PLY2|MShift| / | . | , | m | n | | | | | | | | |
|
||||
* |------+------+------+------+------+------+------' '------+------+------+------+------+------+------'
|
||||
* |MCtrl | MAlt | DEL | BS | | | | | |
|
||||
* '------+------+------+------+------, ,------+------+------+------+------'
|
||||
* | |SPACE | | SPACE| BS |
|
||||
* '------+------+------' ,------+------+------'
|
||||
* | END |ENTER | | HOME | END |
|
||||
* '------+------' '------+------'
|
||||
* | PGDN | PGUP | | PGUP | PGDN |
|
||||
* '------+------' '------+------'
|
||||
*/
|
||||
|
||||
[_RIGHT2LEFT] = LAYOUT_5x8(
|
||||
KC_BSPC, KC_BSLS, KC_EQL, KC_MINS, KC_0, KC_9, KC_8, KC_7, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC,
|
||||
KC_RBRC, KC_LBRC, KC_P, KC_O, KC_I, KC_U, KC_Y, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
DM_PLY1, KC_QUOT, KC_SCLN, KC_L, KC_K, KC_J, KC_H, KC_PSCR, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_SCLN, KC_NO, KC_ENT,
|
||||
DM_PLY2, OSM(MOD_LSFT), KC_SLSH, KC_DOT, KC_COMM, KC_M, KC_N, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
OSM(MOD_LCTL), OSM(MOD_LALT), KC_DEL, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO,
|
||||
KC_NO, KC_SPC, KC_SPC, KC_BSPC,
|
||||
KC_ESC, KC_ENT, KC_HOME, KC_END,
|
||||
KC_DEL, KC_F2, KC_PGUP, KC_PGDN
|
||||
),
|
||||
};
|
@ -0,0 +1 @@
|
||||
DYNAMIC_MACRO_ENABLE = yes
|
25
keyboards/handwired/dactyl_manuform/5x8/readme.md
Normal file
25
keyboards/handwired/dactyl_manuform/5x8/readme.md
Normal file
@ -0,0 +1,25 @@
|
||||
# handwired/dactyl_manuform/5x8
|
||||
|
||||

|
||||
|
||||
* Keyboard Maintainer: [iliorik](https://github.com/iliorik)
|
||||
|
||||
I made this keyboard so that the buttons on the right side of the right half would replicate the standard keyboard.
|
||||
I put macros on the left buttons of the left side keyboard for rec and play keypresses
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make handwired/dactyl_manuform/5x8:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make handwired/dactyl_manuform/5x8: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:
|
||||
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT`
|
||||
* **Reset pro micro**: Connect RST and GND pins on plate
|
79
keyboards/handwired/ic45_v2/keyboard.json
Normal file
79
keyboards/handwired/ic45_v2/keyboard.json
Normal file
@ -0,0 +1,79 @@
|
||||
{
|
||||
"manufacturer": "PatrickFan",
|
||||
"keyboard_name": "ic45_v2",
|
||||
"maintainer": "PatrickFan",
|
||||
"bootloader": "atmel-dfu",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["F0", "F1", "F4", "F5", "F6", "F7", "B0", "B1", "D5", "D4", "D6", "D7", "B4"],
|
||||
"rows": ["B6", "C6", "C7", "B5"]
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"url": "https://github.com/lighteningAB/45keyboard_v1",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0000",
|
||||
"vid": "0xFEED"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0, "w": 1.5},
|
||||
{"matrix": [0, 1], "x": 1.5, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.5, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4.5, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5.5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6.5, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8.5, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9.5, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10.5, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11.5, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12.5, "y": 0},
|
||||
{"matrix": [3, 12], "x": 13.5, "y": 0, "w": 1.5},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.75},
|
||||
{"matrix": [1, 1], "x": 1.75, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.75, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.75, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.75, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.75, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.75, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.75, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.75, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.75, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.75, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.75, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.75, "y": 1, "w": 2.25},
|
||||
|
||||
{"matrix": [2, 1], "x": 0, "y": 2, "w": 2.25},
|
||||
{"matrix": [2, 2], "x": 2.25, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.25, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.25, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.25, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.25, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.25, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.25, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.25, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.25, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.25, "y": 2},
|
||||
{"matrix": [2, 12], "x": 12.25, "y": 2, "w": 2.75},
|
||||
|
||||
{"matrix": [3, 2], "x": 2, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 5], "x": 4.5, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 8], "x": 6.75, "y": 3, "w": 2.75},
|
||||
{"matrix": [3, 9], "x": 9.5, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 10], "x": 10.75, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 11], "x": 12, "y": 3, "w": 1.25}
|
||||
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
39
keyboards/handwired/ic45_v2/keymaps/default/keymap.c
Normal file
39
keyboards/handwired/ic45_v2/keymaps/default/keymap.c
Normal file
@ -0,0 +1,39 @@
|
||||
/*
|
||||
Copyright 2025 Patrick Fan
|
||||
|
||||
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(
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||
KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RALT, KC_RGUI, MO(2), KC_BSLS
|
||||
),
|
||||
[1] = LAYOUT(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_BSPC
|
||||
),
|
||||
[2] = 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_DEL
|
||||
)
|
||||
};
|
26
keyboards/handwired/ic45_v2/readme.md
Normal file
26
keyboards/handwired/ic45_v2/readme.md
Normal file
@ -0,0 +1,26 @@
|
||||
# ic45_v2
|
||||
|
||||

|
||||
|
||||
*A 46-key keyboard ANSI keyboard with split spacebar. Files available here [here](https://github.com/lighteningAB/45keyboard_v1)*
|
||||
|
||||
* Keyboard Maintainer: [PatrickFan](https://github.com/PatrickFan)
|
||||
* Hardware Supported: Integrated ATmega32U4
|
||||
* Hardware Availability: [GitHub](https://github.com/lighteningAB/45keyboard_v1)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make handwired/ic45_v2:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make handwired/ic45_v2:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 2 ways:
|
||||
|
||||
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
@ -8,3 +8,7 @@
|
||||
|
||||
#define BACKLIGHT_PWM_DRIVER PWMD5
|
||||
#define BACKLIGHT_PWM_CHANNEL 1
|
||||
|
||||
#define SOLENOID_PIN B12
|
||||
#define SOLENOID_PINS { B12, B13, B14, B15 }
|
||||
#define SOLENOID_PINS_ACTIVE_STATE { high, high, low }
|
||||
|
1
keyboards/handwired/onekey/at_start_f415/rules.mk
Normal file
1
keyboards/handwired/onekey/at_start_f415/rules.mk
Normal file
@ -0,0 +1 @@
|
||||
MCU_LDSCRIPT = AT32F415xC
|
@ -119,8 +119,7 @@
|
||||
"solid_reactive_multinexus": true,
|
||||
"solid_splash": true,
|
||||
"wave_left_right": true,
|
||||
"wave_up_down": true,
|
||||
"effect_max": true
|
||||
"wave_up_down": true
|
||||
},
|
||||
"layout": [
|
||||
{"matrix":[0, 0], "flags":1, "x":0, "y":0},
|
||||
|
@ -136,8 +136,7 @@
|
||||
"solid_reactive_multinexus": true,
|
||||
"solid_splash": true,
|
||||
"wave_left_right": true,
|
||||
"wave_up_down": true,
|
||||
"effect_max": true
|
||||
"wave_up_down": true
|
||||
},
|
||||
"layout": [
|
||||
{"matrix":[0, 0], "flags":1, "x":0, "y":0},
|
||||
|
31
keyboards/keychron/c3_pro/ansi/red/config.h
Normal file
31
keyboards/keychron/c3_pro/ansi/red/config.h
Normal file
@ -0,0 +1,31 @@
|
||||
/* Copyright 2024 @ Keychron (https://www.keychron.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
|
||||
|
||||
/* Indication led */
|
||||
#define LED_MAC_OS_PIN A4
|
||||
#define LED_WIN_OS_PIN A5
|
||||
#define LED_OS_PIN_ON_STATE 1
|
||||
|
||||
/* LED Matrix Driver Configuration */
|
||||
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_GND
|
||||
|
||||
/* Use first 7 channels of LED driver */
|
||||
#define SNLED27351_PHASE_CHANNEL SNLED27351_SCAN_PHASE_7_CHANNEL
|
||||
|
||||
/* Set LED driver current */
|
||||
#define SNLED27351_CURRENT_TUNE { 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50 }
|
242
keyboards/keychron/c3_pro/ansi/red/keyboard.json
Normal file
242
keyboards/keychron/c3_pro/ansi/red/keyboard.json
Normal file
@ -0,0 +1,242 @@
|
||||
|
||||
{
|
||||
"keyboard_name": "Keychron C3 Pro Red",
|
||||
"features": {
|
||||
"led_matrix": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "A3"
|
||||
},
|
||||
"led_matrix": {
|
||||
"animations": {
|
||||
"band_pinwheel": true,
|
||||
"band_spiral": true,
|
||||
"breathing": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_out_in": true,
|
||||
"cycle_up_down": true,
|
||||
"dual_beacon": true,
|
||||
"solid_reactive_multinexus": true,
|
||||
"solid_reactive_multiwide": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_splash": true,
|
||||
"wave_left_right": true,
|
||||
"wave_up_down": true
|
||||
},
|
||||
"driver": "snled27351",
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 2], "x": 26, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 3], "x": 39, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 4], "x": 52, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 5], "x": 65, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 6], "x": 84, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 7], "x": 97, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 8], "x": 110, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 9], "x": 123, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 10], "x": 143, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 11], "x": 156, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 12], "x": 169, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 13], "x": 182, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 14], "x": 198, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 15], "x": 211, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 16], "x": 224, "y": 0, "flags": 1},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 16, "flags": 1},
|
||||
{"matrix": [1, 1], "x": 13, "y": 16, "flags": 4},
|
||||
{"matrix": [1, 2], "x": 26, "y": 16, "flags": 4},
|
||||
{"matrix": [1, 3], "x": 39, "y": 16, "flags": 4},
|
||||
{"matrix": [1, 4], "x": 52, "y": 16, "flags": 4},
|
||||
{"matrix": [1, 5], "x": 65, "y": 16, "flags": 4},
|
||||
{"matrix": [1, 6], "x": 78, "y": 16, "flags": 4},
|
||||
{"matrix": [1, 7], "x": 91, "y": 16, "flags": 4},
|
||||
{"matrix": [1, 8], "x": 104, "y": 16, "flags": 4},
|
||||
{"matrix": [1, 9], "x": 117, "y": 16, "flags": 4},
|
||||
{"matrix": [1, 10], "x": 130, "y": 16, "flags": 4},
|
||||
{"matrix": [1, 11], "x": 143, "y": 16, "flags": 4},
|
||||
{"matrix": [1, 12], "x": 156, "y": 16, "flags": 4},
|
||||
{"matrix": [1, 13], "x": 175, "y": 16, "flags": 1},
|
||||
{"matrix": [1, 14], "x": 198, "y": 16, "flags": 1},
|
||||
{"matrix": [1, 15], "x": 211, "y": 16, "flags": 1},
|
||||
{"matrix": [1, 16], "x": 224, "y": 16, "flags": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 3, "y": 28, "flags": 1},
|
||||
{"matrix": [2, 1], "x": 19, "y": 28, "flags": 4},
|
||||
{"matrix": [2, 2], "x": 32, "y": 28, "flags": 4},
|
||||
{"matrix": [2, 3], "x": 45, "y": 28, "flags": 4},
|
||||
{"matrix": [2, 4], "x": 58, "y": 28, "flags": 4},
|
||||
{"matrix": [2, 5], "x": 71, "y": 28, "flags": 4},
|
||||
{"matrix": [2, 6], "x": 84, "y": 28, "flags": 4},
|
||||
{"matrix": [2, 7], "x": 97, "y": 28, "flags": 4},
|
||||
{"matrix": [2, 8], "x": 110, "y": 28, "flags": 4},
|
||||
{"matrix": [2, 9], "x": 123, "y": 28, "flags": 4},
|
||||
{"matrix": [2, 10], "x": 136, "y": 28, "flags": 4},
|
||||
{"matrix": [2, 11], "x": 149, "y": 28, "flags": 4},
|
||||
{"matrix": [2, 12], "x": 162, "y": 28, "flags": 4},
|
||||
{"matrix": [2, 13], "x": 178, "y": 28, "flags": 1},
|
||||
{"matrix": [2, 14], "x": 198, "y": 28, "flags": 1},
|
||||
{"matrix": [2, 15], "x": 211, "y": 28, "flags": 1},
|
||||
{"matrix": [2, 16], "x": 224, "y": 28, "flags": 1},
|
||||
|
||||
{"matrix": [3, 0], "x": 5, "y": 40, "flags": 8},
|
||||
{"matrix": [3, 1], "x": 23, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 2], "x": 36, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 3], "x": 49, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 4], "x": 62, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 5], "x": 75, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 6], "x": 88, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 7], "x": 101, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 8], "x": 114, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 9], "x": 126, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 10], "x": 139, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 11], "x": 152, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 13], "x": 173, "y": 40, "flags": 1},
|
||||
|
||||
{"matrix": [4, 0], "x": 8, "y": 52, "flags": 1},
|
||||
{"matrix": [4, 2], "x": 29, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 3], "x": 42, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 4], "x": 55, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 5], "x": 68, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 6], "x": 81, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 7], "x": 94, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 8], "x": 107, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 9], "x": 120, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 10], "x": 133, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 11], "x": 146, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 13], "x": 170, "y": 52, "flags": 1},
|
||||
{"matrix": [4, 15], "x": 211, "y": 52, "flags": 1},
|
||||
|
||||
{"matrix": [5, 0], "x": 2, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 1], "x": 18, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 2], "x": 34, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 6], "x": 83, "y": 64, "flags": 4},
|
||||
{"matrix": [5, 10], "x": 131, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 11], "x": 148, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 12], "x": 164, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 13], "x": 180, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 14], "x": 198, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 15], "x": 211, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 16], "x": 224, "y": 64, "flags": 1},
|
||||
|
||||
{"x": 0, "y": 0, "flags": 1},
|
||||
{"x": 0, "y": 16, "flags": 1},
|
||||
{"x": 0, "y": 28, "flags": 1},
|
||||
{"x": 0, "y": 40, "flags": 1},
|
||||
{"x": 0, "y": 52, "flags": 1},
|
||||
{"x": 0, "y": 64, "flags": 1},
|
||||
{"x": 224, "y": 0, "flags": 1},
|
||||
{"x": 224, "y": 16, "flags": 1},
|
||||
{"x": 224, "y": 28, "flags": 1},
|
||||
{"x": 224, "y": 40, "flags": 1},
|
||||
{"x": 224, "y": 52, "flags": 1},
|
||||
{"x": 224, "y": 64, "flags": 1}
|
||||
],
|
||||
"sleep": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["C6", "C7", "C8", "A14", "A15", "C10", "C11", "C13", "C14", "C15", "C0", "C1", "C2", "C3", "A0", "A1", "A2"],
|
||||
"rows": ["C12", "D2", "B3", "B4", "B5", "B6"]
|
||||
},
|
||||
"usb": {
|
||||
"device_version": "1.0.1",
|
||||
"pid": "0x0430"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_tkl_ansi": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "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.5, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8.5, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9.5, "y": 0},
|
||||
{"matrix": [0, 10], "x": 11, "y": 0},
|
||||
{"matrix": [0, 11], "x": 12, "y": 0},
|
||||
{"matrix": [0, 12], "x": 13, "y": 0},
|
||||
{"matrix": [0, 13], "x": 14, "y": 0},
|
||||
{"matrix": [0, 14], "x": 15.25, "y": 0},
|
||||
{"matrix": [0, 15], "x": 16.25, "y": 0},
|
||||
{"matrix": [0, 16], "x": 17.25, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1.25},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1.25},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1.25},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1.25},
|
||||
{"matrix": [1, 4], "x": 4, "y": 1.25},
|
||||
{"matrix": [1, 5], "x": 5, "y": 1.25},
|
||||
{"matrix": [1, 6], "x": 6, "y": 1.25},
|
||||
{"matrix": [1, 7], "x": 7, "y": 1.25},
|
||||
{"matrix": [1, 8], "x": 8, "y": 1.25},
|
||||
{"matrix": [1, 9], "x": 9, "y": 1.25},
|
||||
{"matrix": [1, 10], "x": 10, "y": 1.25},
|
||||
{"matrix": [1, 11], "x": 11, "y": 1.25},
|
||||
{"matrix": [1, 12], "x": 12, "y": 1.25},
|
||||
{"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
|
||||
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
|
||||
{"matrix": [1, 15], "x": 16.25, "y": 1.25},
|
||||
{"matrix": [1, 16], "x": 17.25, "y": 1.25},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 2.25},
|
||||
{"matrix": [2, 2], "x": 2.5, "y": 2.25},
|
||||
{"matrix": [2, 3], "x": 3.5, "y": 2.25},
|
||||
{"matrix": [2, 4], "x": 4.5, "y": 2.25},
|
||||
{"matrix": [2, 5], "x": 5.5, "y": 2.25},
|
||||
{"matrix": [2, 6], "x": 6.5, "y": 2.25},
|
||||
{"matrix": [2, 7], "x": 7.5, "y": 2.25},
|
||||
{"matrix": [2, 8], "x": 8.5, "y": 2.25},
|
||||
{"matrix": [2, 9], "x": 9.5, "y": 2.25},
|
||||
{"matrix": [2, 10], "x": 10.5, "y": 2.25},
|
||||
{"matrix": [2, 11], "x": 11.5, "y": 2.25},
|
||||
{"matrix": [2, 12], "x": 12.5, "y": 2.25},
|
||||
{"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
|
||||
{"matrix": [2, 14], "x": 15.25, "y": 2.25},
|
||||
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
|
||||
{"matrix": [2, 16], "x": 17.25, "y": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
|
||||
{"matrix": [3, 1], "x": 1.75, "y": 3.25},
|
||||
{"matrix": [3, 2], "x": 2.75, "y": 3.25},
|
||||
{"matrix": [3, 3], "x": 3.75, "y": 3.25},
|
||||
{"matrix": [3, 4], "x": 4.75, "y": 3.25},
|
||||
{"matrix": [3, 5], "x": 5.75, "y": 3.25},
|
||||
{"matrix": [3, 6], "x": 6.75, "y": 3.25},
|
||||
{"matrix": [3, 7], "x": 7.75, "y": 3.25},
|
||||
{"matrix": [3, 8], "x": 8.75, "y": 3.25},
|
||||
{"matrix": [3, 9], "x": 9.75, "y": 3.25},
|
||||
{"matrix": [3, 10], "x": 10.75, "y": 3.25},
|
||||
{"matrix": [3, 11], "x": 11.75, "y": 3.25},
|
||||
{"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
|
||||
{"matrix": [4, 2], "x": 2.25, "y": 4.25},
|
||||
{"matrix": [4, 3], "x": 3.25, "y": 4.25},
|
||||
{"matrix": [4, 4], "x": 4.25, "y": 4.25},
|
||||
{"matrix": [4, 5], "x": 5.25, "y": 4.25},
|
||||
{"matrix": [4, 6], "x": 6.25, "y": 4.25},
|
||||
{"matrix": [4, 7], "x": 7.25, "y": 4.25},
|
||||
{"matrix": [4, 8], "x": 8.25, "y": 4.25},
|
||||
{"matrix": [4, 9], "x": 9.25, "y": 4.25},
|
||||
{"matrix": [4, 10], "x": 10.25, "y": 4.25},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4.25},
|
||||
{"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75},
|
||||
{"matrix": [4, 15], "x": 16.25, "y": 4.25},
|
||||
|
||||
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
|
||||
{"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
|
||||
{"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
|
||||
{"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25},
|
||||
{"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25},
|
||||
{"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25},
|
||||
{"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25},
|
||||
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"matrix": [5, 15], "x": 16.25, "y": 5.25},
|
||||
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
60
keyboards/keychron/c3_pro/ansi/red/keymaps/default/keymap.c
Normal file
60
keyboards/keychron/c3_pro/ansi/red/keymaps/default/keymap.c
Normal file
@ -0,0 +1,60 @@
|
||||
/* Copyright 2024 @ Keychron (https://www.keychron.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 QMK_KEYBOARD_H
|
||||
|
||||
enum layers{
|
||||
MAC_BASE,
|
||||
MAC_FN,
|
||||
WIN_BASE,
|
||||
WIN_FN,
|
||||
};
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[MAC_BASE] = LAYOUT_tkl_ansi(
|
||||
KC_ESC, KC_BRID, KC_BRIU, _______, _______, LM_BRID, LM_BRIU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_TRNS, 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_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN),KC_TRNS, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[MAC_FN] = LAYOUT_tkl_ansi(
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, BL_STEP,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
BL_TOGG, BL_STEP, LM_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
KC_OSSW, _______, LM_BRID, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[WIN_BASE] = 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_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[WIN_FN] = LAYOUT_tkl_ansi(
|
||||
_______, KC_BRID, KC_BRIU, _______, _______, LM_BRID, LM_BRIU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, BL_STEP,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
BL_TOGG, BL_STEP, LM_BRIU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
KC_OSSW, _______, LM_BRID, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
};
|
||||
|
132
keyboards/keychron/c3_pro/ansi/red/red.c
Normal file
132
keyboards/keychron/c3_pro/ansi/red/red.c
Normal file
@ -0,0 +1,132 @@
|
||||
/* Copyright 2023 @ Keychron (https://www.keychron.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"
|
||||
|
||||
#ifdef LED_MATRIX_ENABLE
|
||||
// clang-format off
|
||||
const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
|
||||
/* Refer to SNLED27351 manual for these locations
|
||||
* driver
|
||||
* | LED address
|
||||
* | | */
|
||||
{0, CB6_CA1},
|
||||
{0, CB6_CA3},
|
||||
{0, CB6_CA4},
|
||||
{0, CB6_CA5},
|
||||
{0, CB6_CA6},
|
||||
{0, CB6_CA7},
|
||||
{0, CB6_CA8},
|
||||
{0, CB6_CA9},
|
||||
{0, CB6_CA10},
|
||||
{0, CB6_CA11},
|
||||
{0, CB6_CA12},
|
||||
{0, CB6_CA13},
|
||||
{0, CB6_CA14},
|
||||
{0, CB6_CA15},
|
||||
{0, CB6_CA16},
|
||||
{0, CB3_CA13},
|
||||
|
||||
{0, CB5_CA1},
|
||||
{0, CB5_CA2},
|
||||
{0, CB5_CA3},
|
||||
{0, CB5_CA4},
|
||||
{0, CB5_CA5},
|
||||
{0, CB5_CA6},
|
||||
{0, CB5_CA7},
|
||||
{0, CB5_CA8},
|
||||
{0, CB5_CA9},
|
||||
{0, CB5_CA10},
|
||||
{0, CB5_CA11},
|
||||
{0, CB5_CA12},
|
||||
{0, CB5_CA13},
|
||||
{0, CB5_CA14},
|
||||
{0, CB5_CA15},
|
||||
{0, CB5_CA16},
|
||||
{0, CB3_CA15},
|
||||
|
||||
{0, CB4_CA1},
|
||||
{0, CB4_CA2},
|
||||
{0, CB4_CA3},
|
||||
{0, CB4_CA4},
|
||||
{0, CB4_CA5},
|
||||
{0, CB4_CA6},
|
||||
{0, CB4_CA7},
|
||||
{0, CB4_CA8},
|
||||
{0, CB4_CA9},
|
||||
{0, CB4_CA10},
|
||||
{0, CB4_CA11},
|
||||
{0, CB4_CA12},
|
||||
{0, CB4_CA13},
|
||||
{0, CB4_CA14},
|
||||
{0, CB4_CA15},
|
||||
{0, CB4_CA16},
|
||||
{0, CB3_CA16},
|
||||
|
||||
{0, CB3_CA1},
|
||||
{0, CB3_CA2},
|
||||
{0, CB3_CA3},
|
||||
{0, CB3_CA4},
|
||||
{0, CB3_CA5},
|
||||
{0, CB3_CA6},
|
||||
{0, CB3_CA7},
|
||||
{0, CB3_CA8},
|
||||
{0, CB3_CA9},
|
||||
{0, CB3_CA10},
|
||||
{0, CB3_CA11},
|
||||
{0, CB3_CA12},
|
||||
{0, CB3_CA14},
|
||||
|
||||
{0, CB2_CA1},
|
||||
{0, CB2_CA3},
|
||||
{0, CB2_CA4},
|
||||
{0, CB2_CA5},
|
||||
{0, CB2_CA6},
|
||||
{0, CB2_CA7},
|
||||
{0, CB2_CA8},
|
||||
{0, CB2_CA9},
|
||||
{0, CB2_CA10},
|
||||
{0, CB2_CA11},
|
||||
{0, CB2_CA12},
|
||||
{0, CB2_CA14},
|
||||
{0, CB2_CA16},
|
||||
|
||||
{0, CB1_CA1},
|
||||
{0, CB1_CA2},
|
||||
{0, CB1_CA3},
|
||||
{0, CB1_CA7},
|
||||
{0, CB1_CA11},
|
||||
{0, CB1_CA12},
|
||||
{0, CB1_CA13},
|
||||
{0, CB1_CA14},
|
||||
{0, CB1_CA15},
|
||||
{0, CB1_CA16},
|
||||
{0, CB2_CA15},
|
||||
|
||||
{0, CB7_CA1},
|
||||
{0, CB7_CA2},
|
||||
{0, CB7_CA3},
|
||||
{0, CB7_CA4},
|
||||
{0, CB7_CA5},
|
||||
{0, CB7_CA6},
|
||||
{0, CB7_CA12},
|
||||
{0, CB7_CA11},
|
||||
{0, CB7_CA10},
|
||||
{0, CB7_CA9},
|
||||
{0, CB7_CA8},
|
||||
{0, CB7_CA7},
|
||||
};
|
||||
#endif
|
29
keyboards/keychron/c3_pro/ansi/rgb/config.h
Normal file
29
keyboards/keychron/c3_pro/ansi/rgb/config.h
Normal file
@ -0,0 +1,29 @@
|
||||
/* Copyright 2024 @ Keychron (https://www.keychron.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
|
||||
|
||||
/* Enable indicator LED*/
|
||||
#define LED_MAC_OS_PIN A6
|
||||
#define LED_WIN_OS_PIN A7
|
||||
#define LED_OS_PIN_ON_STATE 1
|
||||
|
||||
/* RGB Matrix Driver Configuration */
|
||||
#define SNLED27351_I2C_ADDRESS_1 SNLED27351_I2C_ADDRESS_VDDIO
|
||||
#define SNLED27351_I2C_ADDRESS_2 SNLED27351_I2C_ADDRESS_GND
|
||||
|
||||
/* Set LED driver current */
|
||||
#define SNLED27351_CURRENT_TUNE { 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30 }
|
249
keyboards/keychron/c3_pro/ansi/rgb/keyboard.json
Normal file
249
keyboards/keychron/c3_pro/ansi/rgb/keyboard.json
Normal file
@ -0,0 +1,249 @@
|
||||
{
|
||||
"keyboard_name": "Keychron C3 Pro RGB",
|
||||
"features": {
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "A5"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["C6", "C7", "C8", "A14", "B7", "C13", "C14", "C15", "C0", "C1", "C2", "C3", "A0", "A1", "A2", "A3", "A4"],
|
||||
"rows": ["C12", "D2", "B3", "B4", "B5", "B6"]
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"animations": {
|
||||
"band_spiral_val": true,
|
||||
"breathing": true,
|
||||
"cycle_all": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_out_in": true,
|
||||
"cycle_out_in_dual": true,
|
||||
"cycle_pinwheel": true,
|
||||
"cycle_spiral": true,
|
||||
"cycle_up_down": true,
|
||||
"digital_rain": true,
|
||||
"dual_beacon": true,
|
||||
"jellybean_raindrops": true,
|
||||
"pixel_rain": true,
|
||||
"rainbow_beacon": true,
|
||||
"rainbow_moving_chevron": true,
|
||||
"solid_reactive_multinexus": true,
|
||||
"solid_reactive_multiwide": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_splash": true,
|
||||
"splash": true,
|
||||
"typing_heatmap": true
|
||||
},
|
||||
"driver": "snled27351",
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 2], "x": 20, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 3], "x": 30, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 4], "x": 40, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 5], "x": 50, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 6], "x": 65, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 7], "x": 75, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 8], "x": 85, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 9], "x": 95, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 10], "x": 110, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 11], "x": 120, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 12], "x": 130, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 13], "x": 140, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 14], "x": 155, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 15], "x": 165, "y": 0, "flags": 1},
|
||||
{"matrix": [0, 16], "x": 175, "y": 0, "flags": 1},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 15, "flags": 4},
|
||||
{"matrix": [1, 1], "x": 10, "y": 15, "flags": 4},
|
||||
{"matrix": [1, 2], "x": 20, "y": 15, "flags": 4},
|
||||
{"matrix": [1, 3], "x": 30, "y": 15, "flags": 4},
|
||||
{"matrix": [1, 4], "x": 40, "y": 15, "flags": 4},
|
||||
{"matrix": [1, 5], "x": 50, "y": 15, "flags": 4},
|
||||
{"matrix": [1, 6], "x": 60, "y": 15, "flags": 4},
|
||||
{"matrix": [1, 7], "x": 70, "y": 15, "flags": 4},
|
||||
{"matrix": [1, 8], "x": 80, "y": 15, "flags": 4},
|
||||
{"matrix": [1, 9], "x": 90, "y": 15, "flags": 4},
|
||||
{"matrix": [1, 10], "x": 100, "y": 15, "flags": 4},
|
||||
{"matrix": [1, 11], "x": 110, "y": 15, "flags": 4},
|
||||
{"matrix": [1, 12], "x": 120, "y": 15, "flags": 4},
|
||||
{"matrix": [1, 13], "x": 135, "y": 15, "flags": 1},
|
||||
{"matrix": [1, 14], "x": 155, "y": 15, "flags": 1},
|
||||
{"matrix": [1, 15], "x": 165, "y": 15, "flags": 1},
|
||||
{"matrix": [1, 16], "x": 175, "y": 15, "flags": 1},
|
||||
|
||||
{"matrix": [2, 0], "x": 3, "y": 27, "flags": 1},
|
||||
{"matrix": [2, 1], "x": 16, "y": 27, "flags": 4},
|
||||
{"matrix": [2, 2], "x": 26, "y": 27, "flags": 4},
|
||||
{"matrix": [2, 3], "x": 36, "y": 27, "flags": 4},
|
||||
{"matrix": [2, 4], "x": 47, "y": 27, "flags": 4},
|
||||
{"matrix": [2, 5], "x": 57, "y": 27, "flags": 4},
|
||||
{"matrix": [2, 6], "x": 68, "y": 27, "flags": 4},
|
||||
{"matrix": [2, 7], "x": 78, "y": 27, "flags": 4},
|
||||
{"matrix": [2, 8], "x": 89, "y": 27, "flags": 4},
|
||||
{"matrix": [2, 9], "x": 99, "y": 27, "flags": 4},
|
||||
{"matrix": [2, 10], "x": 109, "y": 27, "flags": 4},
|
||||
{"matrix": [2, 11], "x": 120, "y": 27, "flags": 4},
|
||||
{"matrix": [2, 12], "x": 130, "y": 27, "flags": 4},
|
||||
{"matrix": [2, 13], "x": 143, "y": 27, "flags": 4},
|
||||
{"matrix": [2, 14], "x": 155, "y": 27, "flags": 1},
|
||||
{"matrix": [2, 15], "x": 165, "y": 27, "flags": 1},
|
||||
{"matrix": [2, 16], "x": 175, "y": 27, "flags": 1},
|
||||
|
||||
{"matrix": [3, 0], "x": 4, "y": 40, "flags": 8},
|
||||
{"matrix": [3, 1], "x": 18, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 2], "x": 29, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 3], "x": 39, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 4], "x": 50, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 5], "x": 60, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 6], "x": 70, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 7], "x": 81, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 8], "x": 91, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 9], "x": 102, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 10], "x": 112, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 11], "x": 123, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 13], "x": 143, "y": 40, "flags": 4},
|
||||
|
||||
{"matrix": [4, 0], "x": 7, "y": 52, "flags": 1},
|
||||
{"matrix": [4, 2], "x": 23, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 3], "x": 34, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 4], "x": 44, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 5], "x": 55, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 6], "x": 65, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 7], "x": 76, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 8], "x": 86, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 9], "x": 96, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 10], "x": 107, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 11], "x": 117, "y": 52, "flags": 4},
|
||||
{"matrix": [4, 13], "x": 137, "y": 52, "flags": 1},
|
||||
{"matrix": [4, 15], "x": 165, "y": 52, "flags": 1},
|
||||
|
||||
{"matrix": [5, 0], "x": 1, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 1], "x": 14, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 2], "x": 27, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 6], "x": 67, "y": 64, "flags": 4},
|
||||
{"matrix": [5, 10], "x": 104, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 11], "x": 116, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 12], "x": 128, "y": 64, "flags": 4},
|
||||
{"matrix": [5, 13], "x": 140, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 14], "x": 155, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 15], "x": 165, "y": 64, "flags": 1},
|
||||
{"matrix": [5, 16], "x": 175, "y": 64, "flags": 1},
|
||||
|
||||
{"x": 0, "y": 0, "flags": 1},
|
||||
{"x": 0, "y": 16, "flags": 1},
|
||||
{"x": 0, "y": 28, "flags": 1},
|
||||
{"x": 0, "y": 40, "flags": 1},
|
||||
{"x": 0, "y": 52, "flags": 1},
|
||||
{"x": 0, "y": 64, "flags": 1},
|
||||
{"x": 224, "y": 0, "flags": 1},
|
||||
{"x": 224, "y": 16, "flags": 1},
|
||||
{"x": 224, "y": 28, "flags": 1},
|
||||
{"x": 224, "y": 40, "flags": 1},
|
||||
{"x": 224, "y": 52, "flags": 1},
|
||||
{"x": 224, "y": 64, "flags": 1}
|
||||
],
|
||||
"sleep": true
|
||||
},
|
||||
"usb": {
|
||||
"device_version": "1.0.1",
|
||||
"pid": "0x0433"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_tkl_ansi": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 2], "x": 3, "y": 0},
|
||||
{"matrix": [0, 3], "x": 4, "y": 0},
|
||||
{"matrix": [0, 4], "x": 5, "y": 0},
|
||||
{"matrix": [0, 5], "x": 6.5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 7.5, "y": 0},
|
||||
{"matrix": [0, 7], "x": 8.5, "y": 0},
|
||||
{"matrix": [0, 8], "x": 9.5, "y": 0},
|
||||
{"matrix": [0, 9], "x": 10, "y": 0},
|
||||
{"matrix": [0, 10], "x": 11, "y": 0},
|
||||
{"matrix": [0, 11], "x": 12, "y": 0},
|
||||
{"matrix": [0, 12], "x": 13, "y": 0},
|
||||
{"matrix": [0, 13], "x": 14, "y": 0},
|
||||
{"matrix": [0, 14], "x": 15.25, "y": 0},
|
||||
{"matrix": [0, 15], "x": 16.25, "y": 0},
|
||||
{"matrix": [0, 16], "x": 17.25, "y": 0},
|
||||
|
||||
{"matrix": [1, 0], "x": 0, "y": 1.25},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1.25},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1.25},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1.25},
|
||||
{"matrix": [1, 4], "x": 4, "y": 1.25},
|
||||
{"matrix": [1, 5], "x": 5, "y": 1.25},
|
||||
{"matrix": [1, 6], "x": 6, "y": 1.25},
|
||||
{"matrix": [1, 7], "x": 7, "y": 1.25},
|
||||
{"matrix": [1, 8], "x": 8, "y": 1.25},
|
||||
{"matrix": [1, 9], "x": 9, "y": 1.25},
|
||||
{"matrix": [1, 10], "x": 10, "y": 1.25},
|
||||
{"matrix": [1, 11], "x": 11, "y": 1.25},
|
||||
{"matrix": [1, 12], "x": 12, "y": 1.25},
|
||||
{"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
|
||||
{"matrix": [1, 14], "x": 15.25, "y": 1.25},
|
||||
{"matrix": [1, 15], "x": 16.25, "y": 1.25},
|
||||
{"matrix": [1, 16], "x": 17.25, "y": 1.25},
|
||||
|
||||
{"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 2.25},
|
||||
{"matrix": [2, 2], "x": 2.5, "y": 2.25},
|
||||
{"matrix": [2, 3], "x": 3.5, "y": 2.25},
|
||||
{"matrix": [2, 4], "x": 4.5, "y": 2.25},
|
||||
{"matrix": [2, 5], "x": 5.5, "y": 2.25},
|
||||
{"matrix": [2, 6], "x": 6.5, "y": 2.25},
|
||||
{"matrix": [2, 7], "x": 7.5, "y": 2.25},
|
||||
{"matrix": [2, 8], "x": 8.5, "y": 2.25},
|
||||
{"matrix": [2, 9], "x": 9.5, "y": 2.25},
|
||||
{"matrix": [2, 10], "x": 10.5, "y": 2.25},
|
||||
{"matrix": [2, 11], "x": 11.5, "y": 2.25},
|
||||
{"matrix": [2, 12], "x": 12.5, "y": 2.25},
|
||||
{"matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
|
||||
{"matrix": [2, 14], "x": 15.25, "y": 2.25},
|
||||
{"matrix": [2, 15], "x": 16.25, "y": 2.25},
|
||||
{"matrix": [2, 16], "x": 17.25, "y": 2.25},
|
||||
|
||||
{"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
|
||||
{"matrix": [3, 1], "x": 1.75, "y": 3.25},
|
||||
{"matrix": [3, 2], "x": 2.75, "y": 3.25},
|
||||
{"matrix": [3, 3], "x": 3.75, "y": 3.25},
|
||||
{"matrix": [3, 4], "x": 4.75, "y": 3.25},
|
||||
{"matrix": [3, 5], "x": 5.75, "y": 3.25},
|
||||
{"matrix": [3, 6], "x": 6.75, "y": 3.25},
|
||||
{"matrix": [3, 7], "x": 7.75, "y": 3.25},
|
||||
{"matrix": [3, 8], "x": 8.75, "y": 3.25},
|
||||
{"matrix": [3, 9], "x": 9.75, "y": 3.25},
|
||||
{"matrix": [3, 10], "x": 10.75, "y": 3.25},
|
||||
{"matrix": [3, 11], "x": 11.75, "y": 3.25},
|
||||
{"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
|
||||
|
||||
{"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
|
||||
{"matrix": [4, 2], "x": 2.25, "y": 4.25},
|
||||
{"matrix": [4, 3], "x": 3.25, "y": 4.25},
|
||||
{"matrix": [4, 4], "x": 4.25, "y": 4.25},
|
||||
{"matrix": [4, 5], "x": 5.25, "y": 4.25},
|
||||
{"matrix": [4, 6], "x": 6.25, "y": 4.25},
|
||||
{"matrix": [4, 7], "x": 7.25, "y": 4.25},
|
||||
{"matrix": [4, 8], "x": 8.25, "y": 4.25},
|
||||
{"matrix": [4, 9], "x": 9.25, "y": 4.25},
|
||||
{"matrix": [4, 10], "x": 10.25, "y": 4.25},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4.25},
|
||||
{"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 2.75},
|
||||
{"matrix": [4, 15], "x": 16.25, "y": 4.25},
|
||||
|
||||
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
|
||||
{"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
|
||||
{"matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
|
||||
{"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25},
|
||||
{"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25},
|
||||
{"matrix": [5, 12], "x": 12.5, "y": 5.25, "w": 1.25},
|
||||
{"matrix": [5, 13], "x": 13.75, "y": 5.25, "w": 1.25},
|
||||
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"matrix": [5, 15], "x": 16.25, "y": 5.25},
|
||||
{"matrix": [5, 16], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
64
keyboards/keychron/c3_pro/ansi/rgb/keymaps/default/keymap.c
Normal file
64
keyboards/keychron/c3_pro/ansi/rgb/keymaps/default/keymap.c
Normal file
@ -0,0 +1,64 @@
|
||||
/* Copyright 2024 @ Keychron (https://www.keychron.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 QMK_KEYBOARD_H
|
||||
|
||||
// clang-format off
|
||||
|
||||
enum layers{
|
||||
MAC_BASE,
|
||||
MAC_FN,
|
||||
WIN_BASE,
|
||||
WIN_FN,
|
||||
};
|
||||
|
||||
#define KC_TASK LGUI(KC_TAB)
|
||||
#define KC_FLXP LGUI(KC_E)
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[MAC_BASE] = LAYOUT_tkl_ansi(
|
||||
KC_ESC, KC_BRID, KC_BRIU, _______, _______, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_NO, KC_TRNS, RM_NEXT,
|
||||
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_LOPT, KC_LCMD, KC_SPC, KC_RCMD, MO(MAC_FN), KC_APP, KC_RCTL,KC_LEFT, KC_DOWN, KC_RGHT ),
|
||||
|
||||
[MAC_FN] = LAYOUT_tkl_ansi(
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
KC_OSSW, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ),
|
||||
|
||||
[WIN_BASE] = 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_SCROLL_LOCK,KC_PAUSE,
|
||||
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_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_APP, KC_RCTL,KC_LEFT, KC_DOWN, KC_RGHT ),
|
||||
|
||||
[WIN_FN] = LAYOUT_tkl_ansi(
|
||||
_______, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RM_VALD, RM_VALU, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RM_NEXT,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
RM_TOGG, RM_NEXT, RM_VALU, RM_HUEU, RM_SATU, RM_SPDU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
KC_OSSW, RM_PREV, RM_VALD, RM_HUED, RM_SATD, RM_SPDD, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||
_______, GU_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______ ),
|
||||
};
|
135
keyboards/keychron/c3_pro/ansi/rgb/rgb.c
Normal file
135
keyboards/keychron/c3_pro/ansi/rgb/rgb.c
Normal file
@ -0,0 +1,135 @@
|
||||
/* Copyright 2024 @ Keychron (https://www.keychron.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"
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
// clang-format off
|
||||
const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = {
|
||||
/* Refer to SNLED27351 manual for these locations
|
||||
|
||||
* driver
|
||||
* | R location
|
||||
* | | G location
|
||||
* | | | B location
|
||||
* | | | | */
|
||||
{0, CB7_CA1, CB9_CA1, CB8_CA1},
|
||||
{0, CB7_CA3, CB9_CA3, CB8_CA3},
|
||||
{0, CB7_CA4, CB9_CA4, CB8_CA4},
|
||||
{0, CB7_CA5, CB9_CA5, CB8_CA5},
|
||||
{0, CB7_CA6, CB9_CA6, CB8_CA6},
|
||||
{0, CB7_CA7, CB9_CA7, CB8_CA7},
|
||||
{0, CB7_CA8, CB9_CA8, CB8_CA8},
|
||||
{0, CB7_CA9, CB9_CA9, CB8_CA9},
|
||||
{0, CB7_CA10, CB9_CA10, CB8_CA10},
|
||||
{0, CB7_CA11, CB9_CA11, CB8_CA11},
|
||||
{0, CB7_CA12, CB9_CA12, CB8_CA12},
|
||||
{0, CB7_CA13, CB9_CA13, CB8_CA13},
|
||||
{0, CB7_CA14, CB9_CA14, CB8_CA14},
|
||||
{0, CB7_CA15, CB9_CA15, CB8_CA15},
|
||||
{0, CB7_CA16, CB9_CA16, CB8_CA16},
|
||||
{1, CB7_CA16, CB9_CA16, CB8_CA16},
|
||||
|
||||
{0, CB4_CA1, CB6_CA1, CB5_CA1},
|
||||
{0, CB4_CA2, CB6_CA2, CB5_CA2},
|
||||
{0, CB4_CA3, CB6_CA3, CB5_CA3},
|
||||
{0, CB4_CA4, CB6_CA4, CB5_CA4},
|
||||
{0, CB4_CA5, CB6_CA5, CB5_CA5},
|
||||
{0, CB4_CA6, CB6_CA6, CB5_CA6},
|
||||
{0, CB4_CA7, CB6_CA7, CB5_CA7},
|
||||
{0, CB4_CA8, CB6_CA8, CB5_CA8},
|
||||
{0, CB4_CA9, CB6_CA9, CB5_CA9},
|
||||
{0, CB4_CA10, CB6_CA10, CB5_CA10},
|
||||
{0, CB4_CA11, CB6_CA11, CB5_CA11},
|
||||
{0, CB4_CA12, CB6_CA12, CB5_CA12},
|
||||
{0, CB4_CA13, CB6_CA13, CB5_CA13},
|
||||
{0, CB4_CA14, CB6_CA14, CB5_CA14},
|
||||
{0, CB4_CA15, CB6_CA15, CB5_CA15},
|
||||
{0, CB4_CA16, CB6_CA16, CB5_CA16},
|
||||
{1, CB7_CA13, CB9_CA13, CB8_CA13},
|
||||
|
||||
{0, CB1_CA1, CB3_CA1, CB2_CA1},
|
||||
{0, CB1_CA2, CB3_CA2, CB2_CA2},
|
||||
{0, CB1_CA3, CB3_CA3, CB2_CA3},
|
||||
{0, CB1_CA4, CB3_CA4, CB2_CA4},
|
||||
{0, CB1_CA5, CB3_CA5, CB2_CA5},
|
||||
{0, CB1_CA6, CB3_CA6, CB2_CA6},
|
||||
{0, CB1_CA7, CB3_CA7, CB2_CA7},
|
||||
{0, CB1_CA8, CB3_CA8, CB2_CA8},
|
||||
{0, CB1_CA9, CB3_CA9, CB2_CA9},
|
||||
{0, CB1_CA10, CB3_CA10, CB2_CA10},
|
||||
{0, CB1_CA11, CB3_CA11, CB2_CA11},
|
||||
{0, CB1_CA12, CB3_CA12, CB2_CA12},
|
||||
{0, CB1_CA13, CB3_CA13, CB2_CA13},
|
||||
{0, CB1_CA14, CB3_CA14, CB2_CA14},
|
||||
{0, CB1_CA15, CB3_CA15, CB2_CA15},
|
||||
{0, CB1_CA16, CB3_CA16, CB2_CA16},
|
||||
{1, CB7_CA15, CB9_CA15, CB8_CA15},
|
||||
|
||||
{1, CB7_CA1, CB9_CA1, CB8_CA1},
|
||||
{1, CB7_CA2, CB9_CA2, CB8_CA2},
|
||||
{1, CB7_CA3, CB9_CA3, CB8_CA3},
|
||||
{1, CB7_CA4, CB9_CA4, CB8_CA4},
|
||||
{1, CB7_CA5, CB9_CA5, CB8_CA5},
|
||||
{1, CB7_CA6, CB9_CA6, CB8_CA6},
|
||||
{1, CB7_CA7, CB9_CA7, CB8_CA7},
|
||||
{1, CB7_CA8, CB9_CA8, CB8_CA8},
|
||||
{1, CB7_CA9, CB9_CA9, CB8_CA9},
|
||||
{1, CB7_CA10, CB9_CA10, CB8_CA10},
|
||||
{1, CB7_CA11, CB9_CA11, CB8_CA11},
|
||||
{1, CB7_CA12, CB9_CA12, CB8_CA12},
|
||||
{1, CB7_CA14, CB9_CA14, CB8_CA14},
|
||||
|
||||
{1, CB1_CA1, CB3_CA1, CB2_CA1},
|
||||
{1, CB1_CA3, CB3_CA3, CB2_CA3},
|
||||
{1, CB1_CA4, CB3_CA4, CB2_CA4},
|
||||
{1, CB1_CA5, CB3_CA5, CB2_CA5},
|
||||
{1, CB1_CA6, CB3_CA6, CB2_CA6},
|
||||
{1, CB1_CA7, CB3_CA7, CB2_CA7},
|
||||
{1, CB1_CA8, CB3_CA8, CB2_CA8},
|
||||
{1, CB1_CA9, CB3_CA9, CB2_CA9},
|
||||
{1, CB1_CA10, CB3_CA10, CB2_CA10},
|
||||
{1, CB1_CA11, CB3_CA11, CB2_CA11},
|
||||
{1, CB1_CA12, CB3_CA12, CB2_CA12},
|
||||
{1, CB1_CA14, CB3_CA14, CB2_CA14},
|
||||
{1, CB1_CA16, CB3_CA16, CB2_CA16},
|
||||
|
||||
{1, CB4_CA1, CB6_CA1, CB5_CA1},
|
||||
{1, CB4_CA2, CB6_CA2, CB5_CA2},
|
||||
{1, CB4_CA3, CB6_CA3, CB5_CA3},
|
||||
{1, CB4_CA7, CB6_CA7, CB5_CA7},
|
||||
{1, CB4_CA11, CB6_CA11, CB5_CA11},
|
||||
{1, CB4_CA12, CB6_CA12, CB5_CA12},
|
||||
{1, CB4_CA13, CB6_CA13, CB5_CA13},
|
||||
{1, CB4_CA14, CB6_CA14, CB5_CA14},
|
||||
{1, CB4_CA15, CB6_CA15, CB5_CA15},
|
||||
{1, CB4_CA16, CB6_CA16, CB5_CA16},
|
||||
{1, CB1_CA15, CB3_CA15, CB2_CA15},
|
||||
|
||||
{0, CB10_CA1, CB12_CA1, CB11_CA1},
|
||||
{0, CB10_CA2, CB12_CA2, CB11_CA2},
|
||||
{0, CB10_CA3, CB12_CA3, CB11_CA3},
|
||||
{0, CB10_CA4, CB12_CA4, CB11_CA4},
|
||||
{0, CB10_CA5, CB12_CA5, CB11_CA5},
|
||||
{0, CB10_CA6, CB12_CA6, CB11_CA6},
|
||||
{0, CB10_CA7, CB12_CA7, CB11_CA7},
|
||||
{0, CB10_CA8, CB12_CA8, CB11_CA8},
|
||||
{0, CB10_CA9, CB12_CA9, CB11_CA9},
|
||||
{0, CB10_CA10, CB12_CA10, CB11_CA10},
|
||||
{0, CB10_CA11, CB12_CA11, CB11_CA11},
|
||||
{0, CB10_CA12, CB12_CA12, CB11_CA12},
|
||||
};
|
||||
#endif
|
112
keyboards/keychron/c3_pro/c3_pro.c
Normal file
112
keyboards/keychron/c3_pro/c3_pro.c
Normal file
@ -0,0 +1,112 @@
|
||||
/* Copyright 2024 @ Keychron (https://www.keychron.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 "c3_pro.h"
|
||||
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||
if (!process_record_user(keycode, record)) {
|
||||
return false;
|
||||
}
|
||||
switch (keycode) {
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
case QK_RGB_MATRIX_TOGGLE:
|
||||
if (record->event.pressed) {
|
||||
switch (rgb_matrix_get_flags()) {
|
||||
case LED_FLAG_ALL: {
|
||||
rgb_matrix_set_flags(LED_FLAG_NONE);
|
||||
rgb_matrix_set_color_all(0, 0, 0);
|
||||
} break;
|
||||
default: {
|
||||
rgb_matrix_set_flags(LED_FLAG_ALL);
|
||||
} break;
|
||||
}
|
||||
}
|
||||
if (!rgb_matrix_is_enabled()) {
|
||||
rgb_matrix_set_flags(LED_FLAG_ALL);
|
||||
rgb_matrix_enable();
|
||||
}
|
||||
return false;
|
||||
#endif
|
||||
#ifdef LED_MATRIX_ENABLE
|
||||
case QK_LED_MATRIX_TOGGLE:
|
||||
if (record->event.pressed) {
|
||||
switch (led_matrix_get_flags()) {
|
||||
case LED_FLAG_ALL: {
|
||||
led_matrix_set_flags(LED_FLAG_NONE);
|
||||
led_matrix_set_value_all(0);
|
||||
} break;
|
||||
default: {
|
||||
led_matrix_set_flags(LED_FLAG_ALL);
|
||||
} break;
|
||||
}
|
||||
}
|
||||
if (!led_matrix_is_enabled()) {
|
||||
led_matrix_set_flags(LED_FLAG_ALL);
|
||||
led_matrix_enable();
|
||||
}
|
||||
return false;
|
||||
#endif
|
||||
case KC_OSSW:
|
||||
if (record->event.pressed) {
|
||||
default_layer_xor(1U << 0);
|
||||
default_layer_xor(1U << 2);
|
||||
eeconfig_update_default_layer(default_layer_state);
|
||||
}
|
||||
return false;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX)
|
||||
|
||||
bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
|
||||
if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) {
|
||||
return false;
|
||||
}
|
||||
// RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue);
|
||||
|
||||
if (host_keyboard_led_state().caps_lock) {
|
||||
RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 255, 255, 255);
|
||||
} else {
|
||||
if (!rgb_matrix_get_flags()) {
|
||||
RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif // RGB_MATRIX_ENABLE && CAPS_LOCK_LED_INDEX
|
||||
|
||||
#if defined(LED_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX)
|
||||
|
||||
bool led_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
|
||||
if (!led_matrix_indicators_advanced_user(led_min, led_max)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (host_keyboard_led_state().caps_lock) {
|
||||
led_matrix_set_value(CAPS_LOCK_LED_INDEX, 255);
|
||||
|
||||
} else {
|
||||
if (!led_matrix_get_flags()) {
|
||||
led_matrix_set_value(CAPS_LOCK_LED_INDEX, 0);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif // LED_MATRIX_ENABLE && CAPS_LOCK_LED_INDEX
|
25
keyboards/keychron/c3_pro/c3_pro.h
Normal file
25
keyboards/keychron/c3_pro/c3_pro.h
Normal file
@ -0,0 +1,25 @@
|
||||
/* Copyright 2024 @ Keychron (https://www.keychron.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
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
enum my_keycodes {
|
||||
KC_OS_SWITCH = QK_KB_11,
|
||||
};
|
||||
|
||||
#define KC_OSSW KC_OS_SWITCH
|
24
keyboards/keychron/c3_pro/config.h
Normal file
24
keyboards/keychron/c3_pro/config.h
Normal file
@ -0,0 +1,24 @@
|
||||
/* Copyright 2024 @ Keychron(https://www.keychron.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
|
||||
|
||||
/* I2C driver Configuration */
|
||||
#define I2C1_SCL_PIN B8
|
||||
#define I2C1_SDA_PIN B9
|
||||
#define I2C1_CLOCK_SPEED 400000
|
||||
#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
|
||||
|
21
keyboards/keychron/c3_pro/halconf.h
Normal file
21
keyboards/keychron/c3_pro/halconf.h
Normal file
@ -0,0 +1,21 @@
|
||||
/* Copyright 2024 @ Keychron (https://www.keychron.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 HAL_USE_I2C TRUE
|
||||
|
||||
#include_next <halconf.h>
|
26
keyboards/keychron/c3_pro/info.json
Normal file
26
keyboards/keychron/c3_pro/info.json
Normal file
@ -0,0 +1,26 @@
|
||||
{
|
||||
"manufacturer": "Keychron",
|
||||
"maintainer": "Joe",
|
||||
"bootloader": "stm32-dfu",
|
||||
"community_layouts": ["tkl_ansi"],
|
||||
"diode_direction": "ROW2COL",
|
||||
"eeprom": {
|
||||
"wear_leveling": {
|
||||
"backing_size": 4096
|
||||
}
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"processor": "STM32F401",
|
||||
"url": "https://github.com/Keychron",
|
||||
"usb": {
|
||||
"device_version": "1.0.1",
|
||||
"vid": "0x3434"
|
||||
}
|
||||
}
|
28
keyboards/keychron/c3_pro/mcuconf.h
Normal file
28
keyboards/keychron/c3_pro/mcuconf.h
Normal file
@ -0,0 +1,28 @@
|
||||
/* Copyright 2024 @ Keychron (https://www.keychron.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
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_HSECLK
|
||||
#define STM32_HSECLK 16000000U
|
||||
|
||||
#undef STM32_PLLM_VALUE
|
||||
#define STM32_PLLM_VALUE 8
|
||||
|
||||
#undef STM32_I2C_USE_I2C1
|
||||
#define STM32_I2C_USE_I2C1 TRUE
|
28
keyboards/keychron/c3_pro/readme.md
Normal file
28
keyboards/keychron/c3_pro/readme.md
Normal file
@ -0,0 +1,28 @@
|
||||
# Keychron C3 Pro
|
||||
|
||||

|
||||
|
||||
A customizable 87% keyboard.
|
||||
|
||||
* Keyboard Maintainer: [Keychron](https://github.com/keychron)
|
||||
* Hardware Supported: Keychron C3 Pro
|
||||
* Hardware Availability: [Keychron](https://www.keychron.com/)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make keychron/c3_pro/ansi/red:default
|
||||
make keychron/c3_pro/ansi/rgb:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make keychron/c3_pro/ansi/red:default:flash
|
||||
make keychron/c3_pro/ansi/rgb:default:flash
|
||||
|
||||
## bootloader
|
||||
|
||||
Enter the bootloader in two ways:
|
||||
|
||||
* **Bootmagic reset**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard.
|
||||
* **Physical reset button**: Briefly press the RESET button under the spacebar.
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
@ -25,11 +25,6 @@ enum layer_names {
|
||||
_FN,
|
||||
};
|
||||
|
||||
enum custom_keycodes {
|
||||
KC_PRVWD = SAFE_RANGE,
|
||||
KC_NXTWD
|
||||
};
|
||||
|
||||
#define LOWER MO(_LOWER)
|
||||
#define RAISE MO(_RAISE)
|
||||
#define FN MO(_FN)
|
||||
@ -47,6 +42,9 @@ enum custom_keycodes {
|
||||
#define KC_COLMK PDF(_COLEMAK)
|
||||
#define KC_HRM PDF(_HRM)
|
||||
|
||||
#define KC_PRVWD LCTL(KC_LEFT)
|
||||
#define KC_NXTWD LCTL(KC_RGHT)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
||||
* QWERTY
|
||||
@ -186,27 +184,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
_______,_______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case KC_PRVWD:
|
||||
if (record->event.pressed) {
|
||||
register_mods(mod_config(MOD_LCTL));
|
||||
register_code(KC_LEFT);
|
||||
} else {
|
||||
unregister_mods(mod_config(MOD_LCTL));
|
||||
unregister_code(KC_LEFT);
|
||||
}
|
||||
break;
|
||||
case KC_NXTWD:
|
||||
if (record->event.pressed) {
|
||||
register_mods(mod_config(MOD_LCTL));
|
||||
register_code(KC_RIGHT);
|
||||
} else {
|
||||
unregister_mods(mod_config(MOD_LCTL));
|
||||
unregister_code(KC_RIGHT);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
@ -23,8 +23,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
KC_DEL , 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_MPLY,
|
||||
KC_F13 , 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_F14 , 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_F15 , 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_PIPE, KC_ENT , KC_PGUP,
|
||||
KC_F16 , KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_BSLS, KC_UP , KC_PGDN,
|
||||
KC_F15 , KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT , KC_PGUP,
|
||||
KC_F16 , KC_LSFT, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP , KC_PGDN,
|
||||
KC_F17 , KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[1] = LAYOUT_all(
|
||||
|
@ -25,18 +25,24 @@
|
||||
"caps_lock": "GP1",
|
||||
"scroll_lock": "GP2"
|
||||
},
|
||||
"layout_aliases": {
|
||||
"LAYOUT_all": "LAYOUT_ansi_tsangan_split_bs_rshift"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"LAYOUT_ansi_tsangan": {
|
||||
"layout": [
|
||||
{"label": "K00", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"label": "K01", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "K02", "matrix": [0, 2], "x": 3, "y": 0},
|
||||
{"label": "K03", "matrix": [0, 3], "x": 4, "y": 0},
|
||||
{"label": "K04", "matrix": [0, 4], "x": 5, "y": 0},
|
||||
|
||||
{"label": "K05", "matrix": [0, 5], "x": 6.5, "y": 0},
|
||||
{"label": "K06", "matrix": [0, 6], "x": 7.5, "y": 0},
|
||||
{"label": "K07", "matrix": [0, 7], "x": 8.5, "y": 0},
|
||||
{"label": "K08", "matrix": [0, 8], "x": 9.5, "y": 0},
|
||||
|
||||
{"label": "K09", "matrix": [0, 9], "x": 11, "y": 0},
|
||||
{"label": "K0A", "matrix": [0, 10], "x": 12, "y": 0},
|
||||
{"label": "K0B", "matrix": [0, 11], "x": 13, "y": 0},
|
||||
@ -55,8 +61,8 @@
|
||||
{"label": "K1A", "matrix": [1, 10], "x": 10, "y": 2},
|
||||
{"label": "K1B", "matrix": [1, 11], "x": 11, "y": 2},
|
||||
{"label": "K1C", "matrix": [1, 12], "x": 12, "y": 2},
|
||||
{"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2},
|
||||
{"label": "K1D", "matrix": [1, 13], "x": 14, "y": 2},
|
||||
{"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2, "w": 2},
|
||||
|
||||
{"label": "K1E", "matrix": [1, 14], "x": 15.25, "y": 2},
|
||||
{"label": "K1F", "matrix": [1, 15], "x": 16.25, "y": 2},
|
||||
{"label": "K1G", "matrix": [1, 16], "x": 17.25, "y": 2},
|
||||
@ -75,6 +81,106 @@
|
||||
{"label": "K2B", "matrix": [2, 11], "x": 11.5, "y": 3},
|
||||
{"label": "K2C", "matrix": [2, 12], "x": 12.5, "y": 3},
|
||||
{"label": "K2D", "matrix": [2, 13], "x": 13.5, "y": 3, "w": 1.5},
|
||||
|
||||
{"label": "K2E", "matrix": [2, 14], "x": 15.25, "y": 3},
|
||||
{"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 3},
|
||||
{"label": "K2G", "matrix": [2, 16], "x": 17.25, "y": 3},
|
||||
|
||||
{"label": "K30", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
|
||||
{"label": "K31", "matrix": [3, 1], "x": 1.75, "y": 4},
|
||||
{"label": "K32", "matrix": [3, 2], "x": 2.75, "y": 4},
|
||||
{"label": "K33", "matrix": [3, 3], "x": 3.75, "y": 4},
|
||||
{"label": "K34", "matrix": [3, 4], "x": 4.75, "y": 4},
|
||||
{"label": "K35", "matrix": [3, 5], "x": 5.75, "y": 4},
|
||||
{"label": "K36", "matrix": [3, 6], "x": 6.75, "y": 4},
|
||||
{"label": "K37", "matrix": [3, 7], "x": 7.75, "y": 4},
|
||||
{"label": "K38", "matrix": [3, 8], "x": 8.75, "y": 4},
|
||||
{"label": "K39", "matrix": [3, 9], "x": 9.75, "y": 4},
|
||||
{"label": "K3A", "matrix": [3, 10], "x": 10.75, "y": 4},
|
||||
{"label": "K3B", "matrix": [3, 11], "x": 11.75, "y": 4},
|
||||
{"label": "K3D", "matrix": [3, 13], "x": 12.75, "y": 4, "w": 2.25},
|
||||
|
||||
{"label": "K40", "matrix": [4, 0], "x": 0, "y": 5, "w": 2.25},
|
||||
{"label": "K42", "matrix": [4, 2], "x": 2.25, "y": 5},
|
||||
{"label": "K43", "matrix": [4, 3], "x": 3.25, "y": 5},
|
||||
{"label": "K44", "matrix": [4, 4], "x": 4.25, "y": 5},
|
||||
{"label": "K45", "matrix": [4, 5], "x": 5.25, "y": 5},
|
||||
{"label": "K46", "matrix": [4, 6], "x": 6.25, "y": 5},
|
||||
{"label": "K47", "matrix": [4, 7], "x": 7.25, "y": 5},
|
||||
{"label": "K48", "matrix": [4, 8], "x": 8.25, "y": 5},
|
||||
{"label": "K49", "matrix": [4, 9], "x": 9.25, "y": 5},
|
||||
{"label": "K4A", "matrix": [4, 10], "x": 10.25, "y": 5},
|
||||
{"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 5},
|
||||
{"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 5, "w": 2.75},
|
||||
|
||||
{"label": "K4F", "matrix": [4, 15], "x": 16.25, "y": 5},
|
||||
|
||||
{"label": "K50", "matrix": [5, 0], "x": 0, "y": 6, "w": 1.5},
|
||||
{"label": "K51", "matrix": [5, 1], "x": 1.5, "y": 6},
|
||||
{"label": "K52", "matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.5},
|
||||
{"label": "K57", "matrix": [5, 7], "x": 4, "y": 6, "w": 7},
|
||||
{"label": "K5B", "matrix": [5, 11], "x": 11, "y": 6, "w": 1.5},
|
||||
{"label": "K5C", "matrix": [5, 12], "x": 12.5, "y": 6},
|
||||
{"label": "K5D", "matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5},
|
||||
|
||||
{"label": "K5E", "matrix": [5, 14], "x": 15.25, "y": 6},
|
||||
{"label": "K5F", "matrix": [5, 15], "x": 16.25, "y": 6},
|
||||
{"label": "K5G", "matrix": [5, 16], "x": 17.25, "y": 6}
|
||||
]
|
||||
},
|
||||
"LAYOUT_ansi_tsangan_split_rshift": {
|
||||
"layout": [
|
||||
{"label": "K00", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"label": "K01", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "K02", "matrix": [0, 2], "x": 3, "y": 0},
|
||||
{"label": "K03", "matrix": [0, 3], "x": 4, "y": 0},
|
||||
{"label": "K04", "matrix": [0, 4], "x": 5, "y": 0},
|
||||
|
||||
{"label": "K05", "matrix": [0, 5], "x": 6.5, "y": 0},
|
||||
{"label": "K06", "matrix": [0, 6], "x": 7.5, "y": 0},
|
||||
{"label": "K07", "matrix": [0, 7], "x": 8.5, "y": 0},
|
||||
{"label": "K08", "matrix": [0, 8], "x": 9.5, "y": 0},
|
||||
|
||||
{"label": "K09", "matrix": [0, 9], "x": 11, "y": 0},
|
||||
{"label": "K0A", "matrix": [0, 10], "x": 12, "y": 0},
|
||||
{"label": "K0B", "matrix": [0, 11], "x": 13, "y": 0},
|
||||
{"label": "K0C", "matrix": [0, 12], "x": 14, "y": 0},
|
||||
|
||||
{"label": "K10", "matrix": [1, 0], "x": 0, "y": 2},
|
||||
{"label": "K11", "matrix": [1, 1], "x": 1, "y": 2},
|
||||
{"label": "K12", "matrix": [1, 2], "x": 2, "y": 2},
|
||||
{"label": "K13", "matrix": [1, 3], "x": 3, "y": 2},
|
||||
{"label": "K14", "matrix": [1, 4], "x": 4, "y": 2},
|
||||
{"label": "K15", "matrix": [1, 5], "x": 5, "y": 2},
|
||||
{"label": "K16", "matrix": [1, 6], "x": 6, "y": 2},
|
||||
{"label": "K17", "matrix": [1, 7], "x": 7, "y": 2},
|
||||
{"label": "K18", "matrix": [1, 8], "x": 8, "y": 2},
|
||||
{"label": "K19", "matrix": [1, 9], "x": 9, "y": 2},
|
||||
{"label": "K1A", "matrix": [1, 10], "x": 10, "y": 2},
|
||||
{"label": "K1B", "matrix": [1, 11], "x": 11, "y": 2},
|
||||
{"label": "K1C", "matrix": [1, 12], "x": 12, "y": 2},
|
||||
{"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2, "w": 2},
|
||||
|
||||
{"label": "K1E", "matrix": [1, 14], "x": 15.25, "y": 2},
|
||||
{"label": "K1F", "matrix": [1, 15], "x": 16.25, "y": 2},
|
||||
{"label": "K1G", "matrix": [1, 16], "x": 17.25, "y": 2},
|
||||
|
||||
{"label": "K20", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
|
||||
{"label": "K21", "matrix": [2, 1], "x": 1.5, "y": 3},
|
||||
{"label": "K22", "matrix": [2, 2], "x": 2.5, "y": 3},
|
||||
{"label": "K23", "matrix": [2, 3], "x": 3.5, "y": 3},
|
||||
{"label": "K24", "matrix": [2, 4], "x": 4.5, "y": 3},
|
||||
{"label": "K25", "matrix": [2, 5], "x": 5.5, "y": 3},
|
||||
{"label": "K26", "matrix": [2, 6], "x": 6.5, "y": 3},
|
||||
{"label": "K27", "matrix": [2, 7], "x": 7.5, "y": 3},
|
||||
{"label": "K28", "matrix": [2, 8], "x": 8.5, "y": 3},
|
||||
{"label": "K29", "matrix": [2, 9], "x": 9.5, "y": 3},
|
||||
{"label": "K2A", "matrix": [2, 10], "x": 10.5, "y": 3},
|
||||
{"label": "K2B", "matrix": [2, 11], "x": 11.5, "y": 3},
|
||||
{"label": "K2C", "matrix": [2, 12], "x": 12.5, "y": 3},
|
||||
{"label": "K2D", "matrix": [2, 13], "x": 13.5, "y": 3, "w": 1.5},
|
||||
|
||||
{"label": "K2E", "matrix": [2, 14], "x": 15.25, "y": 3},
|
||||
{"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 3},
|
||||
{"label": "K2G", "matrix": [2, 16], "x": 17.25, "y": 3},
|
||||
@ -106,6 +212,7 @@
|
||||
{"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 5},
|
||||
{"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 5, "w": 1.75},
|
||||
{"label": "K4D", "matrix": [4, 13], "x": 14, "y": 5},
|
||||
|
||||
{"label": "K4F", "matrix": [4, 15], "x": 16.25, "y": 5},
|
||||
|
||||
{"label": "K50", "matrix": [5, 0], "x": 0, "y": 6, "w": 1.5},
|
||||
@ -115,6 +222,208 @@
|
||||
{"label": "K5B", "matrix": [5, 11], "x": 11, "y": 6, "w": 1.5},
|
||||
{"label": "K5C", "matrix": [5, 12], "x": 12.5, "y": 6},
|
||||
{"label": "K5D", "matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5},
|
||||
|
||||
{"label": "K5E", "matrix": [5, 14], "x": 15.25, "y": 6},
|
||||
{"label": "K5F", "matrix": [5, 15], "x": 16.25, "y": 6},
|
||||
{"label": "K5G", "matrix": [5, 16], "x": 17.25, "y": 6}
|
||||
]
|
||||
},
|
||||
"LAYOUT_ansi_tsangan_split_bs": {
|
||||
"layout": [
|
||||
{"label": "K00", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"label": "K01", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "K02", "matrix": [0, 2], "x": 3, "y": 0},
|
||||
{"label": "K03", "matrix": [0, 3], "x": 4, "y": 0},
|
||||
{"label": "K04", "matrix": [0, 4], "x": 5, "y": 0},
|
||||
|
||||
{"label": "K05", "matrix": [0, 5], "x": 6.5, "y": 0},
|
||||
{"label": "K06", "matrix": [0, 6], "x": 7.5, "y": 0},
|
||||
{"label": "K07", "matrix": [0, 7], "x": 8.5, "y": 0},
|
||||
{"label": "K08", "matrix": [0, 8], "x": 9.5, "y": 0},
|
||||
|
||||
{"label": "K09", "matrix": [0, 9], "x": 11, "y": 0},
|
||||
{"label": "K0A", "matrix": [0, 10], "x": 12, "y": 0},
|
||||
{"label": "K0B", "matrix": [0, 11], "x": 13, "y": 0},
|
||||
{"label": "K0C", "matrix": [0, 12], "x": 14, "y": 0},
|
||||
|
||||
{"label": "K10", "matrix": [1, 0], "x": 0, "y": 2},
|
||||
{"label": "K11", "matrix": [1, 1], "x": 1, "y": 2},
|
||||
{"label": "K12", "matrix": [1, 2], "x": 2, "y": 2},
|
||||
{"label": "K13", "matrix": [1, 3], "x": 3, "y": 2},
|
||||
{"label": "K14", "matrix": [1, 4], "x": 4, "y": 2},
|
||||
{"label": "K15", "matrix": [1, 5], "x": 5, "y": 2},
|
||||
{"label": "K16", "matrix": [1, 6], "x": 6, "y": 2},
|
||||
{"label": "K17", "matrix": [1, 7], "x": 7, "y": 2},
|
||||
{"label": "K18", "matrix": [1, 8], "x": 8, "y": 2},
|
||||
{"label": "K19", "matrix": [1, 9], "x": 9, "y": 2},
|
||||
{"label": "K1A", "matrix": [1, 10], "x": 10, "y": 2},
|
||||
{"label": "K1B", "matrix": [1, 11], "x": 11, "y": 2},
|
||||
{"label": "K1C", "matrix": [1, 12], "x": 12, "y": 2},
|
||||
{"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2},
|
||||
{"label": "K1D", "matrix": [1, 13], "x": 14, "y": 2},
|
||||
|
||||
{"label": "K1E", "matrix": [1, 14], "x": 15.25, "y": 2},
|
||||
{"label": "K1F", "matrix": [1, 15], "x": 16.25, "y": 2},
|
||||
{"label": "K1G", "matrix": [1, 16], "x": 17.25, "y": 2},
|
||||
|
||||
{"label": "K20", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
|
||||
{"label": "K21", "matrix": [2, 1], "x": 1.5, "y": 3},
|
||||
{"label": "K22", "matrix": [2, 2], "x": 2.5, "y": 3},
|
||||
{"label": "K23", "matrix": [2, 3], "x": 3.5, "y": 3},
|
||||
{"label": "K24", "matrix": [2, 4], "x": 4.5, "y": 3},
|
||||
{"label": "K25", "matrix": [2, 5], "x": 5.5, "y": 3},
|
||||
{"label": "K26", "matrix": [2, 6], "x": 6.5, "y": 3},
|
||||
{"label": "K27", "matrix": [2, 7], "x": 7.5, "y": 3},
|
||||
{"label": "K28", "matrix": [2, 8], "x": 8.5, "y": 3},
|
||||
{"label": "K29", "matrix": [2, 9], "x": 9.5, "y": 3},
|
||||
{"label": "K2A", "matrix": [2, 10], "x": 10.5, "y": 3},
|
||||
{"label": "K2B", "matrix": [2, 11], "x": 11.5, "y": 3},
|
||||
{"label": "K2C", "matrix": [2, 12], "x": 12.5, "y": 3},
|
||||
{"label": "K2D", "matrix": [2, 13], "x": 13.5, "y": 3, "w": 1.5},
|
||||
|
||||
{"label": "K2E", "matrix": [2, 14], "x": 15.25, "y": 3},
|
||||
{"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 3},
|
||||
{"label": "K2G", "matrix": [2, 16], "x": 17.25, "y": 3},
|
||||
|
||||
{"label": "K30", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
|
||||
{"label": "K31", "matrix": [3, 1], "x": 1.75, "y": 4},
|
||||
{"label": "K32", "matrix": [3, 2], "x": 2.75, "y": 4},
|
||||
{"label": "K33", "matrix": [3, 3], "x": 3.75, "y": 4},
|
||||
{"label": "K34", "matrix": [3, 4], "x": 4.75, "y": 4},
|
||||
{"label": "K35", "matrix": [3, 5], "x": 5.75, "y": 4},
|
||||
{"label": "K36", "matrix": [3, 6], "x": 6.75, "y": 4},
|
||||
{"label": "K37", "matrix": [3, 7], "x": 7.75, "y": 4},
|
||||
{"label": "K38", "matrix": [3, 8], "x": 8.75, "y": 4},
|
||||
{"label": "K39", "matrix": [3, 9], "x": 9.75, "y": 4},
|
||||
{"label": "K3A", "matrix": [3, 10], "x": 10.75, "y": 4},
|
||||
{"label": "K3B", "matrix": [3, 11], "x": 11.75, "y": 4},
|
||||
{"label": "K3D", "matrix": [3, 13], "x": 12.75, "y": 4, "w": 2.25},
|
||||
|
||||
{"label": "K40", "matrix": [4, 0], "x": 0, "y": 5, "w": 2.25},
|
||||
{"label": "K42", "matrix": [4, 2], "x": 2.25, "y": 5},
|
||||
{"label": "K43", "matrix": [4, 3], "x": 3.25, "y": 5},
|
||||
{"label": "K44", "matrix": [4, 4], "x": 4.25, "y": 5},
|
||||
{"label": "K45", "matrix": [4, 5], "x": 5.25, "y": 5},
|
||||
{"label": "K46", "matrix": [4, 6], "x": 6.25, "y": 5},
|
||||
{"label": "K47", "matrix": [4, 7], "x": 7.25, "y": 5},
|
||||
{"label": "K48", "matrix": [4, 8], "x": 8.25, "y": 5},
|
||||
{"label": "K49", "matrix": [4, 9], "x": 9.25, "y": 5},
|
||||
{"label": "K4A", "matrix": [4, 10], "x": 10.25, "y": 5},
|
||||
{"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 5},
|
||||
{"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 5, "w": 2.75},
|
||||
|
||||
{"label": "K4F", "matrix": [4, 15], "x": 16.25, "y": 5},
|
||||
|
||||
{"label": "K50", "matrix": [5, 0], "x": 0, "y": 6, "w": 1.5},
|
||||
{"label": "K51", "matrix": [5, 1], "x": 1.5, "y": 6},
|
||||
{"label": "K52", "matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.5},
|
||||
{"label": "K57", "matrix": [5, 7], "x": 4, "y": 6, "w": 7},
|
||||
{"label": "K5B", "matrix": [5, 11], "x": 11, "y": 6, "w": 1.5},
|
||||
{"label": "K5C", "matrix": [5, 12], "x": 12.5, "y": 6},
|
||||
{"label": "K5D", "matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5},
|
||||
|
||||
{"label": "K5E", "matrix": [5, 14], "x": 15.25, "y": 6},
|
||||
{"label": "K5F", "matrix": [5, 15], "x": 16.25, "y": 6},
|
||||
{"label": "K5G", "matrix": [5, 16], "x": 17.25, "y": 6}
|
||||
]
|
||||
},
|
||||
"LAYOUT_ansi_tsangan_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label": "K00", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"label": "K01", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "K02", "matrix": [0, 2], "x": 3, "y": 0},
|
||||
{"label": "K03", "matrix": [0, 3], "x": 4, "y": 0},
|
||||
{"label": "K04", "matrix": [0, 4], "x": 5, "y": 0},
|
||||
|
||||
{"label": "K05", "matrix": [0, 5], "x": 6.5, "y": 0},
|
||||
{"label": "K06", "matrix": [0, 6], "x": 7.5, "y": 0},
|
||||
{"label": "K07", "matrix": [0, 7], "x": 8.5, "y": 0},
|
||||
{"label": "K08", "matrix": [0, 8], "x": 9.5, "y": 0},
|
||||
|
||||
{"label": "K09", "matrix": [0, 9], "x": 11, "y": 0},
|
||||
{"label": "K0A", "matrix": [0, 10], "x": 12, "y": 0},
|
||||
{"label": "K0B", "matrix": [0, 11], "x": 13, "y": 0},
|
||||
{"label": "K0C", "matrix": [0, 12], "x": 14, "y": 0},
|
||||
|
||||
{"label": "K10", "matrix": [1, 0], "x": 0, "y": 2},
|
||||
{"label": "K11", "matrix": [1, 1], "x": 1, "y": 2},
|
||||
{"label": "K12", "matrix": [1, 2], "x": 2, "y": 2},
|
||||
{"label": "K13", "matrix": [1, 3], "x": 3, "y": 2},
|
||||
{"label": "K14", "matrix": [1, 4], "x": 4, "y": 2},
|
||||
{"label": "K15", "matrix": [1, 5], "x": 5, "y": 2},
|
||||
{"label": "K16", "matrix": [1, 6], "x": 6, "y": 2},
|
||||
{"label": "K17", "matrix": [1, 7], "x": 7, "y": 2},
|
||||
{"label": "K18", "matrix": [1, 8], "x": 8, "y": 2},
|
||||
{"label": "K19", "matrix": [1, 9], "x": 9, "y": 2},
|
||||
{"label": "K1A", "matrix": [1, 10], "x": 10, "y": 2},
|
||||
{"label": "K1B", "matrix": [1, 11], "x": 11, "y": 2},
|
||||
{"label": "K1C", "matrix": [1, 12], "x": 12, "y": 2},
|
||||
{"label": "K0D", "matrix": [0, 13], "x": 13, "y": 2},
|
||||
{"label": "K1D", "matrix": [1, 13], "x": 14, "y": 2},
|
||||
|
||||
{"label": "K1E", "matrix": [1, 14], "x": 15.25, "y": 2},
|
||||
{"label": "K1F", "matrix": [1, 15], "x": 16.25, "y": 2},
|
||||
{"label": "K1G", "matrix": [1, 16], "x": 17.25, "y": 2},
|
||||
|
||||
{"label": "K20", "matrix": [2, 0], "x": 0, "y": 3, "w": 1.5},
|
||||
{"label": "K21", "matrix": [2, 1], "x": 1.5, "y": 3},
|
||||
{"label": "K22", "matrix": [2, 2], "x": 2.5, "y": 3},
|
||||
{"label": "K23", "matrix": [2, 3], "x": 3.5, "y": 3},
|
||||
{"label": "K24", "matrix": [2, 4], "x": 4.5, "y": 3},
|
||||
{"label": "K25", "matrix": [2, 5], "x": 5.5, "y": 3},
|
||||
{"label": "K26", "matrix": [2, 6], "x": 6.5, "y": 3},
|
||||
{"label": "K27", "matrix": [2, 7], "x": 7.5, "y": 3},
|
||||
{"label": "K28", "matrix": [2, 8], "x": 8.5, "y": 3},
|
||||
{"label": "K29", "matrix": [2, 9], "x": 9.5, "y": 3},
|
||||
{"label": "K2A", "matrix": [2, 10], "x": 10.5, "y": 3},
|
||||
{"label": "K2B", "matrix": [2, 11], "x": 11.5, "y": 3},
|
||||
{"label": "K2C", "matrix": [2, 12], "x": 12.5, "y": 3},
|
||||
{"label": "K2D", "matrix": [2, 13], "x": 13.5, "y": 3, "w": 1.5},
|
||||
|
||||
{"label": "K2E", "matrix": [2, 14], "x": 15.25, "y": 3},
|
||||
{"label": "K2F", "matrix": [2, 15], "x": 16.25, "y": 3},
|
||||
{"label": "K2G", "matrix": [2, 16], "x": 17.25, "y": 3},
|
||||
|
||||
{"label": "K30", "matrix": [3, 0], "x": 0, "y": 4, "w": 1.75},
|
||||
{"label": "K31", "matrix": [3, 1], "x": 1.75, "y": 4},
|
||||
{"label": "K32", "matrix": [3, 2], "x": 2.75, "y": 4},
|
||||
{"label": "K33", "matrix": [3, 3], "x": 3.75, "y": 4},
|
||||
{"label": "K34", "matrix": [3, 4], "x": 4.75, "y": 4},
|
||||
{"label": "K35", "matrix": [3, 5], "x": 5.75, "y": 4},
|
||||
{"label": "K36", "matrix": [3, 6], "x": 6.75, "y": 4},
|
||||
{"label": "K37", "matrix": [3, 7], "x": 7.75, "y": 4},
|
||||
{"label": "K38", "matrix": [3, 8], "x": 8.75, "y": 4},
|
||||
{"label": "K39", "matrix": [3, 9], "x": 9.75, "y": 4},
|
||||
{"label": "K3A", "matrix": [3, 10], "x": 10.75, "y": 4},
|
||||
{"label": "K3B", "matrix": [3, 11], "x": 11.75, "y": 4},
|
||||
{"label": "K3D", "matrix": [3, 13], "x": 12.75, "y": 4, "w": 2.25},
|
||||
|
||||
{"label": "K40", "matrix": [4, 0], "x": 0, "y": 5, "w": 2.25},
|
||||
{"label": "K42", "matrix": [4, 2], "x": 2.25, "y": 5},
|
||||
{"label": "K43", "matrix": [4, 3], "x": 3.25, "y": 5},
|
||||
{"label": "K44", "matrix": [4, 4], "x": 4.25, "y": 5},
|
||||
{"label": "K45", "matrix": [4, 5], "x": 5.25, "y": 5},
|
||||
{"label": "K46", "matrix": [4, 6], "x": 6.25, "y": 5},
|
||||
{"label": "K47", "matrix": [4, 7], "x": 7.25, "y": 5},
|
||||
{"label": "K48", "matrix": [4, 8], "x": 8.25, "y": 5},
|
||||
{"label": "K49", "matrix": [4, 9], "x": 9.25, "y": 5},
|
||||
{"label": "K4A", "matrix": [4, 10], "x": 10.25, "y": 5},
|
||||
{"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 5},
|
||||
{"label": "K4C", "matrix": [4, 12], "x": 12.25, "y": 5, "w": 1.75},
|
||||
{"label": "K4D", "matrix": [4, 13], "x": 14, "y": 5},
|
||||
|
||||
{"label": "K4F", "matrix": [4, 15], "x": 16.25, "y": 5},
|
||||
|
||||
{"label": "K50", "matrix": [5, 0], "x": 0, "y": 6, "w": 1.5},
|
||||
{"label": "K51", "matrix": [5, 1], "x": 1.5, "y": 6},
|
||||
{"label": "K52", "matrix": [5, 2], "x": 2.5, "y": 6, "w": 1.5},
|
||||
{"label": "K57", "matrix": [5, 7], "x": 4, "y": 6, "w": 7},
|
||||
{"label": "K5B", "matrix": [5, 11], "x": 11, "y": 6, "w": 1.5},
|
||||
{"label": "K5C", "matrix": [5, 12], "x": 12.5, "y": 6},
|
||||
{"label": "K5D", "matrix": [5, 13], "x": 13.5, "y": 6, "w": 1.5},
|
||||
|
||||
{"label": "K5E", "matrix": [5, 14], "x": 15.25, "y": 6},
|
||||
{"label": "K5F", "matrix": [5, 15], "x": 16.25, "y": 6},
|
||||
{"label": "K5G", "matrix": [5, 16], "x": 17.25, "y": 6}
|
||||
|
25
keyboards/salane/ncr80alpsskfl/matrix_diagram.md
Normal file
25
keyboards/salane/ncr80alpsskfl/matrix_diagram.md
Normal file
@ -0,0 +1,25 @@
|
||||
# Matrix Diagram for Salane NCR80 ALPS SKFL
|
||||
|
||||
```
|
||||
┌───────┐
|
||||
2u Backspace │0D │
|
||||
└───────┘
|
||||
┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐
|
||||
│00 │ │01 │02 │03 │04 │ │05 │06 │07 │08 │ │09 │0A │0B │0C │
|
||||
└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘
|
||||
|
||||
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐
|
||||
│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │0D │1D │ │1E │1F │1G │
|
||||
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤
|
||||
│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2E │2F │2G │
|
||||
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘
|
||||
│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │
|
||||
├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐
|
||||
│40 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4C │4D │ │4F │
|
||||
├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐
|
||||
│50 │51 │52 │57 │5B │5C │5D │ │5E │5F │5G │
|
||||
└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘
|
||||
┌──────────┐
|
||||
2.75u RShift│4C │
|
||||
└──────────┘
|
||||
```
|
315
keyboards/shuguet/shu89/keyboard.json
Normal file
315
keyboards/shuguet/shu89/keyboard.json
Normal file
@ -0,0 +1,315 @@
|
||||
{
|
||||
"keyboard_name": "shu89",
|
||||
"manufacturer": "shuguet",
|
||||
"url": "https://github.com/shuguet/split89",
|
||||
"maintainer": "shuguet",
|
||||
"usb": {
|
||||
"vid": "0x5348",
|
||||
"pid": "0x0001",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"features": {
|
||||
"rgb_matrix": true,
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP19", "GP20", "GP18", "GP17", "GP15", "GP14", "GP13", "GP12", "GP11", "GP10"],
|
||||
"rows": ["GP1", "GP2", "GP3", "GP4", "GP5", "GP6"]
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "vendor",
|
||||
"pin": "GP7"
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"split": {
|
||||
"enabled": true,
|
||||
"serial": {
|
||||
"driver": "vendor",
|
||||
"pin": "GP9"
|
||||
},
|
||||
"handedness": {
|
||||
"pin": "GP0"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"right": {
|
||||
"cols": ["GP19", "GP20", "GP18", "GP17", "GP15", "GP14", "GP13", "GP12", "GP11", "GP10"],
|
||||
"rows": ["GP6", "GP5", "GP4", "GP3", "GP2", "GP1"]
|
||||
}
|
||||
}
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"bootloader": "rp2040",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 4], "x": 0, "y": 0},
|
||||
{"label": "F1", "matrix": [0, 5], "x": 2, "y": 0},
|
||||
{"label": "F2", "matrix": [0, 6], "x": 3, "y": 0},
|
||||
{"label": "F3", "matrix": [0, 7], "x": 4, "y": 0},
|
||||
{"label": "F4", "matrix": [0, 8], "x": 5, "y": 0},
|
||||
{"label": "F5", "matrix": [0, 9], "x": 6, "y": 0},
|
||||
|
||||
{"label": "F6", "matrix": [6, 0], "x": 10, "y": 0},
|
||||
{"label": "F7", "matrix": [6, 1], "x": 11, "y": 0},
|
||||
{"label": "F8", "matrix": [6, 2], "x": 12, "y": 0},
|
||||
{"label": "F9", "matrix": [6, 3], "x": 13.5, "y": 0},
|
||||
{"label": "F10", "matrix": [6, 4], "x": 14.5, "y": 0},
|
||||
{"label": "F11", "matrix": [6, 5], "x": 15.5, "y": 0},
|
||||
{"label": "F12", "matrix": [6, 6], "x": 16.5, "y": 0},
|
||||
{"label": "PrtSc", "matrix": [6, 7], "x": 17.75, "y": 0},
|
||||
{"label": "Scroll Lock", "matrix": [6, 8], "x": 18.75, "y": 0},
|
||||
{"label": "Pause", "matrix": [6, 9], "x": 19.75, "y": 0},
|
||||
|
||||
|
||||
{"label": "~", "matrix": [2, 4], "x": 0, "y": 1.5},
|
||||
{"label": "1!", "matrix": [1, 4], "x": 1, "y": 1.5},
|
||||
{"label": "2@", "matrix": [1, 5], "x": 2, "y": 1.5},
|
||||
{"label": "3#", "matrix": [1, 6], "x": 3, "y": 1.5},
|
||||
{"label": "4$", "matrix": [1, 7], "x": 4, "y": 1.5},
|
||||
{"label": "5%", "matrix": [1, 8], "x": 5, "y": 1.5},
|
||||
{"label": "6^", "matrix": [1, 9], "x": 6, "y": 1.5},
|
||||
|
||||
{"label": "7&", "matrix": [7, 0], "x": 9.5, "y": 1.5},
|
||||
{"label": "8*", "matrix": [7, 1], "x": 10.5, "y": 1.5},
|
||||
{"label": "9(", "matrix": [7, 2], "x": 11.5, "y": 1.5},
|
||||
{"label": "0)", "matrix": [7, 3], "x": 12.5, "y": 1.5},
|
||||
{"label": "-_", "matrix": [7, 4], "x": 13.5, "y": 1.5},
|
||||
{"label": "=+", "matrix": [7, 5], "x": 14.5, "y": 1.5},
|
||||
{"label": "Backspace", "matrix": [7, 6], "x": 15.5, "y": 1.5, "w": 2},
|
||||
{"label": "Insert", "matrix": [7, 7], "x": 17.75, "y": 1.5},
|
||||
{"label": "Home", "matrix": [7, 8], "x": 18.75, "y": 1.5},
|
||||
{"label": "PgUp", "matrix": [7, 9], "x": 19.75, "y": 1.5},
|
||||
|
||||
|
||||
{"label": "Tab", "matrix": [3, 4], "x": 0, "y": 2.5, "w": 1.5},
|
||||
{"label": "Q", "matrix": [2, 5], "x": 1.5, "y": 2.5},
|
||||
{"label": "W", "matrix": [2, 6], "x": 2.5, "y": 2.5},
|
||||
{"label": "E", "matrix": [2, 7], "x": 3.5, "y": 2.5},
|
||||
{"label": "R", "matrix": [2, 8], "x": 4.5, "y": 2.5},
|
||||
{"label": "T", "matrix": [2, 9], "x": 5.5, "y": 2.5},
|
||||
|
||||
{"label": "Y", "matrix": [9, 0], "x": 9, "y": 2.5},
|
||||
{"label": "U", "matrix": [8, 0], "x": 10, "y": 2.5},
|
||||
{"label": "I", "matrix": [8, 1], "x": 11, "y": 2.5},
|
||||
{"label": "O", "matrix": [8, 2], "x": 12, "y": 2.5},
|
||||
{"label": "P", "matrix": [8, 3], "x": 13, "y": 2.5},
|
||||
{"label": "{", "matrix": [8, 4], "x": 14, "y": 2.5},
|
||||
{"label": "}", "matrix": [8, 5], "x": 15, "y": 2.5},
|
||||
{"label": "|", "matrix": [8, 6], "x": 16, "y": 2.5, "w": 1.5},
|
||||
{"label": "Delete", "matrix": [8, 7], "x": 17.75, "y": 2.5},
|
||||
{"label": "End", "matrix": [8, 8], "x": 18.75, "y": 2.5},
|
||||
{"label": "PgDn", "matrix": [8, 9], "x": 19.75, "y": 2.5},
|
||||
|
||||
|
||||
{"label": "Caps Lock", "matrix": [4, 4], "x": 0, "y": 3.5, "w": 1.75},
|
||||
{"label": "A", "matrix": [3, 5], "x": 1.75, "y": 3.5},
|
||||
{"label": "S", "matrix": [3, 6], "x": 2.75, "y": 3.5},
|
||||
{"label": "D", "matrix": [3, 7], "x": 3.75, "y": 3.5},
|
||||
{"label": "F", "matrix": [3, 8], "x": 4.75, "y": 3.5},
|
||||
{"label": "G", "matrix": [3, 9], "x": 5.75, "y": 3.5},
|
||||
|
||||
{"label": "H", "matrix": [10, 0], "x": 9.25, "y": 3.5},
|
||||
{"label": "J", "matrix": [9, 1], "x": 10.25, "y": 3.5},
|
||||
{"label": "K", "matrix": [9, 2], "x": 11.25, "y": 3.5},
|
||||
{"label": "L", "matrix": [9, 3], "x": 12.25, "y": 3.5},
|
||||
{"label": ":", "matrix": [9, 4], "x": 13.25, "y": 3.5},
|
||||
{"label": "\"", "matrix": [9, 5], "x": 14.25, "y": 3.5},
|
||||
{"label": "Enter", "matrix": [9, 6], "x": 15.25, "y": 3.5, "w": 2.25},
|
||||
|
||||
|
||||
{"label": "Left Shift", "matrix": [5, 4], "x": 0, "y": 4.5, "w": 2.25},
|
||||
{"label": "Z", "matrix": [4, 5], "x": 2.25, "y": 4.5},
|
||||
{"label": "X", "matrix": [4, 6], "x": 3.25, "y": 4.5},
|
||||
{"label": "C", "matrix": [4, 7], "x": 4.25, "y": 4.5},
|
||||
{"label": "V", "matrix": [4, 8], "x": 5.25, "y": 4.5},
|
||||
{"label": "B", "matrix": [4, 9], "x": 6.25, "y": 4.5},
|
||||
|
||||
{"label": "N", "matrix": [11, 0], "x": 9.75, "y": 4.5},
|
||||
{"label": "M", "matrix": [10, 1], "x": 10.75, "y": 4.5},
|
||||
{"label": "<", "matrix": [10, 2], "x": 11.75, "y": 4.5},
|
||||
{"label": ">", "matrix": [10, 3], "x": 12.75, "y": 4.5},
|
||||
{"label": "?", "matrix": [10, 4], "x": 13.75, "y": 4.5},
|
||||
{"label": "Right Shift", "matrix": [10, 6], "x": 14.75, "y": 4.5, "w": 2.75},
|
||||
{"label": "Up", "matrix": [10, 8], "x": 18.75, "y": 4.5},
|
||||
|
||||
{"label": "Left Ctrl", "matrix": [5, 5], "x": 0, "y": 5.5, "w": 1.25},
|
||||
{"label": "Fn", "matrix": [5, 6], "x": 1.25, "y": 5.5, "w": 1.25},
|
||||
{"label": "Left Alt", "matrix": [5, 7], "x": 2.5, "y": 5.5, "w": 1.25},
|
||||
{"label": "Left Win", "matrix": [5, 8], "x": 3.75, "y": 5.5, "w": 1.25},
|
||||
{"label": "Left Space", "matrix": [5, 9], "x": 5, "y": 5.5, "w": 2.25},
|
||||
|
||||
{"label": "Right Space", "matrix": [11, 1], "x": 9.75, "y": 5.5, "w": 2.75},
|
||||
{"label": "Right Alt", "matrix": [11, 3], "x": 12.5, "y": 5.5, "w": 1.25},
|
||||
{"label": "Right Win", "matrix": [11, 4], "x": 13.75, "y": 5.5, "w": 1.25},
|
||||
{"label": "Menu", "matrix": [11, 5], "x": 15, "y": 5.5, "w": 1.25},
|
||||
{"label": "Right Ctrl", "matrix": [11, 6], "x": 16.25, "y": 5.5, "w": 1.25},
|
||||
{"label": "Left", "matrix": [11, 7], "x": 17.75, "y": 5.5},
|
||||
{"label": "Down", "matrix": [11, 8], "x": 18.75, "y": 5.5},
|
||||
{"label": "Right", "matrix": [11, 9], "x": 19.75, "y": 5.5}
|
||||
]
|
||||
}
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"driver": "ws2812",
|
||||
"split_count": [ 36, 53 ],
|
||||
"default": {
|
||||
"hue": 85,
|
||||
"val": 128
|
||||
},
|
||||
"animations": {
|
||||
"alphas_mods": true,
|
||||
"gradient_up_down": true,
|
||||
"gradient_left_right": true,
|
||||
"breathing": true,
|
||||
"band_sat": true,
|
||||
"band_val": true,
|
||||
"band_pinwheel_sat": true,
|
||||
"band_pinwheel_val": true,
|
||||
"band_spiral_sat": true,
|
||||
"band_spiral_val": true,
|
||||
"cycle_all": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_up_down": true,
|
||||
"cycle_out_in": true,
|
||||
"cycle_out_in_dual": true,
|
||||
"rainbow_moving_chevron": true,
|
||||
"cycle_pinwheel": true,
|
||||
"cycle_spiral": true,
|
||||
"dual_beacon": true,
|
||||
"rainbow_beacon": true,
|
||||
"rainbow_pinwheels": true,
|
||||
"flower_blooming": true,
|
||||
"raindrops": true,
|
||||
"jellybean_raindrops": true,
|
||||
"hue_breathing": true,
|
||||
"hue_pendulum": true,
|
||||
"hue_wave": true,
|
||||
"pixel_fractal": true,
|
||||
"pixel_flow": true,
|
||||
"pixel_rain": true,
|
||||
"typing_heatmap": true,
|
||||
"digital_rain": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_reactive": true,
|
||||
"solid_reactive_wide": true,
|
||||
"solid_reactive_multiwide": true,
|
||||
"solid_reactive_cross": true,
|
||||
"solid_reactive_multicross": true,
|
||||
"solid_reactive_nexus": true,
|
||||
"solid_reactive_multinexus": true,
|
||||
"splash": true,
|
||||
"multisplash": true,
|
||||
"solid_splash": true,
|
||||
"solid_multisplash": true,
|
||||
"starlight": true,
|
||||
"starlight_dual_hue": true,
|
||||
"starlight_dual_sat": true,
|
||||
"riverflow": true
|
||||
},
|
||||
"layout": [
|
||||
{"matrix": [0, 4], "x": 0, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 5], "x": 32, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 6], "x": 48, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 7], "x": 64, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 8], "x": 80, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 9], "x": 104, "y": 0, "flags": 4},
|
||||
|
||||
{"matrix": [1, 4], "x": 16, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 5], "x": 32, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 6], "x": 48, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 7], "x": 64, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 8], "x": 80, "y": 13, "flags": 4},
|
||||
{"matrix": [1, 9], "x": 96, "y": 13, "flags": 4},
|
||||
{"matrix": [2, 4], "x": 0, "y": 13, "flags": 4},
|
||||
|
||||
{"matrix": [2, 5], "x": 20, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 6], "x": 36, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 7], "x": 52, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 8], "x": 68, "y": 26, "flags": 4},
|
||||
{"matrix": [2, 9], "x": 84, "y": 26, "flags": 4},
|
||||
{"matrix": [3, 4], "x": 0, "y": 26, "flags": 4},
|
||||
|
||||
{"matrix": [3, 5], "x": 24, "y": 39, "flags": 4},
|
||||
{"matrix": [3, 6], "x": 40, "y": 39, "flags": 4},
|
||||
{"matrix": [3, 7], "x": 56, "y": 39, "flags": 4},
|
||||
{"matrix": [3, 8], "x": 72, "y": 39, "flags": 4},
|
||||
{"matrix": [3, 9], "x": 88, "y": 39, "flags": 4},
|
||||
{"matrix": [4, 4], "x": 0, "y": 39, "flags": 5},
|
||||
|
||||
{"matrix": [4, 5], "x": 28, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 6], "x": 44, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 7], "x": 60, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 8], "x": 76, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 9], "x": 92, "y": 51, "flags": 4},
|
||||
{"matrix": [5, 4], "x": 0, "y": 51, "flags": 5},
|
||||
|
||||
{"matrix": [5, 5], "x": 0, "y": 64, "flags": 5},
|
||||
{"matrix": [5, 6], "x": 20, "y": 64, "flags": 5},
|
||||
{"matrix": [5, 7], "x": 40, "y": 64, "flags": 5},
|
||||
{"matrix": [5, 8], "x": 60, "y": 64, "flags": 5},
|
||||
{"matrix": [5, 9], "x": 92, "y": 64, "flags": 4},
|
||||
|
||||
{"matrix": [6, 0], "x": 120, "y": 0, "flags": 4},
|
||||
{"matrix": [6, 1], "x": 136, "y": 0, "flags": 4},
|
||||
{"matrix": [6, 2], "x": 152, "y": 0, "flags": 4},
|
||||
{"matrix": [6, 3], "x": 168, "y": 0, "flags": 4},
|
||||
{"matrix": [6, 4], "x": 184, "y": 0, "flags": 4},
|
||||
{"matrix": [6, 5], "x": 200, "y": 0, "flags": 4},
|
||||
{"matrix": [6, 6], "x": 208, "y": 0, "flags": 4},
|
||||
{"matrix": [6, 7], "x": 216, "y": 0, "flags": 4},
|
||||
{"matrix": [6, 8], "x": 220, "y": 0, "flags": 4},
|
||||
{"matrix": [6, 9], "x": 224, "y": 0, "flags": 4},
|
||||
|
||||
{"matrix": [7, 0], "x": 112, "y": 13, "flags": 4},
|
||||
{"matrix": [7, 1], "x": 128, "y": 13, "flags": 4},
|
||||
{"matrix": [7, 2], "x": 144, "y": 13, "flags": 4},
|
||||
{"matrix": [7, 3], "x": 160, "y": 13, "flags": 4},
|
||||
{"matrix": [7, 4], "x": 176, "y": 13, "flags": 4},
|
||||
{"matrix": [7, 5], "x": 192, "y": 13, "flags": 4},
|
||||
{"matrix": [7, 6], "x": 208, "y": 13, "flags": 4},
|
||||
{"matrix": [7, 7], "x": 216, "y": 13, "flags": 4},
|
||||
{"matrix": [7, 8], "x": 220, "y": 13, "flags": 4},
|
||||
{"matrix": [7, 9], "x": 224, "y": 13, "flags": 4},
|
||||
|
||||
{"matrix": [8, 0], "x": 116, "y": 26, "flags": 4},
|
||||
{"matrix": [8, 1], "x": 132, "y": 26, "flags": 4},
|
||||
{"matrix": [8, 2], "x": 148, "y": 26, "flags": 4},
|
||||
{"matrix": [8, 3], "x": 164, "y": 26, "flags": 4},
|
||||
{"matrix": [8, 4], "x": 180, "y": 26, "flags": 4},
|
||||
{"matrix": [8, 5], "x": 196, "y": 26, "flags": 4},
|
||||
{"matrix": [8, 6], "x": 208, "y": 26, "flags": 4},
|
||||
{"matrix": [8, 7], "x": 216, "y": 26, "flags": 4},
|
||||
{"matrix": [8, 8], "x": 220, "y": 26, "flags": 4},
|
||||
{"matrix": [8, 9], "x": 224, "y": 26, "flags": 4},
|
||||
{"matrix": [9, 0], "x": 100, "y": 26, "flags": 4},
|
||||
|
||||
{"matrix": [9, 1], "x": 120, "y": 39, "flags": 4},
|
||||
{"matrix": [9, 2], "x": 136, "y": 39, "flags": 4},
|
||||
{"matrix": [9, 3], "x": 152, "y": 39, "flags": 4},
|
||||
{"matrix": [9, 4], "x": 168, "y": 39, "flags": 4},
|
||||
{"matrix": [9, 5], "x": 184, "y": 39, "flags": 4},
|
||||
{"matrix": [9, 6], "x": 200, "y": 39, "flags": 4},
|
||||
{"matrix": [10, 0], "x": 104, "y": 39, "flags": 4},
|
||||
|
||||
{"matrix": [10, 1], "x": 124, "y": 51, "flags": 4},
|
||||
{"matrix": [10, 2], "x": 140, "y": 51, "flags": 4},
|
||||
{"matrix": [10, 3], "x": 156, "y": 51, "flags": 4},
|
||||
{"matrix": [10, 4], "x": 172, "y": 51, "flags": 4},
|
||||
{"matrix": [10, 6], "x": 188, "y": 51, "flags": 5},
|
||||
{"matrix": [10, 8], "x": 216, "y": 51, "flags": 4},
|
||||
{"matrix": [11, 0], "x": 108, "y": 51, "flags": 4},
|
||||
|
||||
{"matrix": [11, 1], "x": 118, "y": 64, "flags": 4},
|
||||
{"matrix": [11, 3], "x": 144, "y": 64, "flags": 5},
|
||||
{"matrix": [11, 4], "x": 164, "y": 64, "flags": 5},
|
||||
{"matrix": [11, 5], "x": 184, "y": 64, "flags": 5},
|
||||
{"matrix": [11, 6], "x": 204, "y": 64, "flags": 5},
|
||||
{"matrix": [11, 7], "x": 216, "y": 64, "flags": 4},
|
||||
{"matrix": [11, 8], "x": 220, "y": 64, "flags": 4},
|
||||
{"matrix": [11, 9], "x": 224, "y": 64, "flags": 4}
|
||||
]
|
||||
}
|
||||
}
|
23
keyboards/shuguet/shu89/keymaps/default/keymap.json
Normal file
23
keyboards/shuguet/shu89/keymaps/default/keymap.json
Normal file
@ -0,0 +1,23 @@
|
||||
{
|
||||
"keyboard": "shuguet/shu89",
|
||||
"keymap": "default",
|
||||
"layout": "LAYOUT",
|
||||
"layers": [
|
||||
[
|
||||
"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", "MO(1)" , "KC_LALT", "KC_LGUI", "KC_SPACE" , "KC_SPACE" , "KC_RALT", "KC_RGUI", "KC_APP" , "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT"
|
||||
],
|
||||
[
|
||||
"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", "RGB_VAI", "RGB_VAD", "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS" , "KC_TRNS", "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_TOG" , "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
|
||||
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
|
||||
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS" , "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_VOLU",
|
||||
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", "KC_MPLY", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPRV", "KC_VOLD", "KC_MNXT"
|
||||
]
|
||||
]
|
||||
}
|
20
keyboards/shuguet/shu89/readme.md
Normal file
20
keyboards/shuguet/shu89/readme.md
Normal file
@ -0,0 +1,20 @@
|
||||
# SHU98
|
||||
|
||||
An 89-key split TKL with PCBs, 3D printed cases, powered by a pair of RP2040.
|
||||
|
||||
* Keyboard Maintainer: [shuguet](https://github.com/shuguet)
|
||||
* Based on handwiewd original Keyboard from [jurassic73](https://github.com/jurassic73/split89)
|
||||
* Hardware Supported: RP2040
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make shuguet/shu89:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make shuguet/shu89: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).
|
6
keyboards/takashicompany/klec_02/config.h
Normal file
6
keyboards/takashicompany/klec_02/config.h
Normal file
@ -0,0 +1,6 @@
|
||||
// Copyright 2024 takashicompany (@takashicompany)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define EE_HANDS
|
23
keyboards/trnthsn/e8ghtyneo/config.h
Normal file
23
keyboards/trnthsn/e8ghtyneo/config.h
Normal file
@ -0,0 +1,23 @@
|
||||
/*
|
||||
Copyright 2025 Tyson.Keebs
|
||||
|
||||
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 WS2812_SPI_DRIVER SPID2
|
||||
#define WS2812_SPI_MOSI_PAL_MODE 0
|
||||
#define WS2812_SPI_SCK_PAL_MODE 0
|
||||
#define WS2812_SPI_SCK_PIN B13
|
21
keyboards/trnthsn/e8ghtyneo/halconf.h
Normal file
21
keyboards/trnthsn/e8ghtyneo/halconf.h
Normal file
@ -0,0 +1,21 @@
|
||||
/* Copyright 2025 Tyson.Keebs
|
||||
*
|
||||
* 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_SPI TRUE
|
||||
|
||||
#include_next <halconf.h>
|
992
keyboards/trnthsn/e8ghtyneo/info.json
Normal file
992
keyboards/trnthsn/e8ghtyneo/info.json
Normal file
@ -0,0 +1,992 @@
|
||||
{
|
||||
"manufacturer": "Tyson.Keebs",
|
||||
"keyboard_name": "E8ghtyNeo",
|
||||
"maintainer": "trnthsn",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["A9", "A8", "B14", "B12", "B11", "B10", "B0", "A7", "A6", "A4", "A3", "A2", "A1", "A0", "C13", "B9", "B7"],
|
||||
"rows": ["B8", "A10", "B1", "A5", "C15", "C14"]
|
||||
},
|
||||
"rgblight": {
|
||||
"animations": {
|
||||
"alternating": true,
|
||||
"breathing": true,
|
||||
"christmas": true,
|
||||
"knight": true,
|
||||
"rainbow_mood": true,
|
||||
"rainbow_swirl": true,
|
||||
"snake": true,
|
||||
"static_gradient": true,
|
||||
"twinkle": true
|
||||
},
|
||||
"default": {
|
||||
"animation": "rainbow_mood"
|
||||
},
|
||||
"led_count": 4,
|
||||
"sleep": true
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "B15",
|
||||
"driver": "spi"
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "B3"
|
||||
},
|
||||
"url": "",
|
||||
"usb": {
|
||||
"vid": "0x5453",
|
||||
"pid": "0x3845",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"community_layouts": [
|
||||
"tkl_ansi_tsangan",
|
||||
"tkl_ansi_tsangan_split_bs_rshift",
|
||||
"tkl_iso_tsangan",
|
||||
"tkl_iso_tsangan_split_bs_rshift"
|
||||
],
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"label": "F1", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "F2", "matrix": [0, 2], "x": 3, "y": 0},
|
||||
{"label": "F3", "matrix": [0, 3], "x": 4, "y": 0},
|
||||
{"label": "F4", "matrix": [0, 4], "x": 5, "y": 0},
|
||||
|
||||
{"label": "F5", "matrix": [0, 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": [0, 14], "x": 15.25, "y": 0},
|
||||
{"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0},
|
||||
{"label": "Pause", "matrix": [0, 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": [0, 13], "x": 13, "y": 1.25},
|
||||
{"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25},
|
||||
|
||||
{"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25},
|
||||
{"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25},
|
||||
{"label": "Page Up", "matrix": [1, 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": [2, 14], "x": 15.25, "y": 2.25},
|
||||
{"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25},
|
||||
{"label": "Page Down", "matrix": [2, 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": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25},
|
||||
{"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25},
|
||||
|
||||
{"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
|
||||
{"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.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": 1.75},
|
||||
{"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25},
|
||||
|
||||
{"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25},
|
||||
|
||||
{"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25},
|
||||
{"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7},
|
||||
{"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25},
|
||||
{"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
|
||||
{"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25},
|
||||
{"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_ansi_tsangan": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"label": "F1", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "F2", "matrix": [0, 2], "x": 3, "y": 0},
|
||||
{"label": "F3", "matrix": [0, 3], "x": 4, "y": 0},
|
||||
{"label": "F4", "matrix": [0, 4], "x": 5, "y": 0},
|
||||
|
||||
{"label": "F5", "matrix": [0, 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": [0, 14], "x": 15.25, "y": 0},
|
||||
{"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0},
|
||||
{"label": "Pause", "matrix": [0, 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": [1, 14], "x": 15.25, "y": 1.25},
|
||||
{"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25},
|
||||
{"label": "Page Up", "matrix": [1, 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": [2, 14], "x": 15.25, "y": 2.25},
|
||||
{"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25},
|
||||
{"label": "Page Down", "matrix": [2, 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, 13], "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, 13], "x": 12.25, "y": 4.25, "w": 2.75},
|
||||
|
||||
{"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25},
|
||||
|
||||
{"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25},
|
||||
{"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7},
|
||||
{"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25},
|
||||
{"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
|
||||
{"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25},
|
||||
{"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_ansi_tsangan_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"label": "F1", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "F2", "matrix": [0, 2], "x": 3, "y": 0},
|
||||
{"label": "F3", "matrix": [0, 3], "x": 4, "y": 0},
|
||||
{"label": "F4", "matrix": [0, 4], "x": 5, "y": 0},
|
||||
|
||||
{"label": "F5", "matrix": [0, 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": [0, 14], "x": 15.25, "y": 0},
|
||||
{"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0},
|
||||
{"label": "Pause", "matrix": [0, 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": [0, 13], "x": 13, "y": 1.25},
|
||||
{"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25},
|
||||
|
||||
{"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25},
|
||||
{"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25},
|
||||
{"label": "Page Up", "matrix": [1, 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": [2, 14], "x": 15.25, "y": 2.25},
|
||||
{"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25},
|
||||
{"label": "Page Down", "matrix": [2, 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, 13], "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": 1.75},
|
||||
{"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25},
|
||||
|
||||
{"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25},
|
||||
|
||||
{"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25},
|
||||
{"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7},
|
||||
{"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"label": "GUI", "matrix": [5, 12], "x": 12.5, "y": 5.25},
|
||||
{"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
|
||||
{"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25},
|
||||
{"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_ansi_wkl": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"label": "F1", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "F2", "matrix": [0, 2], "x": 3, "y": 0},
|
||||
{"label": "F3", "matrix": [0, 3], "x": 4, "y": 0},
|
||||
{"label": "F4", "matrix": [0, 4], "x": 5, "y": 0},
|
||||
|
||||
{"label": "F5", "matrix": [0, 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": [0, 14], "x": 15.25, "y": 0},
|
||||
{"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0},
|
||||
{"label": "Pause", "matrix": [0, 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": [1, 14], "x": 15.25, "y": 1.25},
|
||||
{"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25},
|
||||
{"label": "Page Up", "matrix": [1, 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": [2, 14], "x": 15.25, "y": 2.25},
|
||||
{"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25},
|
||||
{"label": "Page Down", "matrix": [2, 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, 13], "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, 13], "x": 12.25, "y": 4.25, "w": 2.75},
|
||||
|
||||
{"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25},
|
||||
|
||||
{"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7},
|
||||
{"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
|
||||
{"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25},
|
||||
{"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_ansi_wkl_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"label": "F1", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "F2", "matrix": [0, 2], "x": 3, "y": 0},
|
||||
{"label": "F3", "matrix": [0, 3], "x": 4, "y": 0},
|
||||
{"label": "F4", "matrix": [0, 4], "x": 5, "y": 0},
|
||||
|
||||
{"label": "F5", "matrix": [0, 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": [0, 14], "x": 15.25, "y": 0},
|
||||
{"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0},
|
||||
{"label": "Pause", "matrix": [0, 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": [0, 13], "x": 13, "y": 1.25},
|
||||
{"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25},
|
||||
|
||||
{"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25},
|
||||
{"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25},
|
||||
{"label": "Page Up", "matrix": [1, 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": [2, 14], "x": 15.25, "y": 2.25},
|
||||
{"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25},
|
||||
{"label": "Page Down", "matrix": [2, 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, 13], "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": 1.75},
|
||||
{"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25},
|
||||
|
||||
{"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25},
|
||||
|
||||
{"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7},
|
||||
{"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
|
||||
{"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25},
|
||||
{"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_iso_tsangan": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"label": "F1", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "F2", "matrix": [0, 2], "x": 3, "y": 0},
|
||||
{"label": "F3", "matrix": [0, 3], "x": 4, "y": 0},
|
||||
{"label": "F4", "matrix": [0, 4], "x": 5, "y": 0},
|
||||
|
||||
{"label": "F5", "matrix": [0, 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": [0, 14], "x": 15.25, "y": 0},
|
||||
{"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0},
|
||||
{"label": "Pause", "matrix": [0, 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": [1, 14], "x": 15.25, "y": 1.25},
|
||||
{"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25},
|
||||
{"label": "Page Up", "matrix": [1, 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": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25},
|
||||
{"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25},
|
||||
{"label": "Page Down", "matrix": [2, 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": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25},
|
||||
{"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
|
||||
|
||||
{"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
|
||||
{"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.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, 13], "x": 12.25, "y": 4.25, "w": 2.75},
|
||||
|
||||
{"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25},
|
||||
|
||||
{"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25},
|
||||
{"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7},
|
||||
{"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25},
|
||||
{"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
|
||||
{"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25},
|
||||
{"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_iso_tsangan_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"label": "F1", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "F2", "matrix": [0, 2], "x": 3, "y": 0},
|
||||
{"label": "F3", "matrix": [0, 3], "x": 4, "y": 0},
|
||||
{"label": "F4", "matrix": [0, 4], "x": 5, "y": 0},
|
||||
|
||||
{"label": "F5", "matrix": [0, 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": [0, 14], "x": 15.25, "y": 0},
|
||||
{"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0},
|
||||
{"label": "Pause", "matrix": [0, 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": [0, 13], "x": 13, "y": 1.25},
|
||||
{"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25},
|
||||
|
||||
{"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25},
|
||||
{"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25},
|
||||
{"label": "Page Up", "matrix": [1, 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": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25},
|
||||
{"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25},
|
||||
{"label": "Page Down", "matrix": [2, 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": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25},
|
||||
{"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
|
||||
|
||||
{"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
|
||||
{"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.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": 1.75},
|
||||
{"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25},
|
||||
|
||||
{"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25},
|
||||
|
||||
{"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"label": "GUI", "matrix": [5, 1], "x": 1.5, "y": 5.25},
|
||||
{"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7},
|
||||
{"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"label": "Fn", "matrix": [5, 12], "x": 12.5, "y": 5.25},
|
||||
{"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
|
||||
{"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25},
|
||||
{"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_iso_wkl": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"label": "F1", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "F2", "matrix": [0, 2], "x": 3, "y": 0},
|
||||
{"label": "F3", "matrix": [0, 3], "x": 4, "y": 0},
|
||||
{"label": "F4", "matrix": [0, 4], "x": 5, "y": 0},
|
||||
|
||||
{"label": "F5", "matrix": [0, 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": [0, 14], "x": 15.25, "y": 0},
|
||||
{"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0},
|
||||
{"label": "Pause", "matrix": [0, 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": [1, 14], "x": 15.25, "y": 1.25},
|
||||
{"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25},
|
||||
{"label": "Page Up", "matrix": [1, 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": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25},
|
||||
{"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25},
|
||||
{"label": "Page Down", "matrix": [2, 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": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25},
|
||||
{"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
|
||||
|
||||
{"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
|
||||
{"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.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, 13], "x": 12.25, "y": 4.25, "w": 2.75},
|
||||
|
||||
{"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25},
|
||||
|
||||
{"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7},
|
||||
{"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
|
||||
{"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25},
|
||||
{"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_iso_wkl_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"label": "F1", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "F2", "matrix": [0, 2], "x": 3, "y": 0},
|
||||
{"label": "F3", "matrix": [0, 3], "x": 4, "y": 0},
|
||||
{"label": "F4", "matrix": [0, 4], "x": 5, "y": 0},
|
||||
|
||||
{"label": "F5", "matrix": [0, 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": [0, 14], "x": 15.25, "y": 0},
|
||||
{"label": "Scroll Lock", "matrix": [0, 15], "x": 16.25, "y": 0},
|
||||
{"label": "Pause", "matrix": [0, 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": [0, 13], "x": 13, "y": 1.25},
|
||||
{"label": "Delete", "matrix": [1, 13], "x": 14, "y": 1.25},
|
||||
|
||||
{"label": "Insert", "matrix": [1, 14], "x": 15.25, "y": 1.25},
|
||||
{"label": "Home", "matrix": [1, 15], "x": 16.25, "y": 1.25},
|
||||
{"label": "Page Up", "matrix": [1, 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": "Delete", "matrix": [2, 14], "x": 15.25, "y": 2.25},
|
||||
{"label": "End", "matrix": [2, 15], "x": 16.25, "y": 2.25},
|
||||
{"label": "Page Down", "matrix": [2, 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": "#", "matrix": [3, 12], "x": 12.75, "y": 3.25},
|
||||
{"label": "Enter", "matrix": [3, 13], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
|
||||
|
||||
{"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
|
||||
{"label": "\\", "matrix": [4, 1], "x": 1.25, "y": 4.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": 1.75},
|
||||
{"label": "Shift", "matrix": [4, 13], "x": 14, "y": 4.25},
|
||||
|
||||
{"label": "\u2191", "matrix": [4, 15], "x": 16.25, "y": 4.25},
|
||||
|
||||
{"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"label": "Alt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"label": "Space", "matrix": [5, 7], "x": 4, "y": 5.25, "w": 7},
|
||||
{"label": "Alt", "matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"label": "Ctrl", "matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
|
||||
{"label": "\u2190", "matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"label": "\u2193", "matrix": [5, 15], "x": 16.25, "y": 5.25},
|
||||
{"label": "\u2192", "matrix": [5, 16], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
39
keyboards/trnthsn/e8ghtyneo/keymaps/default/keymap.c
Normal file
39
keyboards/trnthsn/e8ghtyneo/keymaps/default/keymap.c
Normal file
@ -0,0 +1,39 @@
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
|
||||
// │Esc│ │F1 │F2 │F3 │F4 │ │F5 │F6 │F7 │F8 │ │F9 │F10│F11│F12│ │Prs│Srk│Ps │
|
||||
// └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
|
||||
// ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐
|
||||
// │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│ │Ins│Hm │PgU│
|
||||
// ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤
|
||||
// │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │ │Del│End│PgD│
|
||||
// ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ └───┴───┴───┘
|
||||
// │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │Ent │
|
||||
// ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ ┌───┐
|
||||
// │Sft │Sft│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Fn │ │ ↑ │
|
||||
// ├────┴┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤ ┌───┼───┼───┐
|
||||
// │Ctrl │Win│Alt │ │Alt │Win│Ctrl │ │ ← │ ↓ │ → │
|
||||
// └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘
|
||||
|
||||
[0] = LAYOUT_all(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT,
|
||||
KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT_all(
|
||||
_______, _______, _______, _______, _______, UG_TOGG, _______, _______, _______, _______, UG_NEXT, UG_VALD, UG_VALU, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MNXT, KC_VOLD,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
22
keyboards/trnthsn/e8ghtyneo/mcuconf.h
Normal file
22
keyboards/trnthsn/e8ghtyneo/mcuconf.h
Normal file
@ -0,0 +1,22 @@
|
||||
/* Copyright 2025 Tyson.Keebs
|
||||
*
|
||||
* 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_SPI_USE_SPI2
|
||||
#define STM32_SPI_USE_SPI2 TRUE
|
27
keyboards/trnthsn/e8ghtyneo/readme.md
Normal file
27
keyboards/trnthsn/e8ghtyneo/readme.md
Normal file
@ -0,0 +1,27 @@
|
||||
# E8ghtyNeo
|
||||
|
||||

|
||||
|
||||
A TKL keyboard PCB compatible with Neo80. Supports Neo80 keyboard like an out-of-the-box PCB without any modification.
|
||||
|
||||
* Keyboard Maintainer: [Trnthsn](https://github.com/trnthsn)
|
||||
* Hardware Supported: STM32, E8ghtyNeo, Neo80
|
||||
* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make trnthsn/e8ghtyneo/stm32f072:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make trnthsn/e8ghtyneo/stm32f072:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 3 ways:
|
||||
|
||||
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
|
||||
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
4
keyboards/trnthsn/e8ghtyneo/stm32f072/keyboard.json
Normal file
4
keyboards/trnthsn/e8ghtyneo/stm32f072/keyboard.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"processor": "STM32F072",
|
||||
"bootloader": "stm32-dfu",
|
||||
}
|
4
keyboards/trnthsn/e8ghtyneo/stm32f103/keyboard.json
Normal file
4
keyboards/trnthsn/e8ghtyneo/stm32f103/keyboard.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"processor": "STM32F103",
|
||||
"bootloader": "uf2boot",
|
||||
}
|
32
keyboards/trojan_pinata/model_b/readme.md
Normal file
32
keyboards/trojan_pinata/model_b/readme.md
Normal file
@ -0,0 +1,32 @@
|
||||
# Model-B
|
||||
|
||||
A 75% keyboard based on the RP2040.
|
||||
|
||||
* Keyboard Maintainer: [Brian Hill](https://github.com/TrojanPinata)
|
||||
* Hardware Supported: [GitHub](https://github.com/TrojanPinata/Model-B)
|
||||
|
||||
## Revisions
|
||||
|
||||
At the current moment there is only one variant of the Model-B, the rev-0 (aka the prototype board). Any others are clones and may not have the exact firmware requirements.
|
||||
|
||||
## Building and Flashing
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make trojan_pinata/model-b/rev0:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make trojan_pinata/model-b/rev0:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 3 ways:
|
||||
|
||||
* **Bootmagic reset**: Hold down the top left key and plug in the keyboard. This will also clear the emulated EEPROM, so it is a good first step if the keyboard is misbehaving.
|
||||
* **Physical reset button**: Hold down the `BOOTSEL` button on the Pi Pico, then either plug the board in or press the `RESET` button.
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT`. In the pre-supplied keymaps it is on the second layer, replacing the Esc key.
|
||||
|
||||
After entering the bootloader through one of the three methods above, the keyboard will appear as a USB mass storage device named `RPI-RP2`. If the CLI is unable to find this device, the compiled `.uf2` file can be manually copied to it. The keyboard will reboot on completion with the new firmware loaded.
|
14
keyboards/trojan_pinata/model_b/rev0/config.h
Normal file
14
keyboards/trojan_pinata/model_b/rev0/config.h
Normal file
@ -0,0 +1,14 @@
|
||||
// Copyright 2022 Stefan Kerkmann
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
||||
|
||||
// settings for the oled keyboard demo with Adafruit 0.91" OLED display on the Stemma QT port
|
||||
#define I2C_DRIVER I2CD0
|
||||
#define I2C1_SDA_PIN GP0
|
||||
#define I2C1_SCL_PIN GP1
|
||||
|
||||
#define OLED_TIMEOUT 3000000 // 5 minutes before oled turns off
|
122
keyboards/trojan_pinata/model_b/rev0/keyboard.json
Normal file
122
keyboards/trojan_pinata/model_b/rev0/keyboard.json
Normal file
@ -0,0 +1,122 @@
|
||||
{
|
||||
"manufacturer": "Trojan_Pinata",
|
||||
"keyboard_name": "Model-B",
|
||||
"maintainer": "Trojan_Pinata",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "GP27", "pin_b": "GP26"}
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"oled": true,
|
||||
"encoder": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15", "GP16", "GP17", "GP18", "GP19", "GP20", "GP21", "GP22"],
|
||||
"rows": ["GP2", "GP3", "GP4", "GP5", "GP6", "GP7"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"url": "https://github.com/TrojanPinata/Model-B",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0xA500",
|
||||
"vid": "0xE739"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 2], "x": 1.25, "y": 0},
|
||||
{"matrix": [0, 3], "x": 2.25, "y": 0},
|
||||
{"matrix": [0, 4], "x": 3.25, "y": 0},
|
||||
{"matrix": [0, 5], "x": 4.25, "y": 0},
|
||||
{"matrix": [0, 6], "x": 5.5, "y": 0},
|
||||
{"matrix": [0, 7], "x": 6.5, "y": 0},
|
||||
{"matrix": [0, 8], "x": 7.5, "y": 0},
|
||||
{"matrix": [0, 9], "x": 8.5, "y": 0},
|
||||
{"matrix": [0, 10], "x": 9.75, "y": 0},
|
||||
{"matrix": [0, 11], "x": 10.75, "y": 0},
|
||||
{"matrix": [0, 12], "x": 11.75, "y": 0},
|
||||
{"matrix": [0, 13], "x": 12.75, "y": 0},
|
||||
{"matrix": [0, 14], "x": 15.75, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1.5},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1.5},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1.5},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1.5},
|
||||
{"matrix": [1, 4], "x": 4, "y": 1.5},
|
||||
{"matrix": [1, 5], "x": 5, "y": 1.5},
|
||||
{"matrix": [1, 6], "x": 6, "y": 1.5},
|
||||
{"matrix": [1, 7], "x": 7, "y": 1.5},
|
||||
{"matrix": [1, 8], "x": 8, "y": 1.5},
|
||||
{"matrix": [1, 9], "x": 9, "y": 1.5},
|
||||
{"matrix": [1, 10], "x": 10, "y": 1.5},
|
||||
{"matrix": [1, 11], "x": 11, "y": 1.5},
|
||||
{"matrix": [1, 12], "x": 12, "y": 1.5},
|
||||
{"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2},
|
||||
{"matrix": [1, 14], "x": 15.25, "y": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 2.5},
|
||||
{"matrix": [2, 2], "x": 2.5, "y": 2.5},
|
||||
{"matrix": [2, 3], "x": 3.5, "y": 2.5},
|
||||
{"matrix": [2, 4], "x": 4.5, "y": 2.5},
|
||||
{"matrix": [2, 5], "x": 5.5, "y": 2.5},
|
||||
{"matrix": [2, 6], "x": 6.5, "y": 2.5},
|
||||
{"matrix": [2, 7], "x": 7.5, "y": 2.5},
|
||||
{"matrix": [2, 8], "x": 8.5, "y": 2.5},
|
||||
{"matrix": [2, 9], "x": 9.5, "y": 2.5},
|
||||
{"matrix": [2, 10], "x": 10.5, "y": 2.5},
|
||||
{"matrix": [2, 11], "x": 11.5, "y": 2.5},
|
||||
{"matrix": [2, 12], "x": 12.5, "y": 2.5},
|
||||
{"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5},
|
||||
{"matrix": [2, 14], "x": 15.25, "y": 2.5},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75},
|
||||
{"matrix": [3, 1], "x": 1.75, "y": 3.5},
|
||||
{"matrix": [3, 2], "x": 2.75, "y": 3.5},
|
||||
{"matrix": [3, 3], "x": 3.75, "y": 3.5},
|
||||
{"matrix": [3, 4], "x": 4.75, "y": 3.5},
|
||||
{"matrix": [3, 5], "x": 5.75, "y": 3.5},
|
||||
{"matrix": [3, 6], "x": 6.75, "y": 3.5},
|
||||
{"matrix": [3, 7], "x": 7.75, "y": 3.5},
|
||||
{"matrix": [3, 8], "x": 8.75, "y": 3.5},
|
||||
{"matrix": [3, 9], "x": 9.75, "y": 3.5},
|
||||
{"matrix": [3, 10], "x": 10.75, "y": 3.5},
|
||||
{"matrix": [3, 11], "x": 11.75, "y": 3.5},
|
||||
{"matrix": [3, 12], "x": 14, "y": 0},
|
||||
{"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25},
|
||||
{"matrix": [3, 14], "x": 16.25, "y": 1.5},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25},
|
||||
{"matrix": [4, 1], "x": 2.25, "y": 4.5},
|
||||
{"matrix": [4, 2], "x": 3.25, "y": 4.5},
|
||||
{"matrix": [4, 3], "x": 4.25, "y": 4.5},
|
||||
{"matrix": [4, 4], "x": 5.25, "y": 4.5},
|
||||
{"matrix": [4, 5], "x": 6.25, "y": 4.5},
|
||||
{"matrix": [4, 6], "x": 7.25, "y": 4.5},
|
||||
{"matrix": [4, 7], "x": 8.25, "y": 4.5},
|
||||
{"matrix": [4, 8], "x": 9.25, "y": 4.5},
|
||||
{"matrix": [4, 9], "x": 10.25, "y": 4.5},
|
||||
{"matrix": [4, 10], "x": 11.25, "y": 4.5},
|
||||
{"matrix": [4, 12], "x": 12.25, "y": 4.5, "w": 1.75},
|
||||
{"matrix": [4, 13], "x": 14.3, "y": 4.6},
|
||||
{"matrix": [4, 14], "x": 16.25, "y": 2.5},
|
||||
{"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25},
|
||||
{"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25},
|
||||
{"matrix": [5, 6], "x": 3.75, "y": 5.5, "w": 6.25},
|
||||
{"matrix": [5, 9], "x": 10, "y": 5.5},
|
||||
{"matrix": [5, 10], "x": 11, "y": 5.5},
|
||||
{"matrix": [5, 11], "x": 12, "y": 5.5},
|
||||
{"matrix": [5, 12], "x": 13.3, "y": 5.6},
|
||||
{"matrix": [5, 13], "x": 14.3, "y": 5.6},
|
||||
{"matrix": [5, 14], "x": 15.3, "y": 5.6}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,47 @@
|
||||
/* Copyright 2024 Brian H (@Trojan_Pinata)
|
||||
*
|
||||
* 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
|
||||
|
||||
// keymaps
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_MUTE,
|
||||
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
|
||||
KC_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, QK_KB, KC_ENT, KC_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||
KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT(
|
||||
QK_BOOT, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_MUTE,
|
||||
|
||||
EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY,
|
||||
DB_TOGG, _______, _______, KC_MYCM, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MSTP,
|
||||
_______, _______, _______, _______, KC_CALC, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT,
|
||||
_______, _______, _______, _______, _______, _______, _______, KC_EXEC, _______, _______
|
||||
)
|
||||
};
|
||||
|
||||
// encoder handling
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) },
|
||||
[1] = { ENCODER_CCW_CW(_______, _______) },
|
||||
};
|
||||
#endif
|
24
keyboards/trojan_pinata/model_b/rev0/mcuconf.h
Normal file
24
keyboards/trojan_pinata/model_b/rev0/mcuconf.h
Normal file
@ -0,0 +1,24 @@
|
||||
/* 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 RP_I2C_USE_I2C0
|
||||
#define RP_I2C_USE_I2C0 TRUE
|
||||
|
||||
#undef RP_I2C_USE_I2C1
|
||||
#define RP_I2C_USE_I2C1 TRUE
|
397
keyboards/trojan_pinata/model_b/rev0/rev0.c
Normal file
397
keyboards/trojan_pinata/model_b/rev0/rev0.c
Normal file
@ -0,0 +1,397 @@
|
||||
/* Copyright 2024 Brian H (@Trojan_Pinata)
|
||||
*
|
||||
* 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 "rev0.h"
|
||||
|
||||
// NUM_MODES stays last to indicate the number of different screens possible
|
||||
enum oled_modes {
|
||||
MTNS, INFO, LOGO, MEW, CEL, RAY, NUM_MODES
|
||||
};
|
||||
|
||||
// define the key that switches the display
|
||||
enum keeb_codes {
|
||||
OLED_MOD = QK_KB,
|
||||
};
|
||||
|
||||
// virtual eeprom for storing last layer
|
||||
typedef union {
|
||||
uint32_t raw;
|
||||
struct {
|
||||
uint8_t display_mode_saved : 3;
|
||||
};
|
||||
} keyboard_config_t;
|
||||
keyboard_config_t keyboard_config;
|
||||
|
||||
void keyboard_pre_init_kb(void) {
|
||||
keyboard_config.raw = eeconfig_read_kb();
|
||||
keyboard_pre_init_user();
|
||||
}
|
||||
|
||||
void eeconfig_init_kb(void) {
|
||||
keyboard_config.raw = 0;
|
||||
keyboard_config.display_mode_saved = INFO;
|
||||
eeconfig_update_kb(keyboard_config.raw);
|
||||
eeconfig_init_user();
|
||||
}
|
||||
|
||||
// oled stuff below
|
||||
#ifdef OLED_ENABLE
|
||||
|
||||
// hold only let me just drop all of my embedded images rq
|
||||
static const char PROGMEM bootscreen[] = {
|
||||
// 'modelb-oled', 128x32px
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x80,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x80,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
|
||||
0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0,
|
||||
0xc0, 0xc0, 0xc0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0f, 0x7f, 0xfe,
|
||||
0xf0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xf0, 0xfe, 0x3f, 0x07, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0xf0, 0xfc, 0xfe, 0x3f, 0x0f, 0x03, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x07, 0x1f,
|
||||
0x3f, 0xfe, 0xfc, 0xf0, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x03, 0x03, 0x07,
|
||||
0x0f, 0x1f, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1,
|
||||
0xc1, 0xc1, 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, 0xff, 0xff, 0xff, 0xe1,
|
||||
0xe1, 0xe1, 0xe3, 0xff, 0xff, 0xbf, 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x03,
|
||||
0x1f, 0x7f, 0xfc, 0xf0, 0xfe, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
|
||||
0x07, 0x1f, 0x3f, 0x7e, 0xf8, 0xf0, 0xe0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, 0x7c,
|
||||
0x7f, 0x3f, 0x1f, 0x07, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0,
|
||||
0xf8, 0x7c, 0x3f, 0x1f, 0x07, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1,
|
||||
0xc1, 0xc1, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00,
|
||||
0x00, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc1,
|
||||
0xc1, 0xc1, 0xc1, 0xe1, 0xff, 0xff, 0x7f, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
static const char PROGMEM mnts_l0[] = {
|
||||
// 'base', 128x32px
|
||||
0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0xa0, 0xb0, 0xf0, 0xd0, 0xd0, 0xf8, 0xfc, 0xdc, 0xfe,
|
||||
0xff, 0xff, 0xff, 0xdf, 0xde, 0xde, 0x9c, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xf0, 0x90, 0xa0, 0x40,
|
||||
0x40, 0x40, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80,
|
||||
0x40, 0x40, 0x20, 0x20, 0x20, 0x90, 0xd0, 0xd0, 0xc8, 0xe8, 0xec, 0xe4, 0xfc, 0xfa, 0xfa, 0xfa,
|
||||
0xf4, 0xe4, 0xe4, 0xc8, 0xc8, 0xd8, 0x90, 0x90, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x80, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x00, 0x40, 0x60,
|
||||
0x30, 0x10, 0xf8, 0x0c, 0x06, 0x02, 0x00, 0x10, 0x08, 0x18, 0x3f, 0xe8, 0x08, 0x24, 0x3c, 0x0c,
|
||||
0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x04, 0xfe, 0x00, 0x00,
|
||||
0xb9, 0x3d, 0x3d, 0x7c, 0x3e, 0x3f, 0x3f, 0x1d, 0x0d, 0x0f, 0x0b, 0x1f, 0x1f, 0x1f, 0x1f, 0x0b,
|
||||
0x0f, 0x0f, 0x0f, 0x03, 0x03, 0x03, 0x05, 0x07, 0x0f, 0x0b, 0x0b, 0x13, 0x13, 0x37, 0x7f, 0xf7,
|
||||
0xf7, 0xf8, 0xf0, 0xf8, 0xf8, 0xf1, 0xe1, 0xf3, 0x12, 0xd2, 0xd1, 0xd1, 0x11, 0x00, 0xc0, 0xc0,
|
||||
0xe0, 0xf0, 0x78, 0x78, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0xff, 0xff, 0x1f,
|
||||
0x0f, 0x0f, 0x0f, 0x1f, 0x1f, 0x1f, 0x0f, 0x1f, 0x1e, 0x1e, 0x1f, 0x1c, 0x39, 0x39, 0x3a, 0x3c,
|
||||
0x79, 0x79, 0xf2, 0xe2, 0xe4, 0xe5, 0x85, 0x49, 0x48, 0x08, 0xd0, 0xd0, 0x90, 0x20, 0x20, 0x40,
|
||||
0x40, 0x40, 0xc1, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00,
|
||||
0x0b, 0x0f, 0x0f, 0x1f, 0x2f, 0x7c, 0x7c, 0xf8, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x08, 0x0f, 0x0f, 0x0f,
|
||||
0x07, 0x03, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x1f, 0x1f, 0x3f, 0x7e, 0x7f, 0xff, 0x78, 0xf8, 0xe0,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x0f, 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, 0x03, 0x03, 0x07, 0x07, 0x07, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x06,
|
||||
0x0e, 0x0e, 0x0c, 0x0c, 0x00, 0x03, 0x47, 0x46, 0xc6, 0x8c, 0x8c, 0x0c, 0x18, 0x30, 0x63, 0x4c,
|
||||
0x50, 0xcc, 0x83, 0x00, 0x00, 0x12, 0x1f, 0x10, 0x00, 0x10, 0x00, 0x0e, 0x15, 0x13, 0x0e, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x60, 0x61, 0x61, 0x60, 0x60, 0x60, 0x60, 0x60,
|
||||
0x70, 0x70, 0x30, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x1c, 0x1c, 0x07, 0x0f, 0x1f,
|
||||
0x1f, 0x1f, 0x1e, 0x1e, 0x1e, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x18, 0x10, 0x30, 0x30,
|
||||
0x30, 0x30, 0x38, 0x38, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0xf0, 0x60,
|
||||
0x60, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0x80, 0x80, 0x40, 0x60,
|
||||
0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x60, 0x20, 0x20, 0x60, 0x20, 0x60, 0x60, 0x60, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x01, 0x03, 0x02, 0x06, 0x06, 0x0c, 0x08, 0x08, 0x10, 0x30, 0x20, 0x20, 0x60
|
||||
};
|
||||
|
||||
static const char PROGMEM mnts_l1[] = {
|
||||
// 'alt', 128x32px
|
||||
0x00, 0x00, 0x00, 0x80, 0x40, 0x40, 0x40, 0xa0, 0xb0, 0xf0, 0xd0, 0xd0, 0xf8, 0xfc, 0xdc, 0xfe,
|
||||
0xff, 0xff, 0xff, 0xdf, 0xde, 0xde, 0x9c, 0xfc, 0xfc, 0xf8, 0xf8, 0xf0, 0xf0, 0x90, 0xa0, 0x40,
|
||||
0x40, 0x40, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80,
|
||||
0x40, 0x40, 0x20, 0x20, 0x20, 0x90, 0xd0, 0xd0, 0xc8, 0xe8, 0xec, 0xe4, 0xfc, 0xfa, 0xfa, 0xfa,
|
||||
0xf4, 0xe4, 0xe4, 0xc8, 0xc8, 0xd8, 0x90, 0x90, 0x20, 0x20, 0x20, 0x40, 0x40, 0x40, 0x80, 0x80,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x00, 0x80, 0x80, 0xc0, 0x60, 0x30, 0x10, 0x00, 0x40, 0x60,
|
||||
0x30, 0x10, 0xf8, 0x0c, 0x06, 0x02, 0x00, 0x10, 0x08, 0x18, 0x3f, 0xe8, 0x08, 0x24, 0x3c, 0x0c,
|
||||
0x00, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x04, 0x82, 0x42, 0x22, 0x1c, 0x00,
|
||||
0xb9, 0x3d, 0x3d, 0x7c, 0x3e, 0x3f, 0x3f, 0x1d, 0x0d, 0x0f, 0x0b, 0x1f, 0x1f, 0x1f, 0x1f, 0x0b,
|
||||
0x0f, 0x0f, 0x0f, 0x03, 0x03, 0x03, 0x05, 0x07, 0x0f, 0x0b, 0x0b, 0x13, 0x13, 0x37, 0x7f, 0xf7,
|
||||
0xf7, 0xf8, 0xf0, 0xf8, 0xf8, 0xf1, 0xe1, 0xf3, 0x12, 0xd2, 0xd1, 0xd1, 0x11, 0x00, 0xc0, 0xc0,
|
||||
0xe0, 0xf0, 0x78, 0x78, 0xf9, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x7f, 0xff, 0xff, 0x1f,
|
||||
0x0f, 0x0f, 0x0f, 0x1f, 0x1f, 0x1f, 0x0f, 0x1f, 0x1e, 0x1e, 0x1f, 0x1c, 0x39, 0x39, 0x3a, 0x3c,
|
||||
0x79, 0x79, 0xf2, 0xe2, 0xe4, 0xe5, 0x85, 0x49, 0x48, 0x08, 0xd0, 0xd0, 0x90, 0x20, 0x20, 0x40,
|
||||
0x40, 0x40, 0xc1, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x02, 0x02, 0x02, 0x02, 0x00,
|
||||
0x0b, 0x0f, 0x0f, 0x1f, 0x2f, 0x7c, 0x7c, 0xf8, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x08, 0x0f, 0x0f, 0x0f,
|
||||
0x07, 0x03, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x1f, 0x1f, 0x3f, 0x7e, 0x7f, 0xff, 0x78, 0xf8, 0xe0,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x0f, 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, 0x03, 0x03, 0x07, 0x07, 0x07, 0x03, 0x00, 0x03, 0x03, 0x03, 0x03, 0x06,
|
||||
0x0e, 0x0e, 0x0c, 0x0c, 0x00, 0x03, 0x47, 0x46, 0xc6, 0x8c, 0x8c, 0x0c, 0x18, 0x30, 0x63, 0x4c,
|
||||
0x50, 0xcc, 0x83, 0x00, 0x00, 0x12, 0x1f, 0x10, 0x00, 0x10, 0x00, 0x0e, 0x15, 0x13, 0x0e, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 0x20, 0x60, 0x61, 0x61, 0x60, 0x60, 0x60, 0x60, 0x60,
|
||||
0x70, 0x70, 0x30, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x1c, 0x1c, 0x07, 0x0f, 0x1f,
|
||||
0x1f, 0x1f, 0x1e, 0x1e, 0x1e, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x18, 0x10, 0x30, 0x30,
|
||||
0x30, 0x30, 0x38, 0x38, 0x7c, 0x3c, 0x3c, 0x3c, 0x7c, 0xf8, 0xf8, 0xf8, 0xf8, 0xf0, 0xf0, 0x60,
|
||||
0x60, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf0, 0xe0, 0x80, 0x80, 0x40, 0x60,
|
||||
0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x60, 0x20, 0x20, 0x60, 0x20, 0x60, 0x60, 0x60, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x01, 0x03, 0x02, 0x06, 0x06, 0x0c, 0x08, 0x08, 0x10, 0x30, 0x20, 0x20, 0x60
|
||||
};
|
||||
|
||||
static const char PROGMEM mew_disp[] = {
|
||||
// 'mewl2', 128x32px
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40,
|
||||
0x60, 0x50, 0x10, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x30, 0x08,
|
||||
0x04, 0xc4, 0xf2, 0xfa, 0x7e, 0x3e, 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, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xc0, 0x20, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0xa0, 0x20, 0x00, 0x10,
|
||||
0x10, 0x10, 0x10, 0x0c, 0x02, 0x22, 0x42, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xf2, 0xf2, 0xc2, 0x01, 0x00, 0xc0, 0xa0, 0xe0, 0x28,
|
||||
0x50, 0x00, 0x00, 0x00, 0x01, 0x1a, 0xf8, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x70, 0xe0,
|
||||
0xff, 0xff, 0xc7, 0x81, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xf0, 0xf0, 0xf8, 0x78, 0x78, 0x3c, 0x3c, 0x1c, 0x1c, 0x3c, 0x38,
|
||||
0x78, 0xf0, 0xe0, 0xc0, 0x00, 0x01, 0x06, 0x08, 0x30, 0xc0, 0x00, 0x00, 0x00, 0x41, 0xc0, 0x80,
|
||||
0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x61, 0xde, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x0c, 0x8c, 0xd9, 0x7b, 0x53, 0x10,
|
||||
0x08, 0x18, 0x38, 0x3c, 0x36, 0x2f, 0x6b, 0x75, 0x92, 0xee, 0x18, 0xe4, 0xfc, 0x78, 0x00, 0xc1,
|
||||
0xb7, 0xcf, 0xf3, 0xfc, 0xfd, 0xef, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0xfe, 0xf9,
|
||||
0xf0, 0xf9, 0xff, 0x7f, 0x1f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x90,
|
||||
0x08, 0x09, 0x9f, 0xff, 0xff, 0xf8, 0x00, 0x38, 0xc6, 0x81, 0x8e, 0x70, 0x50, 0x50, 0x53, 0xe2,
|
||||
0x83, 0x01, 0x62, 0xab, 0xa8, 0xa8, 0x50, 0x54, 0x50, 0x89, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x0e, 0x0d, 0x0c, 0x04, 0x06, 0x1e, 0x6e,
|
||||
0x80, 0x00, 0x00, 0x38, 0x08, 0x84, 0xc4, 0xfe, 0x07, 0xf8, 0xff, 0xff, 0xff, 0x7f, 0x3e, 0x7f,
|
||||
0x7f, 0x3f, 0x0f, 0x01, 0x83, 0x7c, 0x01, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0xc8, 0x84, 0x86, 0xcf,
|
||||
0xb7, 0x81, 0x80, 0x41, 0x43, 0x8c, 0x92, 0xe1, 0x61, 0x53, 0x2e, 0x11, 0x11, 0x19, 0x2c, 0xd0,
|
||||
0x20, 0x41, 0x40, 0x40, 0x24, 0x30, 0x20, 0x20, 0xf0, 0x8f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
static const char PROGMEM cel_disp[] = {
|
||||
// 'celebi1', 128x32px
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0,
|
||||
0x20, 0xc0, 0xe0, 0xe0, 0xf0, 0xdc, 0xee, 0xf0, 0xbe, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x60, 0xc0, 0x81, 0x80, 0x80, 0xc0,
|
||||
0xc0, 0x80, 0x00, 0x00, 0x00, 0x40, 0x00, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x00, 0x80, 0xc0, 0xc0, 0xc0,
|
||||
0x60, 0xb0, 0xcc, 0xf0, 0x3f, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0xc0, 0xf8, 0xfc, 0xfc, 0xfb,
|
||||
0xf4, 0xff, 0xff, 0x7f, 0x1f, 0xcf, 0x67, 0xe3, 0xc7, 0x0f, 0x9f, 0xff, 0x3e, 0xc0, 0xf0, 0x78,
|
||||
0x90, 0xe0, 0xf2, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x3f,
|
||||
0x3f, 0x3b, 0x3e, 0x79, 0xfe, 0xfe, 0xff, 0xfe, 0x7c, 0xfc, 0xf8, 0xd8, 0xf0, 0xf0, 0xb0, 0xa0,
|
||||
0xa0, 0xa0, 0xe0, 0xe0, 0x60, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x0e, 0x31, 0x40, 0xf0, 0xf8, 0xfc, 0xfe, 0xf0, 0xff, 0xf0, 0xff, 0x7f, 0x3f, 0xbf, 0x9f,
|
||||
0x9f, 0x1f, 0x3f, 0xfe, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83, 0x87, 0x8f, 0x9f,
|
||||
0x9f, 0x9f, 0xc7, 0xcc, 0xd8, 0xd8, 0x98, 0x3c, 0xfc, 0xf7, 0xfb, 0x1c, 0x1d, 0x1e, 0x1e, 0x1f,
|
||||
0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, 0x87, 0xcf, 0x6d, 0xf8, 0x72, 0xf4,
|
||||
0xf4, 0x90, 0x20, 0x20, 0xa7, 0x6f, 0x6f, 0x6b, 0x0b, 0x06, 0x06, 0x05, 0x05, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80,
|
||||
0xc0, 0xc0, 0xc0, 0xc0, 0x83, 0x8f, 0x9f, 0x3f, 0x7f, 0x5f, 0xff, 0x71, 0xe0, 0xe1, 0x60, 0x62,
|
||||
0x27, 0x30, 0x18, 0x9f, 0xcf, 0xc3, 0xc0, 0xc0, 0xc0, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x03, 0x03,
|
||||
0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x40, 0xe0, 0xe0, 0xc8, 0x9c, 0xf8, 0x60, 0x28, 0x3c, 0x7e, 0x7e, 0xfe, 0xff, 0xfc, 0xe1,
|
||||
0x07, 0x1f, 0x3f, 0x3e, 0x7d, 0x7b, 0x73, 0x72, 0xe2, 0xe0, 0x20, 0x40, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03,
|
||||
0x01, 0x01, 0xc1, 0xc1, 0x03, 0x03, 0x03, 0x23, 0x01, 0x0d, 0x06, 0x07, 0x37, 0x33, 0x01, 0x01,
|
||||
0x07, 0x0e, 0x3c, 0x39, 0x79, 0x71, 0x71, 0x60, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
static const char PROGMEM rayq_disp[] = {
|
||||
// 'rayquaza1', 128x32px
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10,
|
||||
0x10, 0x20, 0x20, 0x40, 0x40, 0x40, 0x70, 0x70, 0x71, 0x50, 0x60, 0x60, 0x60, 0x40, 0x80, 0x80,
|
||||
0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xc0, 0x80, 0x00, 0xc0, 0x60, 0x00, 0x00, 0x80,
|
||||
0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0xc0, 0xc0,
|
||||
0xe0, 0x60, 0x70, 0x70, 0x7b, 0x7b, 0xfb, 0xfb, 0xf8, 0xb0, 0xb0, 0xd0, 0x60, 0x30, 0x10, 0x08,
|
||||
0x0c, 0x84, 0x86, 0x83, 0x81, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x30, 0x1c, 0x02, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xf0, 0x11, 0x12, 0x10, 0x10, 0x0e, 0x0e, 0x0c, 0x0c, 0x07,
|
||||
0x07, 0x0f, 0x0f, 0x03, 0x06, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x9f, 0xf3, 0x3e, 0xe7, 0xfc, 0x7f, 0x3f, 0x0f,
|
||||
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x3c, 0x2e, 0x57, 0x17, 0x1b, 0x1d, 0x36,
|
||||
0x36, 0x3d, 0x31, 0x31, 0x39, 0x3d, 0x3d, 0x1d, 0x1f, 0x1f, 0xcf, 0x3f, 0x07, 0x00, 0x00, 0x81,
|
||||
0x83, 0x83, 0x83, 0x03, 0x07, 0x07, 0x07, 0x0f, 0x0e, 0x1e, 0x1c, 0x3c, 0x78, 0xf8, 0xf0, 0xe0,
|
||||
0x00, 0x40, 0xc0, 0x00, 0x60, 0x38, 0x38, 0x20, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xff, 0x7f, 0xfe, 0xec, 0xf8, 0x7c, 0x3c,
|
||||
0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xfc, 0xe0, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xcf, 0x80, 0x07, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x08, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc1,
|
||||
0x07, 0x0f, 0x9f, 0xbe, 0x78, 0xf0, 0xc0, 0x00, 0x80, 0x00, 0x80, 0x30, 0x30, 0x30, 0x11, 0x19,
|
||||
0x18, 0x02, 0x07, 0x1f, 0x1f, 0x3c, 0x73, 0xcf, 0x0f, 0x0f, 0x0f, 0x17, 0x2f, 0x56, 0x20, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, 0x1d, 0x3b, 0xff, 0xff, 0xfc, 0xf8, 0xf0,
|
||||
0x60, 0xc0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x60, 0x68, 0x78, 0x10, 0x00, 0x18, 0x90,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x7f, 0xff, 0xfc, 0xf8, 0xe0, 0x80,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0,
|
||||
0xf0, 0xf0, 0xf0, 0xf1, 0xe1, 0x41, 0x04, 0x1e, 0xcf, 0xc7, 0x44, 0x63, 0x59, 0x6d, 0x0a, 0x03,
|
||||
0x03, 0x0c, 0x0e, 0x05, 0x03, 0x02, 0x02, 0x1b, 0xec, 0x67, 0x5b, 0x1c, 0x8c, 0xcc, 0xdc, 0x30,
|
||||
0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xc0, 0x3f, 0xfc, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
// invert display based on layer
|
||||
static void inv_display(void) {
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case 1:
|
||||
oled_invert(true);
|
||||
break;
|
||||
default:
|
||||
oled_invert(false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// MTNS
|
||||
static void mountains(void) {
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case 0:
|
||||
oled_write_raw_P(mnts_l0, sizeof(mnts_l0));
|
||||
break;
|
||||
case 1:
|
||||
oled_write_raw_P(mnts_l1, sizeof(mnts_l1));
|
||||
break;
|
||||
default:
|
||||
oled_write_raw_P(mnts_l0, sizeof(mnts_l0));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// INFO
|
||||
static void info(void) {
|
||||
// get layer the board is on
|
||||
oled_write_P(PSTR("LAYER "), false);
|
||||
oled_write_P(PSTR(" "), true);
|
||||
oled_write_char(get_highest_layer(layer_state) + 0x30, true);
|
||||
oled_write_P(PSTR(" "), true);
|
||||
|
||||
// here we do a bit of trickery
|
||||
oled_write_P(PSTR(" ENC "), false);
|
||||
oled_write_P(PSTR(" VOL "), true);
|
||||
|
||||
// lock key statuses
|
||||
led_t led_state = host_keyboard_led_state();
|
||||
oled_set_cursor(9, 1);
|
||||
oled_write_P(PSTR(" CAP "), led_state.caps_lock);
|
||||
oled_set_cursor(14, 1);
|
||||
oled_write_P(PSTR(" SCR "), led_state.scroll_lock);
|
||||
|
||||
// write model B here in invert text
|
||||
oled_set_cursor(0, 3);
|
||||
oled_write_P(PSTR(" MODEL-B "), true);
|
||||
|
||||
// mod masks - if you don't know what these do, don't worry about them
|
||||
uint8_t mod_state = get_mods();
|
||||
oled_advance_char();
|
||||
oled_advance_char();
|
||||
oled_write_P(PSTR("S"), mod_state & MOD_MASK_SHIFT);
|
||||
oled_advance_char();
|
||||
oled_write_P(PSTR("C"), mod_state & MOD_MASK_CTRL);
|
||||
oled_advance_char();
|
||||
oled_write_P(PSTR("A"), mod_state & MOD_MASK_ALT);
|
||||
oled_advance_char();
|
||||
oled_write_P(PSTR("G"), mod_state & MOD_MASK_GUI);
|
||||
oled_advance_char();
|
||||
}
|
||||
|
||||
// display logo - used on boot and exception state
|
||||
static void logo(void) {
|
||||
oled_write_raw_P(bootscreen, sizeof(bootscreen));
|
||||
}
|
||||
|
||||
// run this whenever the oled needs to update
|
||||
bool oled_task_kb(void) {
|
||||
if (!oled_task_user()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
switch (keyboard_config.display_mode_saved) {
|
||||
case MTNS:
|
||||
mountains();
|
||||
break;
|
||||
case INFO:
|
||||
info();
|
||||
break;
|
||||
case LOGO:
|
||||
oled_write_raw_P(bootscreen, sizeof(bootscreen)); // write image to screen
|
||||
inv_display(); // invert image if necessary - remove if layer differs
|
||||
break;
|
||||
case MEW:
|
||||
oled_write_raw_P(mew_disp, sizeof(mew_disp));
|
||||
inv_display();
|
||||
break;
|
||||
case CEL:
|
||||
oled_write_raw_P(cel_disp, sizeof(cel_disp));
|
||||
inv_display();
|
||||
break;
|
||||
case RAY:
|
||||
oled_write_raw_P(rayq_disp, sizeof(rayq_disp));
|
||||
inv_display();
|
||||
break;
|
||||
default:
|
||||
logo();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// render this on boot/reset
|
||||
void oled_render_boot(bool bootloader) {
|
||||
oled_clear();
|
||||
logo();
|
||||
oled_render_dirty(true);
|
||||
}
|
||||
|
||||
// change depending on if OLED_MOD is pressed
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||
if (!process_record_user(keycode, record)) {
|
||||
return false;
|
||||
}
|
||||
if (keycode == OLED_MOD && record->event.pressed) {
|
||||
oled_clear();
|
||||
keyboard_config.display_mode_saved++;
|
||||
if (keyboard_config.display_mode_saved == NUM_MODES) {
|
||||
keyboard_config.display_mode_saved = 0;
|
||||
}
|
||||
eeconfig_update_kb(keyboard_config.raw);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif
|
21
keyboards/trojan_pinata/model_b/rev0/rev0.h
Normal file
21
keyboards/trojan_pinata/model_b/rev0/rev0.h
Normal file
@ -0,0 +1,21 @@
|
||||
/* Copyright 2024 Brian H (@Trojan_Pinata)
|
||||
*
|
||||
* 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 "quantum.h"
|
||||
|
||||
void oled_render_boot(bool bootloader);
|
@ -43,13 +43,13 @@ static painter_font_handle_t thintel;
|
||||
enum {
|
||||
RGB_MATRIX_EFFECT_NONE,
|
||||
# include "rgb_matrix_effects.inc"
|
||||
# undef RGB_MATRIX_EFFECT
|
||||
# ifdef RGB_MATRIX_CUSTOM_KB
|
||||
# include "rgb_matrix_kb.inc"
|
||||
# endif
|
||||
# ifdef RGB_MATRIX_CUSTOM_USER
|
||||
# include "rgb_matrix_user.inc"
|
||||
# endif
|
||||
# undef RGB_MATRIX_EFFECT
|
||||
};
|
||||
|
||||
# define RGB_MATRIX_EFFECT(x) \
|
||||
@ -60,13 +60,13 @@ const char *rgb_matrix_name(uint8_t effect) {
|
||||
case RGB_MATRIX_EFFECT_NONE:
|
||||
return "NONE";
|
||||
# include "rgb_matrix_effects.inc"
|
||||
# undef RGB_MATRIX_EFFECT
|
||||
# ifdef RGB_MATRIX_CUSTOM_KB
|
||||
# include "rgb_matrix_kb.inc"
|
||||
# endif
|
||||
# ifdef RGB_MATRIX_CUSTOM_USER
|
||||
# include "rgb_matrix_user.inc"
|
||||
# endif
|
||||
# undef RGB_MATRIX_EFFECT
|
||||
default:
|
||||
return "UNKNOWN";
|
||||
}
|
||||
|
@ -18,7 +18,7 @@ def _get_chunks(it, size):
|
||||
def dos2unix_run(files):
|
||||
"""Spawn multiple dos2unix subprocess avoiding too long commands on formatting everything
|
||||
"""
|
||||
for chunk in _get_chunks(files, 10):
|
||||
for chunk in _get_chunks([normpath(file).as_posix() for file in files], 10):
|
||||
dos2unix = cli.run(['dos2unix', *chunk])
|
||||
|
||||
if dos2unix.returncode:
|
||||
|
@ -99,6 +99,13 @@ def _validate_build_target(keyboard, info_data):
|
||||
if info_file != keyboard_json_path:
|
||||
_log_error(info_data, f'Invalid keyboard.json location detected: {info_file}.')
|
||||
|
||||
# No keyboard.json next to info.json
|
||||
for conf_file in config_files:
|
||||
if conf_file.name == 'keyboard.json':
|
||||
info_file = conf_file.parent / 'info.json'
|
||||
if info_file.exists():
|
||||
_log_error(info_data, f'Invalid info.json location detected: {info_file}.')
|
||||
|
||||
# Moving forward keyboard.json should be used as a build target
|
||||
if keyboard_json_count == 0:
|
||||
_log_warning(info_data, 'Build marker "keyboard.json" not found.')
|
||||
@ -773,14 +780,13 @@ def find_keyboard_c(keyboard):
|
||||
def _extract_led_config(info_data, keyboard):
|
||||
"""Scan all <keyboard>.c files for led config
|
||||
"""
|
||||
cols = info_data['matrix_size']['cols']
|
||||
rows = info_data['matrix_size']['rows']
|
||||
|
||||
for feature in ['rgb_matrix', 'led_matrix']:
|
||||
if info_data.get('features', {}).get(feature, False) or feature in info_data:
|
||||
|
||||
# Only attempt search if dd led config is missing
|
||||
if 'layout' not in info_data.get(feature, {}):
|
||||
cols = info_data.get('matrix_size', {}).get('cols')
|
||||
rows = info_data.get('matrix_size', {}).get('rows')
|
||||
if cols and rows:
|
||||
# Process
|
||||
for file in find_keyboard_c(keyboard):
|
||||
try:
|
||||
@ -790,6 +796,8 @@ def _extract_led_config(info_data, keyboard):
|
||||
info_data[feature]['layout'] = ret
|
||||
except Exception as e:
|
||||
_log_warning(info_data, f'led_config: {file.name}: {e}')
|
||||
else:
|
||||
_log_warning(info_data, 'led_config: matrix size required to parse g_led_config')
|
||||
|
||||
if info_data[feature].get('layout', None) and not info_data[feature].get('led_count', None):
|
||||
info_data[feature]['led_count'] = len(info_data[feature]['layout'])
|
||||
|
@ -27,7 +27,3 @@
|
||||
# define STM32_ONBOARD_EEPROM_SIZE (((EECONFIG_SIZE + 3) / 4) * 4) // based off eeconfig's current usage, aligned to 4-byte sizes, to deal with LTO and EEPROM page sizing
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if STM32_ONBOARD_EEPROM_SIZE > 128
|
||||
# pragma message("Please note: resetting EEPROM using an STM32L0/L1 device takes up to 1 second for every 1kB of internal EEPROM used.")
|
||||
#endif
|
||||
|
@ -249,11 +249,11 @@ bool spi_start_extended(spi_start_config_t *start_config) {
|
||||
#elif defined(AT32F415)
|
||||
spiConfig.ctrl1 = 0;
|
||||
|
||||
if (lsbFirst) {
|
||||
if (start_config->lsb_first) {
|
||||
spiConfig.ctrl1 |= SPI_CTRL1_LTF;
|
||||
}
|
||||
|
||||
switch (mode) {
|
||||
switch (start_config->mode) {
|
||||
case 0:
|
||||
break;
|
||||
case 1:
|
||||
|
@ -64,6 +64,7 @@ __attribute__((weak)) bool dip_switch_update_mask_kb(uint32_t state) {
|
||||
#ifdef DIP_SWITCH_MAP_ENABLE
|
||||
# include "keymap_introspection.h"
|
||||
# include "action.h"
|
||||
# include "wait.h"
|
||||
|
||||
# ifndef DIP_SWITCH_MAP_KEY_DELAY
|
||||
# define DIP_SWITCH_MAP_KEY_DELAY TAP_CODE_DELAY
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
@ -1,4 +1,4 @@
|
||||
// Copyright 2024 QMK
|
||||
// Copyright 2025 QMK
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
/*******************************************************************************
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user