mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-08-21 13:52:17 +00:00
Compare commits
65 Commits
breakpoint
...
0.27.4
Author | SHA1 | Date | |
---|---|---|---|
![]() |
57f89e5388 | ||
![]() |
53680fa6da | ||
![]() |
fe2200f73a | ||
![]() |
fd0a552fc1 | ||
![]() |
f549948bbd | ||
![]() |
5593e73ba7 | ||
![]() |
58323017ff | ||
![]() |
a822545da0 | ||
![]() |
40c93bcdc6 | ||
![]() |
276f84a9a8 | ||
![]() |
0b5e7052f9 | ||
![]() |
18f0d11737 | ||
![]() |
e6fa351d3b | ||
![]() |
18cca2062e | ||
![]() |
58807b0288 | ||
![]() |
9877af9bf8 | ||
![]() |
f3fe59afe2 | ||
![]() |
c988584fc1 | ||
![]() |
a7d12e4e8f | ||
![]() |
767dfbbd3f | ||
![]() |
296e4539f5 | ||
![]() |
2d33a20956 | ||
![]() |
597bbcb567 | ||
![]() |
d589dbb05b | ||
![]() |
d283e27bf8 | ||
![]() |
847257c3c7 | ||
![]() |
388c3c6d12 | ||
![]() |
39958fe854 | ||
![]() |
3c35952944 | ||
![]() |
379bb77005 | ||
![]() |
1c6d3d0cbc | ||
![]() |
782f91a73a | ||
![]() |
a12ff287ee | ||
![]() |
03937e0c86 | ||
![]() |
09fdabf37c | ||
![]() |
d76f7bfac3 | ||
![]() |
3c324cb5e6 | ||
![]() |
d01303c060 | ||
![]() |
5dc92edf11 | ||
![]() |
8094a1d182 | ||
![]() |
88d4462e52 | ||
![]() |
c2bc6e2b3c | ||
![]() |
a794ceeb51 | ||
![]() |
85222dfd8c | ||
![]() |
e7f1388317 | ||
![]() |
f0eb2460d9 | ||
![]() |
93765bb0ef | ||
![]() |
c5eeac9686 | ||
![]() |
191172aa4e | ||
![]() |
c8fe565ee6 | ||
![]() |
50966934b2 | ||
![]() |
09dfbf8efe | ||
![]() |
e4e66c61ad | ||
![]() |
28320f0cb5 | ||
![]() |
cd286e4b9d | ||
![]() |
0ad3ffdfbc | ||
![]() |
fa3be8a3fb | ||
![]() |
e592a7da00 | ||
![]() |
be7786bfc6 | ||
![]() |
39c40f55cb | ||
![]() |
b022d3bc6b | ||
![]() |
5eb53be671 | ||
![]() |
1da8aa8259 | ||
![]() |
97547ac762 | ||
![]() |
66d0d53dc1 |
2
.github/workflows/docs.yml
vendored
2
.github/workflows/docs.yml
vendored
@@ -56,7 +56,7 @@ jobs:
|
||||
|
||||
- name: Deploy
|
||||
if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }}
|
||||
uses: JamesIves/github-pages-deploy-action@v4.6.9
|
||||
uses: JamesIves/github-pages-deploy-action@v4.7.2
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
branch: gh-pages
|
||||
|
@@ -197,8 +197,10 @@ ifneq ("$(wildcard $(KEYMAP_JSON))", "")
|
||||
KEYMAP_C := $(INTERMEDIATE_OUTPUT)/src/keymap.c
|
||||
KEYMAP_H := $(INTERMEDIATE_OUTPUT)/src/config.h
|
||||
|
||||
# Load the keymap-level rules.mk if exists
|
||||
-include $(KEYMAP_PATH)/rules.mk
|
||||
ifeq ($(OTHER_KEYMAP_C),)
|
||||
# Load the keymap-level rules.mk if exists (and we havent already loaded it for keymap.c)
|
||||
-include $(KEYMAP_PATH)/rules.mk
|
||||
endif
|
||||
|
||||
# Load any rules.mk content from keymap.json
|
||||
INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --output $(INTERMEDIATE_OUTPUT)/src/rules.mk $(KEYMAP_JSON))
|
||||
|
@@ -433,6 +433,13 @@ ifeq ($(strip $(LED_MATRIX_ENABLE)), yes)
|
||||
SRC += snled27351-mono.c
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(LED_MATRIX_CUSTOM_KB)), yes)
|
||||
OPT_DEFS += -DLED_MATRIX_CUSTOM_KB
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(LED_MATRIX_CUSTOM_USER)), yes)
|
||||
OPT_DEFS += -DLED_MATRIX_CUSTOM_USER
|
||||
endif
|
||||
endif
|
||||
|
||||
# Deprecated driver names - do not use
|
||||
|
@@ -1140,7 +1140,7 @@
|
||||
"0x00AE": {
|
||||
"group": "media",
|
||||
"key": "KC_MEDIA_PLAY_PAUSE",
|
||||
"label": "Mute",
|
||||
"label": "Play/Pause Track",
|
||||
"aliases": [
|
||||
"KC_MPLY"
|
||||
]
|
||||
|
@@ -21,7 +21,8 @@
|
||||
{ "text": "Debugging QMK", "link": "/faq_debug" },
|
||||
{ "text": "Keymap FAQ", "link": "/faq_keymap" },
|
||||
{ "text": "Squeezing Space from AVR", "link": "/squeezing_avr" },
|
||||
{ "text": "Glossary", "link": "/reference_glossary" }
|
||||
{ "text": "Glossary", "link": "/reference_glossary" },
|
||||
{ "text": "License Violations", "link": "/license_violations" }
|
||||
]
|
||||
},
|
||||
{
|
||||
|
@@ -54,7 +54,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DOWN, BL_UP,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, UG_TOGG, UG_NEXT, UG_HUED, UG_HUEU, UG_SATD, UG_SATU, UG_VALD, UG_VALU, BL_TOGG, BL_DOWN, BL_UP,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_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, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
@@ -82,7 +82,7 @@ The default keymap uses the `LAYOUT_all` macro, so that will be the value of the
|
||||
"KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(1)", "KC_RGUI", "KC_RCTL", "KC_LEFT", "KC_DOWN", "KC_RGHT"
|
||||
],
|
||||
[
|
||||
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RGB_TOG", "RGB_MOD", "RGB_HUD", "RGB_HUI", "RGB_SAD", "RGB_SAI", "RGB_VAD", "RGB_VAI", "BL_TOGG", "BL_DOWN", "BL_UP",
|
||||
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "UG_TOGG", "UG_NEXT", "UG_HUED", "UG_HUEU", "UG_SATD", "UG_SATU", "UG_VALD", "UG_VALU", "BL_TOGG", "BL_DOWN", "BL_UP",
|
||||
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_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", "QK_BOOT", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_MPLY", "KC_MNXT", "KC_VOLD",
|
||||
"KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS",
|
||||
|
@@ -111,7 +111,7 @@ The `post_config.h` file can be used for additional post-processing, depending o
|
||||
#define USB_MAX_POWER_CONSUMPTION 400
|
||||
#else
|
||||
// fix iPhone and iPad power adapter issue
|
||||
// iOS device need lessthan 100
|
||||
// iOS devices need less than 100
|
||||
#define USB_MAX_POWER_CONSUMPTION 100
|
||||
#endif
|
||||
|
||||
|
96
docs/license_violations.md
Normal file
96
docs/license_violations.md
Normal file
@@ -0,0 +1,96 @@
|
||||
# License Violations
|
||||
|
||||
QMK Firmware has seen its fair share of license violations, which hurts the community and frustrates the QMK maintainers.
|
||||
|
||||
Typical non-compliance includes:
|
||||
|
||||
* Not providing any source code
|
||||
* Providing "crippled" source code, such as a wired-only firmware for a wireless-capable board
|
||||
|
||||
Boards from vendors who don't provide source code are proving to be a significant time sink as the QMK team and other support helpers volunteer their time trying to determine which board someone has before they can help -- and in these cases they can't help. Occasionally this is followed by abuse; something that QMK and its volunteers should not be subjected to, rather redirected to the vendor in question.
|
||||
|
||||
The QMK team now actively directs support requests back to each vendor - vendors must provide their own product support for their boards. The QMK team are volunteers, the vendor must not expect the team to act as their support staff.
|
||||
|
||||
## Offending Vendors
|
||||
|
||||
The QMK team cannot tell you which boards you should or should not purchase, but please consider the lack of license compliance from the following vendors before making your decision. If you wish to look at the boards upstream QMK Firmware currently supports, you can search [here](https://browse.qmk.fm/).
|
||||
|
||||
If you own a board from one of the following vendors already, consider asking them for the equivalent QMK source code if it's not already available. With enough customers demanding corresponding source code, vendors may start to change their policies.
|
||||
|
||||
| Vendor | Reason |
|
||||
|------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| BBB Keyboard | Selling tri-mode boards based on QMK without sources, attempted upstreaming crippled firmware without wireless. |
|
||||
| Chillkey | |
|
||||
| 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. |
|
||||
| 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. |
|
||||
| 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. |
|
||||
| Zuoya | Selling tri-mode boards based on QMK without sources, just `via.json` provided. |
|
||||
|
||||
::: danger Violations
|
||||
Links are not provided above as the QMK team does not wish to inadvertently promote purchases of boards in violation of QMK's license.
|
||||
:::
|
||||
|
||||
## Licensing
|
||||
|
||||
QMK Firmware's license requires full disclosure of source code for any firmware which is based on QMK. This includes any of the following scenarios:
|
||||
|
||||
* Use of public QMK Firmware, but with "closed source" privately-held board definitions
|
||||
* Vendor-customised QMK Firmware, which the vendor keeps private for building their own boards
|
||||
* Any other non-QMK firmware which includes portions of QMK Firmware, such as adaptation of `via.c` into any other non-QMK firmware, even if used as a reference when translated to another programming language.
|
||||
|
||||
As per the GPL license requirements, vendors must provide entire source code for the as-shipped firmware.
|
||||
|
||||
QMK has traditionally been lenient with this clause -- providing source code to the QMK community is necessary but reproducing the exact build may not be possible. QMK has required functionally-equivalent source code to be made available. In rare cases exact code may be requested; vendors must keep copies regardless.
|
||||
|
||||
At minimum, vendors must provide the source code through some distribution mechanism. This could potentially be an clearly available downloadable copy of the code online, a fork of QMK Firmware, or even a DVD accompanying the product in the box.
|
||||
|
||||
If sources are unable to be provided in a timely fashion, QMK may revoke the vendor's license, effectively rendering them unable to leverage QMK.
|
||||
|
||||
Vendors choosing to keep things closed-source because of a desire to have a "competitive edge" compared to other vendors is unacceptable to both QMK and the community, and is a breach of the QMK license. There's no reason to do so; any new or interesting vendor-specific feature will be quickly replicated by other vendors or the community anyway.
|
||||
|
||||
## QMK PR Considerations
|
||||
|
||||
Vendors who submit PRs to QMK Firmware whilst not providing full sources for all of their license-violating boards will be put on hold until source code for all violating boards is provided. Intentional deception may result in boards being removed from QMK and all future PRs for that manufacturer being denied outright.
|
||||
|
||||
Submitting crippled source code in order to attain a merge into QMK Firmware to pave the way for VIA support is unacceptable. This includes submitting a wired-only firmware for a wireless-capable board, or any other PR which does not include key features as-advertised.
|
||||
|
||||
Reusing the `VID` and `PID` for multiple boards (such as for two variants, wired and wireless) is an unacceptable scenario as this creates confusion for support. Many customers have flashed boards with the wrong firmware, which could have been avoided if vendors were obvious about their board identification mechanisms.
|
||||
|
||||
If there is sufficient ambiguity about a board, supporting evidence will need to be presented to the QMK team. This may include impartial third parties who can demonstrate a board's existence and can confirm its feature set, such as well-known content producers; popular review sites or notable video creators may be leveraged. If such evidence is unavailable, as a last resort the vendor may be required to ship a fully functional board in full retail packaging to QMK maintainers for verification. Engineering samples will not be accepted, as one-off boards have been deceptively used in the past.
|
||||
|
||||
PRs submitted to upstream QMK should not expect an instant merge just because source code has been provided -- code from OEMs has historically been of a quality lower than QMK standards, so as per the [PR checklist](https://docs.qmk.fm/pr_checklist) submitters should make the changes as small as possible and be prepared to change their implementation.
|
||||
|
||||
## Detection
|
||||
|
||||
If the QMK team identifies or is informed of a license violation from a vendor:
|
||||
|
||||
* Any current and future PRs for that vendor will be indefinitely put on hold, preventing merge into QMK Firmware, thus preventing any out-of-the-box VIA support
|
||||
* Any existing keyboards from the vendor may be removed from QMK Firmware
|
||||
* Vendors will be added to the _offending vendors_ list above
|
||||
|
||||
Repeated violations may result in that vendor being disallowed from contributing the QMK in its entirety. In the worst case, the QMK team may choose to revoke a vendor's license to use QMK Firmware outright.
|
||||
|
||||
## Remediation
|
||||
|
||||
Vendors must provide fully-featured source code for each of their identified violations, matching the feature capabilities of their as-shipped products. This will usually be in their own fork of QMK Firmware while awaiting a merge into upstream.
|
||||
|
||||
Once all identified violations have been remediated, current and future PRs will no longer be on hold and the vendor will be removed from the offending vendors list above.
|
@@ -42,7 +42,7 @@ Look at the output from that command, you should see something like this:
|
||||
Ψ Created a new keymap called <github_username> in: /home/me/qmk_firmware/keyboards/clueboard/66/rev3/keymaps/<github_username>.
|
||||
```
|
||||
|
||||
This is the location of your new `keymap.c` file.
|
||||
This is the location of your new keymap file. Your keyboards default keymap file may be a `.json` file or a `.c` file. If your keymap is a `.json` file it can be converted to a `.c` file using QMK's [`json2c`](cli_commands#qmk-json2c) utility.
|
||||
|
||||
## Open `keymap.c` In Your Favorite Text Editor
|
||||
|
||||
|
7
keyboards/binepad/bnk8/config.h
Normal file
7
keyboards/binepad/bnk8/config.h
Normal file
@@ -0,0 +1,7 @@
|
||||
// Copyright 2024 binepad (@binepad)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
// Timing for SK6812
|
||||
#define WS2812_T1H 650
|
88
keyboards/binepad/bnk8/keyboard.json
Executable file
88
keyboards/binepad/bnk8/keyboard.json
Executable file
@@ -0,0 +1,88 @@
|
||||
{
|
||||
"manufacturer": "binepad",
|
||||
"keyboard_name": "BNK8",
|
||||
"maintainer": "binepad",
|
||||
"bootloader": "stm32duino",
|
||||
"bootloader_instructions": "Hold down the key at (0x0) in the matrix (the top left key) and plug in the keyboard.",
|
||||
"diode_direction": "COL2ROW",
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "A7", "pin_b": "A0", "resolution": 2}
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"encoder": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B3", "B4", "C13"],
|
||||
"rows": ["C14", "B13", "B12"]
|
||||
},
|
||||
"processor": "STM32F103",
|
||||
"rgb_matrix": {
|
||||
"animations": {
|
||||
"breathing": true,
|
||||
"cycle_all": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_pinwheel": true,
|
||||
"cycle_up_down": true,
|
||||
"jellybean_raindrops": true,
|
||||
"riverflow": true,
|
||||
"solid_reactive": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_splash": true,
|
||||
"splash": true,
|
||||
"starlight": true,
|
||||
"starlight_dual_hue": true,
|
||||
"starlight_dual_sat": true
|
||||
},
|
||||
"driver": "ws2812",
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 80, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 1], "x": 112, "y": 0, "flags": 4},
|
||||
{"matrix": [1, 0], "x": 80, "y": 32, "flags": 4},
|
||||
{"matrix": [1, 1], "x": 112, "y": 32, "flags": 4},
|
||||
{"matrix": [1, 2], "x": 144, "y": 32, "flags": 4},
|
||||
{"matrix": [2, 0], "x": 80, "y": 64, "flags": 4},
|
||||
{"matrix": [2, 1], "x": 112, "y": 64, "flags": 4},
|
||||
{"matrix": [2, 2], "x": 144, "y": 64, "flags": 4}
|
||||
],
|
||||
"led_process_limit": 9,
|
||||
"max_brightness": 180,
|
||||
"sleep": true
|
||||
},
|
||||
"url": "https://www.binepad.com/product-page/bnk8",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"vid": "0x4249",
|
||||
"pid": "0x4E41"
|
||||
},
|
||||
"eeprom": {
|
||||
"wear_leveling": {
|
||||
"backing_size": 1024
|
||||
}
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "C15"
|
||||
},
|
||||
"community_layouts": ["ortho_3x3"],
|
||||
"layouts": {
|
||||
"LAYOUT_ortho_3x3": {
|
||||
"layout": [
|
||||
{"label": "1", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "2", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "Knob", "matrix": [0, 2], "x": 2, "y": 0, "encoder": 0},
|
||||
{"label": "3", "matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"label": "4", "matrix": [1, 1], "x": 1, "y": 1},
|
||||
{"label": "5", "matrix": [1, 2], "x": 2, "y": 1},
|
||||
{"label": "6", "matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"label": "7", "matrix": [2, 1], "x": 1, "y": 2},
|
||||
{"label": "8", "matrix": [2, 2], "x": 2, "y": 2}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
40
keyboards/binepad/bnk8/keymaps/default/keymap.json
Normal file
40
keyboards/binepad/bnk8/keymaps/default/keymap.json
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"keyboard": "binepad/bnk8",
|
||||
"version": 1,
|
||||
"author": "binepad",
|
||||
"notes": "Copyright 2024 Binepad (@binepad) \n SPDX-License-Identifier: GPL-2.0-or-later \n This file is a keymap.json file for binepad/bnk8",
|
||||
"keymap": "default",
|
||||
"layout": "LAYOUT_ortho_3x3",
|
||||
"layers": [
|
||||
[
|
||||
"KC_P1", "KC_P2", "KC_MUTE",
|
||||
"KC_P3", "KC_P4", "KC_P5",
|
||||
"KC_P6", "KC_P7", "LT(1, KC_P8)"
|
||||
],
|
||||
[
|
||||
"RM_HUEU", "RM_SATU", "RM_SPDU",
|
||||
"RM_HUED", "RM_SATD", "RM_SPDD",
|
||||
"RM_TOGG", "RM_NEXT", "_______"
|
||||
|
||||
]
|
||||
],
|
||||
"config": {
|
||||
"features": {
|
||||
"encoder_map": true
|
||||
}
|
||||
},
|
||||
"encoders": [
|
||||
[
|
||||
{
|
||||
"ccw": "KC_VOLD",
|
||||
"cw": "KC_VOLU"
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
"ccw": "RM_VALD",
|
||||
"cw": "RM_VALU"
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
26
keyboards/binepad/bnk8/readme.md
Executable file
26
keyboards/binepad/bnk8/readme.md
Executable file
@@ -0,0 +1,26 @@
|
||||
# BINEPAD BNK8
|
||||
|
||||

|
||||
|
||||
A compact 8-key 3x3 macropad with a rotary encoder at the top right.
|
||||
|
||||
* Keyboard Maintainer: [binepad](https://github.com/binepad)
|
||||
* Hardware Supported: BINPAD BNK8
|
||||
* Hardware Availability: [binepad.com](https://binepad.com/products/bnk8)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make binepad/bnk8:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make binepad/bnk8:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 2 ways:
|
||||
|
||||
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key) and plug in the keyboard
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
9
keyboards/cannonkeys/cerberus/config.h
Normal file
9
keyboards/cannonkeys/cerberus/config.h
Normal file
@@ -0,0 +1,9 @@
|
||||
// Copyright 2024 Andrew Kannan
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#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
|
9
keyboards/cannonkeys/cerberus/halconf.h
Normal file
9
keyboards/cannonkeys/cerberus/halconf.h
Normal file
@@ -0,0 +1,9 @@
|
||||
// Copyright 2024 Andrew Kannan
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_SPI TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
|
311
keyboards/cannonkeys/cerberus/hotswap/keyboard.json
Normal file
311
keyboards/cannonkeys/cerberus/hotswap/keyboard.json
Normal file
@@ -0,0 +1,311 @@
|
||||
{
|
||||
"keyboard_name": "Cerberus HS",
|
||||
"usb": {
|
||||
"pid": "0x0034"
|
||||
},
|
||||
"community_layouts": ["tkl_nofrow_ansi"],
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"label": "~", "matrix": [0, 14], "x": 14, "y": 0},
|
||||
{"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
|
||||
{"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
|
||||
{"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
|
||||
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3},
|
||||
{"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25},
|
||||
{"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
|
||||
{"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
|
||||
{"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_nofrow_ansi": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
{"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
|
||||
{"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
|
||||
{"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
|
||||
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
|
||||
{"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25},
|
||||
{"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
|
||||
{"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
|
||||
{"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_nofrow_ansi_tsangan": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
{"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
|
||||
{"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
|
||||
{"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
|
||||
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
|
||||
{"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5},
|
||||
{"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
|
||||
{"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
|
||||
{"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_nofrow_ansi_tsangan_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"label": "~", "matrix": [0, 14], "x": 14, "y": 0},
|
||||
{"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
|
||||
{"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
|
||||
{"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
|
||||
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3},
|
||||
{"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5},
|
||||
{"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
|
||||
{"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
|
||||
{"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,26 @@
|
||||
// Copyright 2024 Andrew Kannan
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_FN1,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = 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_BSPC, KC_GRV, 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_LSFT, MO(1), KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LGUI, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[_FN1] = LAYOUT_all(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, UG_SPDU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, UG_HUED, UG_SATD, UG_VALD, UG_SPDD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, UG_PREV, UG_NEXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
};
|
2
keyboards/cannonkeys/cerberus/hotswap/rules.mk
Normal file
2
keyboards/cannonkeys/cerberus/hotswap/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
# Wildcard to allow APM32 MCU
|
||||
DFU_SUFFIX_ARGS = -v FFFF -p FFFF
|
50
keyboards/cannonkeys/cerberus/info.json
Normal file
50
keyboards/cannonkeys/cerberus/info.json
Normal file
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"manufacturer": "CannonKeys",
|
||||
"maintainer": "awkannan",
|
||||
"bootloader": "stm32-dfu",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": true,
|
||||
"console": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgblight": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B0", "C15", "C14", "A7", "A5", "C13", "A4", "A2", "A1", "A0", "B9", "B8", "B7", "A3", "B6", "B4", "B3", "A15"],
|
||||
"rows": ["B11", "B10", "B2", "F0", "B5"]
|
||||
},
|
||||
"processor": "STM32F072",
|
||||
"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
|
||||
},
|
||||
"url": "https://cannonkeys.com",
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"vid": "0xCA04"
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "spi",
|
||||
"pin": "B15"
|
||||
}
|
||||
}
|
9
keyboards/cannonkeys/cerberus/mcuconf.h
Normal file
9
keyboards/cannonkeys/cerberus/mcuconf.h
Normal file
@@ -0,0 +1,9 @@
|
||||
// Copyright 2024 Andrew Kannan
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_SPI_USE_SPI2
|
||||
#define STM32_SPI_USE_SPI2 TRUE
|
28
keyboards/cannonkeys/cerberus/readme.md
Normal file
28
keyboards/cannonkeys/cerberus/readme.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# Cerberus Keyboard by CannonKeys
|
||||
|
||||
This folder contains firmware for both the Solderable and Hotswap version of Cerberus
|
||||
|
||||
The hotswap PCB does not support per-key LEDs and has reduced layout support (no ISO)
|
||||
|
||||
* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
|
||||
* Hardware Supported: STM32F072CBT6
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cannonkeys/cerberus/hotswap:default
|
||||
make cannonkeys/cerberus/solderable:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make cannonkeys/cerberus/hotswap:default:flash
|
||||
make cannonkeys/cerberus/solderable: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**: Toggle the switch on the back of the pcb to "1" and briefly press the button on the back of the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
8
keyboards/cannonkeys/cerberus/solderable/config.h
Normal file
8
keyboards/cannonkeys/cerberus/solderable/config.h
Normal file
@@ -0,0 +1,8 @@
|
||||
// Copyright 2024 Andrew Kannan
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define BACKLIGHT_PWM_DRIVER PWMD3
|
||||
#define BACKLIGHT_PWM_CHANNEL 1
|
||||
#define BACKLIGHT_PAL_MODE 1
|
10
keyboards/cannonkeys/cerberus/solderable/halconf.h
Normal file
10
keyboards/cannonkeys/cerberus/solderable/halconf.h
Normal file
@@ -0,0 +1,10 @@
|
||||
// Copyright 2024 Andrew Kannan
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_PWM TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
|
711
keyboards/cannonkeys/cerberus/solderable/keyboard.json
Normal file
711
keyboards/cannonkeys/cerberus/solderable/keyboard.json
Normal file
@@ -0,0 +1,711 @@
|
||||
{
|
||||
"keyboard_name": "Cerberus",
|
||||
"backlight": {
|
||||
"breathing": true,
|
||||
"levels": 6,
|
||||
"pin": "A6"
|
||||
},
|
||||
"features": {
|
||||
"backlight": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "F1",
|
||||
"on_state": 0
|
||||
},
|
||||
"usb": {
|
||||
"pid": "0x0031"
|
||||
},
|
||||
"community_layouts": ["tkl_nofrow_ansi", "tkl_nofrow_iso"],
|
||||
"layout_aliases": {
|
||||
"LAYOUT_all": "LAYOUT"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "1", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "2", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "3", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "4", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "5", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "6", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "7", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "8", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "9", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": "0", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "-", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "=", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Backspace", "matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"label": "`", "matrix": [0, 14], "x": 14, "y": 0},
|
||||
{"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"label": "Page Up", "matrix": [0, 17], "x": 17.25, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"label": "[", "matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"label": "]", "matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"label": "\\", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
|
||||
{"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
|
||||
{"label": "Page Down", "matrix": [1, 17], "x": 17.25, "y": 1},
|
||||
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"label": ";", "matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"label": "'", "matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"label": "#", "matrix": [2, 12], "x": 12.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 14], "x": 13.75, "y": 2, "w": 1.25},
|
||||
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"label": "\\", "matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"label": ",", "matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"label": ".", "matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"label": "/", "matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3},
|
||||
{"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"label": "GUI", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"label": "GUI", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25},
|
||||
{"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
|
||||
{"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
|
||||
{"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_nofrow_ansi": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
{"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
|
||||
{"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
|
||||
{"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
|
||||
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
|
||||
{"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25},
|
||||
{"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
|
||||
{"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
|
||||
{"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_nofrow_ansi_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"label": "~", "matrix": [0, 14], "x": 14, "y": 0},
|
||||
{"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
|
||||
{"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
|
||||
{"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
|
||||
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3},
|
||||
{"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25},
|
||||
{"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
|
||||
{"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
|
||||
{"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_nofrow_ansi_tsangan": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
{"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
|
||||
{"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
|
||||
{"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
|
||||
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
|
||||
{"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5},
|
||||
{"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
|
||||
{"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
|
||||
{"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_nofrow_ansi_tsangan_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"label": "~", "matrix": [0, 14], "x": 14, "y": 0},
|
||||
{"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"label": "|", "matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
|
||||
{"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
|
||||
{"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
|
||||
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3},
|
||||
{"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5},
|
||||
{"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
|
||||
{"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
|
||||
{"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_nofrow_iso": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "\"", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "\u00a3", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
{"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
|
||||
{"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
|
||||
{"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
|
||||
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
|
||||
{"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25},
|
||||
{"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
|
||||
{"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
|
||||
{"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_nofrow_iso_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "\"", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "\u00a3", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"label": "\u00ac", "matrix": [0, 14], "x": 14, "y": 0},
|
||||
{"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
|
||||
{"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
|
||||
{"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
|
||||
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3},
|
||||
{"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"label": "Space", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"label": "Fn", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"label": "Ctrl", "matrix": [4, 14], "x": 13.75, "y": 4, "w": 1.25},
|
||||
{"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
|
||||
{"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
|
||||
{"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_nofrow_iso_tsangan": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "\"", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "\u00a3", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
{"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
|
||||
{"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
|
||||
{"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
|
||||
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
|
||||
{"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5},
|
||||
{"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
|
||||
{"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
|
||||
{"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_nofrow_iso_tsangan_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"label": "\"", "matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"label": "\u00a3", "matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"label": "Bksp", "matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"label": "\u00ac", "matrix": [0, 14], "x": 14, "y": 0},
|
||||
{"label": "Insert", "matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"label": "Home", "matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"label": "PgUp", "matrix": [0, 17], "x": 17.25, "y": 0},
|
||||
{"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"label": "Delete", "matrix": [1, 15], "x": 15.25, "y": 1},
|
||||
{"label": "End", "matrix": [1, 16], "x": 16.25, "y": 1},
|
||||
{"label": "PgDn", "matrix": [1, 17], "x": 17.25, "y": 1},
|
||||
{"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"label": "@", "matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"label": "~", "matrix": [2, 12], "x": 12.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"label": "|", "matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"label": "Fn", "matrix": [3, 14], "x": 14, "y": 3},
|
||||
{"label": "\u2191", "matrix": [3, 16], "x": 16.25, "y": 3},
|
||||
{"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"label": "Space", "matrix": [4, 5], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"label": "Ctrl", "matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5},
|
||||
{"label": "\u2190", "matrix": [4, 15], "x": 15.25, "y": 4},
|
||||
{"label": "\u2193", "matrix": [4, 16], "x": 16.25, "y": 4},
|
||||
{"label": "\u2192", "matrix": [4, 17], "x": 17.25, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,25 @@
|
||||
// Copyright 2024 Andrew Kannan
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_FN1,
|
||||
};
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = 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_BSPC, KC_GRV, 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_NUHS, KC_ENT,
|
||||
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_LSFT, MO(1), KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LALT, MO(1), KC_LGUI, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[_FN1] = LAYOUT_all(
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
UG_TOGG, UG_HUEU, UG_SATU, UG_VALU, UG_SPDU, BL_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, UG_HUED, UG_SATD, UG_VALD, UG_SPDD, BL_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, UG_PREV, UG_NEXT, KC_TRNS, BL_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
};
|
24
keyboards/cannonkeys/cerberus/solderable/matrix_diagram.md
Normal file
24
keyboards/cannonkeys/cerberus/solderable/matrix_diagram.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# Matrix Diagram for Cerberus
|
||||
|
||||
```
|
||||
┌───────┐
|
||||
2u Backspace │0D │
|
||||
└───────┘
|
||||
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐
|
||||
│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │ │0F │0G │0H │
|
||||
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ ┌─────┐
|
||||
│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1E │ │1F │1G │1H │ │ │
|
||||
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ┌──┴┐2E │
|
||||
│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2E │ │2C │ │
|
||||
├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ └───┴────┘
|
||||
│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3E │ │3G │ ISO Enter
|
||||
├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐
|
||||
│40 │41 │42 │45 │4A │4B │4C │4E │ │4F │4G │4H │
|
||||
└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘
|
||||
┌────────┐ ┌──────────┐
|
||||
│30 │ 2.25u LShift 2.75u RShift │3C │
|
||||
└────────┘ └──────────┘
|
||||
┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
|
||||
│40 │41 │42 │45 │4B │4C │4E │ Tsangan/WKL
|
||||
└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
|
||||
```
|
9
keyboards/cannonkeys/cerberus/solderable/mcuconf.h
Normal file
9
keyboards/cannonkeys/cerberus/solderable/mcuconf.h
Normal file
@@ -0,0 +1,9 @@
|
||||
// Copyright 2024 Andrew Kannan
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_PWM_USE_TIM3
|
||||
#define STM32_PWM_USE_TIM3 TRUE
|
2
keyboards/cannonkeys/cerberus/solderable/rules.mk
Normal file
2
keyboards/cannonkeys/cerberus/solderable/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
# Wildcard to allow APM32 MCU
|
||||
DFU_SUFFIX_ARGS = -v FFFF -p FFFF
|
9
keyboards/cannonkeys/reverie/config.h
Normal file
9
keyboards/cannonkeys/reverie/config.h
Normal file
@@ -0,0 +1,9 @@
|
||||
// Copyright 2024 Andrew Kannan
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
||||
|
||||
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
|
296
keyboards/cannonkeys/reverie/hotswap/keyboard.json
Normal file
296
keyboards/cannonkeys/reverie/hotswap/keyboard.json
Normal file
@@ -0,0 +1,296 @@
|
||||
{
|
||||
"keyboard_name": "Reverie HS",
|
||||
"usb": {
|
||||
"pid": "0x0033"
|
||||
},
|
||||
"community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs"],
|
||||
"layout_aliases": {
|
||||
"LAYOUT_65_ansi_blocker_split_bs": "LAYOUT_all"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_65_ansi_blocker": {
|
||||
"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": [0, 14], "x": 15, "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": [1, 14], "x": 15, "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, "w": 2.25},
|
||||
{"matrix": [2, 14], "x": 15, "y": 2},
|
||||
{"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": [3, 14], "x": 15, "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": 13, "y": 4},
|
||||
{"matrix": [4, 13], "x": 14, "y": 4},
|
||||
{"matrix": [4, 14], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_ansi_blocker_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": [0, 14], "x": 15, "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": [1, 14], "x": 15, "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, "w": 2.25},
|
||||
{"matrix": [2, 14], "x": 15, "y": 2},
|
||||
{"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": [3, 14], "x": 15, "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": 13, "y": 4},
|
||||
{"matrix": [4, 13], "x": 14, "y": 4},
|
||||
{"matrix": [4, 14], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_ansi_blocker_tsangan_split_bs": {
|
||||
"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": [0, 14], "x": 15, "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": [1, 14], "x": 15, "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, "w": 2.25},
|
||||
{"matrix": [2, 14], "x": 15, "y": 2},
|
||||
{"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": [3, 14], "x": 15, "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": 13, "y": 4},
|
||||
{"matrix": [4, 13], "x": 14, "y": 4},
|
||||
{"matrix": [4, 14], "x": 15, "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": [0, 14], "x": 15, "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": [1, 14], "x": 15, "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, "w": 2.25},
|
||||
{"matrix": [2, 14], "x": 15, "y": 2},
|
||||
{"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": [3, 14], "x": 15, "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": 13, "y": 4},
|
||||
{"matrix": [4, 13], "x": 14, "y": 4},
|
||||
{"matrix": [4, 14], "x": 15, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,27 @@
|
||||
// Copyright 2024 Andrew Kannan
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_FN1
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT_all(
|
||||
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_DEL, KC_HOME,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
|
||||
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_PGUP,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
|
||||
[_FN1] = LAYOUT_all(
|
||||
QK_GESC, 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, _______, _______,
|
||||
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
KC_GRV, _______, _______, _______, _______, _______, _______, _______, QK_BOOT
|
||||
)
|
||||
};
|
24
keyboards/cannonkeys/reverie/info.json
Normal file
24
keyboards/cannonkeys/reverie/info.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"manufacturer": "CannonKeys",
|
||||
"maintainer": "awkannan",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP28", "GP8", "GP14", "GP13", "GP12", "GP11", "GP10", "GP9", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1", "GP0"],
|
||||
"rows": ["GP26", "GP27", "GP15", "GP16", "GP17"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"url": "https://cannonkeys.com",
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"vid": "0xCA04"
|
||||
}
|
||||
}
|
30
keyboards/cannonkeys/reverie/readme.md
Normal file
30
keyboards/cannonkeys/reverie/readme.md
Normal file
@@ -0,0 +1,30 @@
|
||||
# Reverie PCBs
|
||||
|
||||
Reverie PCBs from CannonKeys
|
||||
|
||||
This folder is for both the solderable and hotswap versions of this PCB.
|
||||
|
||||
The hotswap version does not support per-key LEDs and has reduced layout support (no ISO)
|
||||
|
||||
* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
|
||||
* Hardware Supported: RP2040
|
||||
* Hardware Availability: [CannonKeys](https://cannonkeys.com)
|
||||
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cannonkeys/reverie/solderable:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make cannonkeys/reverie/solderable: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**: Hold the "BOOTMODE" button on the back of the PCB and briefly press the "RESET" button on the back of the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
7
keyboards/cannonkeys/reverie/solderable/config.h
Normal file
7
keyboards/cannonkeys/reverie/solderable/config.h
Normal file
@@ -0,0 +1,7 @@
|
||||
// Copyright 2024 Andrew Kannan
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define BACKLIGHT_PWM_DRIVER PWMD3
|
||||
#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A
|
8
keyboards/cannonkeys/reverie/solderable/halconf.h
Normal file
8
keyboards/cannonkeys/reverie/solderable/halconf.h
Normal file
@@ -0,0 +1,8 @@
|
||||
// Copyright 2024 Andrew Kannan
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_PWM TRUE
|
||||
|
||||
#include_next <halconf.h>
|
672
keyboards/cannonkeys/reverie/solderable/keyboard.json
Normal file
672
keyboards/cannonkeys/reverie/solderable/keyboard.json
Normal file
@@ -0,0 +1,672 @@
|
||||
{
|
||||
"keyboard_name": "Reverie",
|
||||
"backlight": {
|
||||
"breathing": true,
|
||||
"breathing_period": 5,
|
||||
"levels": 15,
|
||||
"pin": "GP22"
|
||||
},
|
||||
"features": {
|
||||
"backlight": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "GP29",
|
||||
"on_state": 0
|
||||
},
|
||||
"usb": {
|
||||
"pid": "0x0030"
|
||||
},
|
||||
"community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs", "65_iso_blocker", "65_iso_blocker_split_bs", "65_iso_blocker_tsangan", "65_iso_blocker_tsangan_split_bs"],
|
||||
"layout_aliases": {
|
||||
"LAYOUT": "LAYOUT_all"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_65_ansi_blocker": {
|
||||
"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": [0, 14], "x": 15, "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": [1, 14], "x": 15, "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, "w": 2.25},
|
||||
{"matrix": [2, 14], "x": 15, "y": 2},
|
||||
{"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": [3, 14], "x": 15, "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": 13, "y": 4},
|
||||
{"matrix": [4, 13], "x": 14, "y": 4},
|
||||
{"matrix": [4, 14], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_ansi_blocker_split_bs": {
|
||||
"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": [0, 14], "x": 15, "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": [1, 14], "x": 15, "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, "w": 2.25},
|
||||
{"matrix": [2, 14], "x": 15, "y": 2},
|
||||
{"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": [3, 14], "x": 15, "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": 13, "y": 4},
|
||||
{"matrix": [4, 13], "x": 14, "y": 4},
|
||||
{"matrix": [4, 14], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_ansi_blocker_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": [0, 14], "x": 15, "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": [1, 14], "x": 15, "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, "w": 2.25},
|
||||
{"matrix": [2, 14], "x": 15, "y": 2},
|
||||
{"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": [3, 14], "x": 15, "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": 13, "y": 4},
|
||||
{"matrix": [4, 13], "x": 14, "y": 4},
|
||||
{"matrix": [4, 14], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_ansi_blocker_tsangan_split_bs": {
|
||||
"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": [0, 14], "x": 15, "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": [1, 14], "x": 15, "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, "w": 2.25},
|
||||
{"matrix": [2, 14], "x": 15, "y": 2},
|
||||
{"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": [3, 14], "x": 15, "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": 13, "y": 4},
|
||||
{"matrix": [4, 13], "x": 14, "y": 4},
|
||||
{"matrix": [4, 14], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_iso_blocker": {
|
||||
"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": [0, 14], "x": 15, "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, 14], "x": 15, "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": [1, 13], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"matrix": [2, 14], "x": 15, "y": 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": [3, 14], "x": 15, "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": 13, "y": 4},
|
||||
{"matrix": [4, 13], "x": 14, "y": 4},
|
||||
{"matrix": [4, 14], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_iso_blocker_split_bs": {
|
||||
"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": [0, 14], "x": 15, "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, 14], "x": 15, "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": [1, 13], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"matrix": [2, 14], "x": 15, "y": 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": [3, 14], "x": 15, "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": 13, "y": 4},
|
||||
{"matrix": [4, 13], "x": 14, "y": 4},
|
||||
{"matrix": [4, 14], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_iso_blocker_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": [0, 14], "x": 15, "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, 14], "x": 15, "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": [1, 13], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"matrix": [2, 14], "x": 15, "y": 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": [3, 14], "x": 15, "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": 13, "y": 4},
|
||||
{"matrix": [4, 13], "x": 14, "y": 4},
|
||||
{"matrix": [4, 14], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_iso_blocker_tsangan_split_bs": {
|
||||
"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": [0, 14], "x": 15, "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, 14], "x": 15, "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": [1, 13], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"matrix": [2, 14], "x": 15, "y": 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": [3, 14], "x": 15, "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": 13, "y": 4},
|
||||
{"matrix": [4, 13], "x": 14, "y": 4},
|
||||
{"matrix": [4, 14], "x": 15, "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": [0, 14], "x": 15, "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": [1, 14], "x": 15, "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, "w": 2.25},
|
||||
{"matrix": [2, 14], "x": 15, "y": 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": [3, 14], "x": 15, "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, 5], "x": 3.75, "y": 4, "w": 2.25},
|
||||
{"matrix": [4, 6], "x": 6, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 9], "x": 7.25, "y": 4, "w": 2.75},
|
||||
{"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": 13, "y": 4},
|
||||
{"matrix": [4, 13], "x": 14, "y": 4},
|
||||
{"matrix": [4, 14], "x": 15, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,27 @@
|
||||
// Copyright 2024 Andrew Kannan
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layer_names {
|
||||
_BASE,
|
||||
_FN1
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT_all(
|
||||
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_DEL, KC_HOME,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END,
|
||||
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_PGUP,
|
||||
KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(_FN1), KC_LEFT, KC_DOWN, KC_RIGHT
|
||||
),
|
||||
|
||||
[_FN1] = LAYOUT_all(
|
||||
QK_GESC, 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, _______, _______,
|
||||
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
BL_BRTG, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
BL_UP, _______, BL_DOWN, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT
|
||||
)
|
||||
};
|
27
keyboards/cannonkeys/reverie/solderable/matrix_diagram.md
Normal file
27
keyboards/cannonkeys/reverie/solderable/matrix_diagram.md
Normal file
@@ -0,0 +1,27 @@
|
||||
# Matrix Diagram for CannonKeys Reverie
|
||||
|
||||
```
|
||||
┌───────┐
|
||||
2u Backspace │0D │
|
||||
└───────┘
|
||||
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||
│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │2C │0E │
|
||||
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ ┌─────┐
|
||||
│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │1E │ │ │
|
||||
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ ┌──┴┐2D │ ISO Enter
|
||||
│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │2E │ │1D │ │
|
||||
├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ └───┴────┘
|
||||
│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │
|
||||
├────┴┬──┴┬──┴──┬┴───┴───┴──┬┴──┬┴───┴───┴──┬┴───┴┬─┬───┼───┼───┤
|
||||
│40 │41 │42 │45 │46 │49 │4B │ │4C │4D │4E │
|
||||
└─────┴───┴─────┴───────────┴───┴───────────┴─────┘ └───┴───┴───┘
|
||||
┌────────┐
|
||||
│30 │ 2.25u LShift
|
||||
└────────┘
|
||||
┌─────┬───┬─────┬───────────────────────────┬─────┐
|
||||
│40 │41 │42 │46 │4B │ Blocker Tsangan
|
||||
└─────┴───┴─────┴───────────────────────────┴─────┘
|
||||
┌────┬────┬────┬────────────────────────┬────┬────┐
|
||||
│40 │41 │42 │46 │4A │4B │ Blocker
|
||||
└────┴────┴────┴────────────────────────┴────┴────┘
|
||||
```
|
9
keyboards/cannonkeys/reverie/solderable/mcuconf.h
Normal file
9
keyboards/cannonkeys/reverie/solderable/mcuconf.h
Normal file
@@ -0,0 +1,9 @@
|
||||
// Copyright 2024 Andrew Kannan
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef RP_PWM_USE_PWM3
|
||||
#define RP_PWM_USE_PWM3 TRUE
|
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
|
128
keyboards/chlx/piche60/keyboard.json
Normal file
128
keyboards/chlx/piche60/keyboard.json
Normal file
@@ -0,0 +1,128 @@
|
||||
{
|
||||
"manufacturer": "chlx bsmt",
|
||||
"keyboard_name": "piche60",
|
||||
"maintainer": "gaclee4b",
|
||||
"bootloader": "atmel-dfu",
|
||||
"bootmagic": {
|
||||
"matrix": [1, 1]
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"qmk": {
|
||||
"locking": {
|
||||
"enabled": true,
|
||||
"resync": true
|
||||
}
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "C7",
|
||||
"compose": "B5",
|
||||
"num_lock": "B6",
|
||||
"scroll_lock": "C6",
|
||||
"on_state": 0
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["D0", "F5", "F7", "E6", "F0", "D4", "D5", "D7", "D3", "D2", "D1", "B7", "B3", "B2", "B1", "B0"],
|
||||
"rows": ["F4", "F1", "F6", "D6", "B4"]
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"url": "www.github.com/gaclee3b",
|
||||
"usb": {
|
||||
"device_version": "1.1.0",
|
||||
"pid": "0x0611",
|
||||
"vid": "0x4358"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [1, 1], "x": 0.5, "y": 0},
|
||||
|
||||
{"matrix": [0, 1], "x": 1.75, "y": 0.25},
|
||||
{"matrix": [0, 2], "x": 2.75, "y": 0.25},
|
||||
{"matrix": [0, 3], "x": 3.75, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4.75, "y": 0.25},
|
||||
{"matrix": [0, 5], "x": 5.75, "y": 0.25},
|
||||
{"matrix": [0, 6], "x": 6.75, "y": 0.25},
|
||||
{"matrix": [0, 7], "x": 7.75, "y": 0.25},
|
||||
|
||||
{"matrix": [0, 8], "x": 11, "y": 0.25},
|
||||
{"matrix": [0, 9], "x": 12, "y": 0.25},
|
||||
{"matrix": [0, 10], "x": 13, "y": 0.25},
|
||||
{"matrix": [0, 11], "x": 14, "y": 0.25},
|
||||
{"matrix": [0, 12], "x": 15, "y": 0},
|
||||
{"matrix": [0, 13], "x": 16, "y": 0.25},
|
||||
{"matrix": [0, 14], "x": 17, "y": 0.25},
|
||||
{"matrix": [0, 15], "x": 18, "y": 0.25},
|
||||
|
||||
{"matrix": [2, 1], "x": 0.25, "y": 1},
|
||||
|
||||
{"matrix": [1, 2], "x": 1.5, "y": 1.25, "w": 1.5},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1.25},
|
||||
{"matrix": [1, 4], "x": 4.25, "y": 1.25},
|
||||
{"matrix": [1, 5], "x": 5.25, "y": 1.25},
|
||||
{"matrix": [1, 6], "x": 6.25, "y": 1.25},
|
||||
{"matrix": [1, 7], "x": 7.25, "y": 1.25},
|
||||
|
||||
{"matrix": [1, 8], "x": 10.5, "y": 1.25},
|
||||
{"matrix": [1, 9], "x": 11.5, "y": 1.25},
|
||||
{"matrix": [1, 10], "x": 12.5, "y": 1.25},
|
||||
{"matrix": [1, 11], "x": 13.5, "y": 1.25},
|
||||
{"matrix": [1, 12], "x": 14.75, "y": 1.25},
|
||||
{"matrix": [1, 13], "x": 15.75, "y": 1.25},
|
||||
{"matrix": [1, 14], "x": 16.75, "y": 1.25},
|
||||
{"matrix": [1, 15], "x": 17.75, "y": 1.25, "w": 1.5},
|
||||
|
||||
{"matrix": [3, 1], "x": 0, "y": 2},
|
||||
|
||||
{"matrix": [2, 2], "x": 1.5, "y": 2.25, "w": 1.75},
|
||||
{"matrix": [2, 3], "x": 3.25, "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": 10.75, "y": 2.25},
|
||||
{"matrix": [2, 9], "x": 11.75, "y": 2.25},
|
||||
{"matrix": [2, 10], "x": 12.75, "y": 2.25},
|
||||
{"matrix": [2, 11], "x": 13.75, "y": 2.25},
|
||||
{"matrix": [2, 12], "x": 15.25, "y": 2.25},
|
||||
{"matrix": [2, 13], "x": 16.25, "y": 2.25},
|
||||
{"matrix": [2, 14], "x": 17.25, "y": 2.25, "w": 2.25},
|
||||
|
||||
{"matrix": [3, 2], "x": 1.5, "y": 3.25, "w": 2.25},
|
||||
{"matrix": [3, 3], "x": 3.75, "y": 3.25},
|
||||
{"matrix": [3, 4], "x": 5, "y": 3.25},
|
||||
{"matrix": [3, 5], "x": 6, "y": 3.25},
|
||||
{"matrix": [3, 6], "x": 7, "y": 3.25},
|
||||
{"matrix": [3, 7], "x": 8, "y": 3.25},
|
||||
|
||||
{"matrix": [3, 8], "x": 10.25, "y": 3.25},
|
||||
{"matrix": [3, 9], "x": 11.25, "y": 3.25},
|
||||
{"matrix": [3, 10], "x": 12.25, "y": 3.25},
|
||||
{"matrix": [3, 11], "x": 13.25, "y": 3.25},
|
||||
{"matrix": [3, 12], "x": 15, "y": 3.25},
|
||||
{"matrix": [3, 13], "x": 16, "y": 3.25},
|
||||
{"matrix": [3, 14], "x": 17, "y": 3.25, "w": 1.75},
|
||||
{"matrix": [3, 15], "x": 18.75, "y": 3.25},
|
||||
|
||||
{"matrix": [4, 2], "x": 1.5, "y": 4.25, "w": 1.5},
|
||||
{"matrix": [4, 3], "x": 3, "y": 4.25, "w": 1.25},
|
||||
{"matrix": [4, 4], "x": 5, "y": 4.25, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 6.5, "y": 4.25, "w": 2},
|
||||
{"matrix": [4, 7], "x": 8.5, "y": 4.25},
|
||||
{"matrix": [4, 9], "x": 10.25, "y": 4.25, "w": 2.75},
|
||||
{"matrix": [4, 11], "x": 13, "y": 4.25, "w": 1.5},
|
||||
{"matrix": [4, 13], "x": 15.5, "y": 4.25, "w": 1.25},
|
||||
{"matrix": [4, 14], "x": 16.75, "y": 4.25, "w": 1.25},
|
||||
{"matrix": [4, 15], "x": 18, "y": 4.25, "w": 1.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
34
keyboards/chlx/piche60/keymaps/default/keymap.c
Normal file
34
keyboards/chlx/piche60/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
Copyright 2024 Alexander Lee <chlx.bsmt@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
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT(
|
||||
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_DEL, KC_BSPC,
|
||||
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_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_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_LGUI, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL),
|
||||
[1] = LAYOUT(
|
||||
KC_TRNS, KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_UP, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_END, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
|
||||
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||
};
|
31
keyboards/chlx/piche60/readme.md
Normal file
31
keyboards/chlx/piche60/readme.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# piche60
|
||||
|
||||

|
||||
|
||||
- 60% alice format keyboard pcb with USB-C and unified daughterboard compatibility.
|
||||
- Layout adds 3 additional keys in the palm area voids of traditional alice format.
|
||||
- USB-C can be snapped off and converted into an ai03 C3 compatible daughterboard.
|
||||
- Left and right halves can be snapped off and connected through 14-pin JST-SH interfaces.
|
||||
- PCB can be manufactured with top-side USB-C for compatibility with legacy alice PCBs.
|
||||
|
||||
Keyboard Maintainer: [Alexander Lee](https://github.com/gaclee3b)
|
||||
Hardware Supported: chlx PCB piche60.x.x.x; top-side USB version compatible with most keyboard cases using legacy alice format PCBs (i.e. lubrigante)
|
||||
Hardware Availability: sales are typically done in-stock as bulk listings on reddit's mechanical keyboard market (r/mechmarket)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make chlx/piche60:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make chlx/piche60: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 bootloader mode by any of the following options -
|
||||
- When unplugged, holding the top-left key (typically ESC) while plugging in the keyboard
|
||||
- When already plugged in, pressing and releasing the reset button on the pcb bottom behind the CAPSLOCK / A-key region
|
||||
- When already plugged in, shorting out the two reset metal contacts near the 'z' key (accessible through the switch LED slot)
|
||||
|
61
keyboards/cipulot/ec1_at/config.h
Normal file
61
keyboards/cipulot/ec1_at/config.h
Normal file
@@ -0,0 +1,61 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 21
|
||||
|
||||
#define UNUSED_POSITIONS_LIST { {2, 16}, {4, 5}, {4, 7}, {4, 9}, {4, 12}, {4, 16} }
|
||||
|
||||
#define MATRIX_ROW_PINS {A8, B15, B14, B12, B13}
|
||||
|
||||
#define AMUX_COUNT 2
|
||||
#define AMUX_MAX_COLS_COUNT 16
|
||||
|
||||
#define AMUX_EN_PINS {B5, A15}
|
||||
|
||||
#define AMUX_SEL_PINS {B6, B7, B4, B3}
|
||||
|
||||
#define AMUX_COL_CHANNELS_SIZES {16, 5}
|
||||
|
||||
#define AMUX_0_COL_CHANNELS {5, 6, 7, 4, 3, 2, 1, 0, 8, 15, 14, 13, 12, 10, 9, 11}
|
||||
|
||||
#define AMUX_1_COL_CHANNELS {4, 2, 1, 0, 3}
|
||||
|
||||
#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS, AMUX_1_COL_CHANNELS
|
||||
|
||||
#define DISCHARGE_PIN A2
|
||||
#define ANALOG_PORT A3
|
||||
|
||||
#define DEFAULT_ACTUATION_MODE 0
|
||||
#define DEFAULT_MODE_0_ACTUATION_LEVEL 550
|
||||
#define DEFAULT_MODE_0_RELEASE_LEVEL 500
|
||||
#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL
|
||||
#define DEFAULT_MODE_1_ACTUATION_OFFSET 70
|
||||
#define DEFAULT_MODE_1_RELEASE_OFFSET 70
|
||||
#define DEFAULT_EXTREMUM 1023
|
||||
#define EXPECTED_NOISE_FLOOR 0
|
||||
#define NOISE_FLOOR_THRESHOLD 50
|
||||
#define BOTTOMING_CALIBRATION_THRESHOLD 50
|
||||
#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30
|
||||
#define DEFAULT_BOTTOMING_READING 1023
|
||||
#define DEFAULT_CALIBRATION_STARTER true
|
||||
|
||||
#define DISCHARGE_TIME 10
|
||||
|
||||
#define EECONFIG_KB_DATA_SIZE 219
|
||||
#define DYNAMIC_KEYMAP_MACRO_COUNT 30
|
21
keyboards/cipulot/ec1_at/halconf.h
Normal file
21
keyboards/cipulot/ec1_at/halconf.h
Normal file
@@ -0,0 +1,21 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_ADC TRUE
|
||||
|
||||
#include_next <halconf.h>
|
142
keyboards/cipulot/ec1_at/keyboard.json
Normal file
142
keyboards/cipulot/ec1_at/keyboard.json
Normal file
@@ -0,0 +1,142 @@
|
||||
{
|
||||
"manufacturer": "Cipulot",
|
||||
"keyboard_name": "EC1-AT",
|
||||
"maintainer": "Cipulot",
|
||||
"bootloader": "stm32-dfu",
|
||||
"build": {
|
||||
"lto": true
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"eeprom": {
|
||||
"wear_leveling": {
|
||||
"backing_size": 16384
|
||||
}
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": false,
|
||||
"console": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"processor": "STM32F411",
|
||||
"qmk": {
|
||||
"locking": {
|
||||
"enabled": true,
|
||||
"resync": true
|
||||
}
|
||||
},
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0x6BCE",
|
||||
"shared_endpoint": {
|
||||
"keyboard": true
|
||||
},
|
||||
"vid": "0x6369"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4.25, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5.25, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6.25, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7.25, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8.25, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9.25, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10.25, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11.25, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12.25, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13.25, "y": 0},
|
||||
{"matrix": [0, 14], "x": 14.25, "y": 0},
|
||||
{"matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"matrix": [0, 17], "x": 17.5, "y": 0},
|
||||
{"matrix": [0, 18], "x": 18.5, "y": 0},
|
||||
{"matrix": [0, 19], "x": 19.5, "y": 0},
|
||||
{"matrix": [0, 20], "x": 20.5, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.25, "y": 1, "w": 1.5},
|
||||
{"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},
|
||||
{"matrix": [1, 13], "x": 13.75, "y": 1},
|
||||
{"matrix": [1, 14], "x": 14.75, "y": 1},
|
||||
{"matrix": [1, 15], "x": 15.75, "y": 1, "w": 0.75},
|
||||
{"matrix": [1, 16], "x": 16.5, "y": 1, "w": 0.75},
|
||||
{"matrix": [1, 17], "x": 17.5, "y": 1},
|
||||
{"matrix": [1, 18], "x": 18.5, "y": 1},
|
||||
{"matrix": [1, 19], "x": 19.5, "y": 1},
|
||||
{"matrix": [1, 20], "x": 20.5, "y": 1},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"matrix": [2, 1], "x": 1, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.25, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 3], "x": 4, "y": 2},
|
||||
{"matrix": [2, 4], "x": 5, "y": 2},
|
||||
{"matrix": [2, 5], "x": 6, "y": 2},
|
||||
{"matrix": [2, 6], "x": 7, "y": 2},
|
||||
{"matrix": [2, 7], "x": 8, "y": 2},
|
||||
{"matrix": [2, 8], "x": 9, "y": 2},
|
||||
{"matrix": [2, 9], "x": 10, "y": 2},
|
||||
{"matrix": [2, 10], "x": 11, "y": 2},
|
||||
{"matrix": [2, 11], "x": 12, "y": 2},
|
||||
{"matrix": [2, 12], "x": 13, "y": 2},
|
||||
{"matrix": [2, 13], "x": 14, "y": 2},
|
||||
{"matrix": [2, 14], "x": 15, "y": 2},
|
||||
{"matrix": [2, 15], "x": 16, "y": 2, "w": 1.25},
|
||||
{"matrix": [2, 17], "x": 17.5, "y": 2},
|
||||
{"matrix": [2, 18], "x": 18.5, "y": 2},
|
||||
{"matrix": [2, 19], "x": 19.5, "y": 2},
|
||||
{"matrix": [2, 20], "x": 20.5, "y": 2},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3},
|
||||
{"matrix": [3, 1], "x": 1, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 3], "x": 3.5, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.5, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.5, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.5, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.5, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.5, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.5, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.5, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.5, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.5, "y": 3},
|
||||
{"matrix": [3, 13], "x": 13.5, "y": 3},
|
||||
{"matrix": [3, 14], "x": 14.5, "y": 3},
|
||||
{"matrix": [3, 15], "x": 15.5, "y": 3, "w": 0.75},
|
||||
{"matrix": [3, 16], "x": 16.25, "y": 3},
|
||||
{"matrix": [3, 17], "x": 17.5, "y": 3},
|
||||
{"matrix": [3, 18], "x": 18.5, "y": 3},
|
||||
{"matrix": [3, 19], "x": 19.5, "y": 3},
|
||||
{"matrix": [3, 20], "x": 20.5, "y": 3},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4},
|
||||
{"matrix": [4, 1], "x": 1, "y": 4},
|
||||
{"matrix": [4, 2], "x": 2.25, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 3], "x": 3.75, "y": 4},
|
||||
{"matrix": [4, 4], "x": 4.75, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 6.25, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 8], "x": 7.75, "y": 4, "w": 2.5},
|
||||
{"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 11], "x": 11.75, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 13], "x": 13.25, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 14], "x": 14.75, "y": 4},
|
||||
{"matrix": [4, 15], "x": 15.75, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 17], "x": 17.5, "y": 4},
|
||||
{"matrix": [4, 18], "x": 18.5, "y": 4},
|
||||
{"matrix": [4, 19], "x": 19.5, "y": 4},
|
||||
{"matrix": [4, 20], "x": 20.5, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
42
keyboards/cipulot/ec1_at/keymaps/default/keymap.c
Normal file
42
keyboards/cipulot/ec1_at/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,42 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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(
|
||||
_______, _______, 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_BSPC, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS,
|
||||
_______, _______, 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_ENTER, KC_P7, KC_P8, KC_P9, KC_PMNS,
|
||||
_______, _______, 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_ENTER, KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||
_______, _______, 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_RSFT, MO(1), KC_P1, KC_P2, KC_P3, KC_PENT,
|
||||
_______, _______, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, MO(1), KC_RCTL, KC_P0, KC_P0, KC_PDOT, KC_PENT),
|
||||
|
||||
[1] = LAYOUT(
|
||||
_______, _______, _______, 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, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_RIGHT, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______),
|
||||
|
||||
[2] = LAYOUT(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
// clang-format on
|
||||
};
|
22
keyboards/cipulot/ec1_at/mcuconf.h
Normal file
22
keyboards/cipulot/ec1_at/mcuconf.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_ADC_USE_ADC1
|
||||
#define STM32_ADC_USE_ADC1 TRUE
|
1
keyboards/cipulot/ec1_at/post_rules.mk
Normal file
1
keyboards/cipulot/ec1_at/post_rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
include keyboards/cipulot/common/common_cipulot.mk
|
26
keyboards/cipulot/ec1_at/readme.md
Normal file
26
keyboards/cipulot/ec1_at/readme.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# EC1-AT
|
||||
|
||||

|
||||
|
||||
EC version of the W1-AT keyboard.
|
||||
|
||||
* Keyboard Maintainer: [cipulot](https://github.com/cipulot)
|
||||
* Hardware Supported: EC1-AT
|
||||
* Hardware Availability: TBD
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cipulot/ec1_at:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make cipulot/ec1_at: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**: Long press the button on the back of the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
1
keyboards/cipulot/ec1_at/rules.mk
Normal file
1
keyboards/cipulot/ec1_at/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
OPT = 3
|
69
keyboards/cipulot/ec_65x/config.h
Normal file
69
keyboards/cipulot/ec_65x/config.h
Normal file
@@ -0,0 +1,69 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 16
|
||||
|
||||
#define MATRIX_ROW_PINS \
|
||||
{ A8, A15, B13, B8, B9}
|
||||
|
||||
#define AMUX_COUNT 1
|
||||
#define AMUX_MAX_COLS_COUNT 16
|
||||
|
||||
#define AMUX_EN_PINS \
|
||||
{ B5 }
|
||||
|
||||
#define AMUX_SEL_PINS \
|
||||
{ B6, B7, B4, B3 }
|
||||
|
||||
#define AMUX_COL_CHANNELS_SIZES \
|
||||
{ 16 }
|
||||
|
||||
#define AMUX_0_COL_CHANNELS \
|
||||
{ 7, 6, 5, 4, 3, 2, 1, 0, 8, 15, 14, 12, 11, 13, 9, 10}
|
||||
|
||||
#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS
|
||||
|
||||
#define DISCHARGE_PIN A2
|
||||
#define ANALOG_PORT A3
|
||||
|
||||
#define DEFAULT_ACTUATION_MODE 0
|
||||
#define DEFAULT_MODE_0_ACTUATION_LEVEL 550
|
||||
#define DEFAULT_MODE_0_RELEASE_LEVEL 500
|
||||
#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL
|
||||
#define DEFAULT_MODE_1_ACTUATION_OFFSET 70
|
||||
#define DEFAULT_MODE_1_RELEASE_OFFSET 70
|
||||
#define DEFAULT_EXTREMUM 1023
|
||||
#define EXPECTED_NOISE_FLOOR 0
|
||||
#define NOISE_FLOOR_THRESHOLD 50
|
||||
#define BOTTOMING_CALIBRATION_THRESHOLD 50
|
||||
#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30
|
||||
#define DEFAULT_BOTTOMING_READING 1023
|
||||
#define DEFAULT_CALIBRATION_STARTER true
|
||||
|
||||
#define DISCHARGE_TIME 10
|
||||
|
||||
#define EECONFIG_KB_DATA_SIZE 169
|
||||
|
||||
// PWM driver with direct memory access (DMA) support
|
||||
#define WS2812_PWM_COMPLEMENTARY_OUTPUT
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
23
keyboards/cipulot/ec_65x/halconf.h
Normal file
23
keyboards/cipulot/ec_65x/halconf.h
Normal file
@@ -0,0 +1,23 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_ADC TRUE
|
||||
#define HAL_USE_PAL TRUE
|
||||
#define HAL_USE_PWM TRUE
|
||||
|
||||
#include_next <halconf.h>
|
420
keyboards/cipulot/ec_65x/keyboard.json
Normal file
420
keyboards/cipulot/ec_65x/keyboard.json
Normal file
@@ -0,0 +1,420 @@
|
||||
{
|
||||
"manufacturer": "Cipulot",
|
||||
"keyboard_name": "EC 65X",
|
||||
"maintainer": "Cipulot",
|
||||
"bootloader": "stm32-dfu",
|
||||
"build": {
|
||||
"lto": true
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"eeprom": {
|
||||
"wear_leveling": {
|
||||
"backing_size": 4096
|
||||
}
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": false,
|
||||
"console": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgblight": true
|
||||
},
|
||||
"processor": "STM32F411",
|
||||
"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": 19
|
||||
},
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0x6BD1",
|
||||
"shared_endpoint": {
|
||||
"keyboard": true
|
||||
},
|
||||
"vid": "0x6369"
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "pwm",
|
||||
"pin": "B15"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_65_ansi_blocker": {
|
||||
"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": [0, 15], "x": 15, "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": [1, 15], "x": 15, "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, "w": 2.25},
|
||||
{"matrix": [2, 15], "x": 15, "y": 2},
|
||||
{"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, 14], "x": 14, "y": 3},
|
||||
{"matrix": [3, 15], "x": 15, "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": 13, "y": 4},
|
||||
{"matrix": [4, 14], "x": 14, "y": 4},
|
||||
{"matrix": [4, 15], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_ansi_blocker_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": [0, 15], "x": 15, "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": [1, 15], "x": 15, "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, "w": 2.25},
|
||||
{"matrix": [2, 15], "x": 15, "y": 2},
|
||||
{"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, 14], "x": 14, "y": 3},
|
||||
{"matrix": [3, 15], "x": 15, "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": 13, "y": 4},
|
||||
{"matrix": [4, 14], "x": 14, "y": 4},
|
||||
{"matrix": [4, 15], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_iso_blocker": {
|
||||
"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": [0, 15], "x": 15, "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, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"matrix": [1, 15], "x": 15, "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, 12], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 15], "x": 15, "y": 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, 14], "x": 14, "y": 3},
|
||||
{"matrix": [3, 15], "x": 15, "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": 13, "y": 4},
|
||||
{"matrix": [4, 14], "x": 14, "y": 4},
|
||||
{"matrix": [4, 15], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_iso_blocker_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": [0, 15], "x": 15, "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, 14], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
{"matrix": [1, 15], "x": 15, "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, 12], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 15], "x": 15, "y": 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, 14], "x": 14, "y": 3},
|
||||
{"matrix": [3, 15], "x": 15, "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": 13, "y": 4},
|
||||
{"matrix": [4, 14], "x": 14, "y": 4},
|
||||
{"matrix": [4, 15], "x": 15, "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": [0, 14], "x": 14, "y": 0},
|
||||
{"matrix": [0, 15], "x": 15, "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": 0.75},
|
||||
{"matrix": [1, 14], "x": 14.25, "y": 1, "w": 0.75},
|
||||
{"matrix": [1, 15], "x": 15, "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, 12], "x": 12.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25},
|
||||
{"matrix": [2, 15], "x": 15, "y": 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, 14], "x": 14, "y": 3},
|
||||
{"matrix": [3, 15], "x": 15, "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, 4], "x": 3.75, "y": 4, "w": 2.25},
|
||||
{"matrix": [4, 6], "x": 6, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 8], "x": 7.25, "y": 4, "w": 2.75},
|
||||
{"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": 13, "y": 4},
|
||||
{"matrix": [4, 14], "x": 14, "y": 4},
|
||||
{"matrix": [4, 15], "x": 15, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
42
keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker/keymap.c
Normal file
42
keyboards/cipulot/ec_65x/keymaps/65_ansi_blocker/keymap.c
Normal file
@@ -0,0 +1,42 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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_65_ansi_blocker(
|
||||
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_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_PGUP,
|
||||
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_ENTER, KC_PGDN,
|
||||
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, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
[1] = LAYOUT_65_ansi_blocker(
|
||||
_______, 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_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, MO(2), _______, _______, _______),
|
||||
|
||||
[2] = LAYOUT_65_ansi_blocker(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
// clang-format on
|
||||
};
|
@@ -0,0 +1,42 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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_65_ansi_blocker_tsangan(
|
||||
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_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_PGUP,
|
||||
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_ENTER, KC_PGDN,
|
||||
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, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
[1] = LAYOUT_65_ansi_blocker_tsangan(
|
||||
_______, 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_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, MO(2), _______, _______, _______),
|
||||
|
||||
[2] = LAYOUT_65_ansi_blocker_tsangan(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______)
|
||||
// clang-format on
|
||||
};
|
42
keyboards/cipulot/ec_65x/keymaps/65_iso_blocker/keymap.c
Normal file
42
keyboards/cipulot/ec_65x/keymaps/65_iso_blocker/keymap.c
Normal file
@@ -0,0 +1,42 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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_65_iso_blocker(
|
||||
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_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_ENTER, KC_PGUP,
|
||||
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_PGDN,
|
||||
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, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
[1] = LAYOUT_65_iso_blocker(
|
||||
_______, 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_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, MO(2), _______, _______, _______),
|
||||
|
||||
[2] = LAYOUT_65_iso_blocker(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
// clang-format on
|
||||
};
|
@@ -0,0 +1,42 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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_65_iso_blocker_tsangan(
|
||||
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_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_ENTER, KC_PGUP,
|
||||
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_PGDN,
|
||||
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, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
[1] = LAYOUT_65_iso_blocker_tsangan(
|
||||
_______, 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_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, MO(2), _______, _______, _______),
|
||||
|
||||
[2] = LAYOUT_65_iso_blocker_tsangan(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______)
|
||||
// clang-format on
|
||||
};
|
42
keyboards/cipulot/ec_65x/keymaps/default/keymap.c
Normal file
42
keyboards/cipulot/ec_65x/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,42 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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(
|
||||
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_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_ENTER, KC_PGUP,
|
||||
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_ENTER, KC_PGDN,
|
||||
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, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
[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_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______),
|
||||
|
||||
[2] = LAYOUT_all(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
// clang-format on
|
||||
};
|
25
keyboards/cipulot/ec_65x/mcuconf.h
Normal file
25
keyboards/cipulot/ec_65x/mcuconf.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_ADC_USE_ADC1
|
||||
#define STM32_ADC_USE_ADC1 TRUE
|
||||
|
||||
#undef STM32_PWM_USE_TIM1
|
||||
#define STM32_PWM_USE_TIM1 TRUE
|
1
keyboards/cipulot/ec_65x/post_rules.mk
Normal file
1
keyboards/cipulot/ec_65x/post_rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
include keyboards/cipulot/common/common_cipulot.mk
|
26
keyboards/cipulot/ec_65x/readme.md
Normal file
26
keyboards/cipulot/ec_65x/readme.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# EC 65X
|
||||
|
||||

|
||||
|
||||
Universal 65% Electrostatic Capacitive PCB, with multi-layout support.
|
||||
|
||||
* Keyboard Maintainer: [cipulot](https://github.com/cipulot)
|
||||
* Hardware Supported: EC 65X
|
||||
* Hardware Availability: TBD
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cipulot/ec_66x:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make cipulot/ec_66x: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 button**: Long press the button on the back of the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
1
keyboards/cipulot/ec_65x/rules.mk
Normal file
1
keyboards/cipulot/ec_65x/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
OPT = 2
|
63
keyboards/cipulot/ec_constellation/config.h
Normal file
63
keyboards/cipulot/ec_constellation/config.h
Normal file
@@ -0,0 +1,63 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define MATRIX_ROWS 5
|
||||
#define MATRIX_COLS 15
|
||||
|
||||
#define UNUSED_POSITIONS_LIST { {3, 1}, {4, 3}, {4, 4}, {4, 5}, {4, 7}, {4, 8}, {4, 9} }
|
||||
|
||||
#define MATRIX_ROW_PINS \
|
||||
{ A8, A15, B12, B8, B9 }
|
||||
|
||||
#define AMUX_COUNT 1
|
||||
#define AMUX_MAX_COLS_COUNT 15
|
||||
|
||||
#define AMUX_EN_PINS \
|
||||
{ B5 }
|
||||
|
||||
#define AMUX_SEL_PINS \
|
||||
{ B6, B7, B4, B3 }
|
||||
|
||||
#define AMUX_COL_CHANNELS_SIZES \
|
||||
{ 15 }
|
||||
|
||||
#define AMUX_0_COL_CHANNELS \
|
||||
{ 7, 6, 5, 4, 3, 2, 1, 0, 9, 15, 14, 13, 10, 11, 12}
|
||||
|
||||
#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS
|
||||
|
||||
#define DISCHARGE_PIN A2
|
||||
#define ANALOG_PORT A3
|
||||
|
||||
#define DEFAULT_ACTUATION_MODE 0
|
||||
#define DEFAULT_MODE_0_ACTUATION_LEVEL 550
|
||||
#define DEFAULT_MODE_0_RELEASE_LEVEL 500
|
||||
#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL
|
||||
#define DEFAULT_MODE_1_ACTUATION_OFFSET 70
|
||||
#define DEFAULT_MODE_1_RELEASE_OFFSET 70
|
||||
#define DEFAULT_EXTREMUM 1023
|
||||
#define EXPECTED_NOISE_FLOOR 0
|
||||
#define NOISE_FLOOR_THRESHOLD 50
|
||||
#define BOTTOMING_CALIBRATION_THRESHOLD 50
|
||||
#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30
|
||||
#define DEFAULT_BOTTOMING_READING 1023
|
||||
#define DEFAULT_CALIBRATION_STARTER true
|
||||
|
||||
#define DISCHARGE_TIME 10
|
||||
|
||||
#define EECONFIG_KB_DATA_SIZE 159
|
21
keyboards/cipulot/ec_constellation/halconf.h
Normal file
21
keyboards/cipulot/ec_constellation/halconf.h
Normal file
@@ -0,0 +1,21 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_ADC TRUE
|
||||
|
||||
#include_next <halconf.h>
|
185
keyboards/cipulot/ec_constellation/keyboard.json
Normal file
185
keyboards/cipulot/ec_constellation/keyboard.json
Normal file
@@ -0,0 +1,185 @@
|
||||
{
|
||||
"manufacturer": "Cipulot",
|
||||
"keyboard_name": "Constellation EC",
|
||||
"maintainer": "Cipulot",
|
||||
"bootloader": "stm32-dfu",
|
||||
"build": {
|
||||
"lto": true
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"eeprom": {
|
||||
"wear_leveling": {
|
||||
"backing_size": 4096
|
||||
}
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": false,
|
||||
"console": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"processor": "STM32F411",
|
||||
"qmk": {
|
||||
"locking": {
|
||||
"enabled": true,
|
||||
"resync": true
|
||||
}
|
||||
},
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0x6BC9",
|
||||
"shared_endpoint": {
|
||||
"keyboard": true
|
||||
},
|
||||
"vid": "0x6369"
|
||||
},
|
||||
"layout_aliases": {
|
||||
"LAYOUT_all": "LAYOUT_65_ansi_rwkl_split_bs"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_65_ansi_rwkl": {
|
||||
"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, 14], "x": 15, "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, 14], "x": 15, "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, 12], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [2, 13], "x": 15, "y": 2},
|
||||
{"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": [3, 14], "x": 15, "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": 6.25},
|
||||
{"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 11], "x": 11.75, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 12], "x": 13, "y": 4},
|
||||
{"matrix": [4, 13], "x": 14, "y": 4},
|
||||
{"matrix": [4, 14], "x": 15, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_65_ansi_rwkl_split_bs": {
|
||||
"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": [0, 14], "x": 14, "y": 0},
|
||||
{"matrix": [1, 14], "x": 15, "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, 14], "x": 15, "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, 12], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [2, 13], "x": 15, "y": 2},
|
||||
{"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": [3, 14], "x": 15, "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": 6.25},
|
||||
{"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 11], "x": 11.75, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 12], "x": 13, "y": 4},
|
||||
{"matrix": [4, 13], "x": 14, "y": 4},
|
||||
{"matrix": [4, 14], "x": 15, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,43 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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_65_ansi_rwkl(
|
||||
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, KC_HOME,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
||||
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_PGDN,
|
||||
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_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_65_ansi_rwkl(
|
||||
KC_GRV, 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, _______,
|
||||
_______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
[2] = LAYOUT_65_ansi_rwkl(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
// clang-format on
|
||||
};
|
43
keyboards/cipulot/ec_constellation/keymaps/default/keymap.c
Normal file
43
keyboards/cipulot/ec_constellation/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,43 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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_65_ansi_rwkl_split_bs(
|
||||
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, KC_BSPC, KC_HOME,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
||||
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_PGDN,
|
||||
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_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_65_ansi_rwkl_split_bs(
|
||||
KC_GRV, 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, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
[2] = LAYOUT_65_ansi_rwkl_split_bs(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
// clang-format on
|
||||
};
|
22
keyboards/cipulot/ec_constellation/mcuconf.h
Normal file
22
keyboards/cipulot/ec_constellation/mcuconf.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_ADC_USE_ADC1
|
||||
#define STM32_ADC_USE_ADC1 TRUE
|
1
keyboards/cipulot/ec_constellation/post_rules.mk
Normal file
1
keyboards/cipulot/ec_constellation/post_rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
include keyboards/cipulot/common/common_cipulot.mk
|
26
keyboards/cipulot/ec_constellation/readme.md
Normal file
26
keyboards/cipulot/ec_constellation/readme.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# Constellation EC
|
||||
|
||||

|
||||
|
||||
EC version of the Constellation keyboard.
|
||||
|
||||
* Keyboard Maintainer: [cipulot](https://github.com/cipulot)
|
||||
* Hardware Supported: Constellation EC PCB
|
||||
* Hardware Availability: [Keyboard Treehouse](https://keyboardtreehouse.com/collections/constellation)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cipulot/ec_constellation:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make cipulot/ec_constellation: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**: Long short the exposed pins on the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
1
keyboards/cipulot/ec_constellation/rules.mk
Normal file
1
keyboards/cipulot/ec_constellation/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
OPT = 3
|
68
keyboards/cipulot/ec_tkl_x/config.h
Normal file
68
keyboards/cipulot/ec_tkl_x/config.h
Normal file
@@ -0,0 +1,68 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define MATRIX_ROWS 6
|
||||
#define MATRIX_COLS 18
|
||||
|
||||
#define UNUSED_POSITIONS_LIST { {0, 13}, {3, 14}, {3, 15}, {3, 16}, {3, 17}, {4, 15}, {4, 17}, {5, 3}, {5, 5}, {5, 7}, {5, 10}, {5, 15} }
|
||||
|
||||
#define MATRIX_ROW_PINS {A15, B5, B12, B10, B6, B7}
|
||||
|
||||
#define AMUX_COUNT 2
|
||||
#define AMUX_MAX_COLS_COUNT 15
|
||||
|
||||
#define AMUX_EN_PINS {B13, A10}
|
||||
|
||||
#define AMUX_SEL_PINS {A8, A9, B14, B15}
|
||||
|
||||
#define AMUX_COL_CHANNELS_SIZES {15, 3}
|
||||
|
||||
#define AMUX_0_COL_CHANNELS {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}
|
||||
|
||||
#define AMUX_1_COL_CHANNELS {3, 0, 1}
|
||||
|
||||
#define AMUX_COL_CHANNELS AMUX_0_COL_CHANNELS, AMUX_1_COL_CHANNELS
|
||||
|
||||
#define DISCHARGE_PIN A4
|
||||
#define ANALOG_PORT A2
|
||||
|
||||
#define DEFAULT_ACTUATION_MODE 0
|
||||
#define DEFAULT_MODE_0_ACTUATION_LEVEL 550
|
||||
#define DEFAULT_MODE_0_RELEASE_LEVEL 500
|
||||
#define DEFAULT_MODE_1_INITIAL_DEADZONE_OFFSET DEFAULT_MODE_0_ACTUATION_LEVEL
|
||||
#define DEFAULT_MODE_1_ACTUATION_OFFSET 70
|
||||
#define DEFAULT_MODE_1_RELEASE_OFFSET 70
|
||||
#define DEFAULT_EXTREMUM 1023
|
||||
#define EXPECTED_NOISE_FLOOR 0
|
||||
#define NOISE_FLOOR_THRESHOLD 50
|
||||
#define BOTTOMING_CALIBRATION_THRESHOLD 50
|
||||
#define DEFAULT_NOISE_FLOOR_SAMPLING_COUNT 30
|
||||
#define DEFAULT_BOTTOMING_READING 1023
|
||||
#define DEFAULT_CALIBRATION_STARTER true
|
||||
|
||||
#define DISCHARGE_TIME 10
|
||||
|
||||
// #define DEBUG_MATRIX_SCAN_RATE
|
||||
#define EECONFIG_KB_DATA_SIZE 225
|
||||
|
||||
// PWM driver with direct memory access (DMA) support
|
||||
#define WS2812_PWM_DRIVER PWMD3
|
||||
#define WS2812_PWM_CHANNEL 1
|
||||
#define WS2812_PWM_PAL_MODE 2
|
||||
#define WS2812_DMA_STREAM STM32_DMA1_STREAM2
|
||||
#define WS2812_DMA_CHANNEL 5
|
23
keyboards/cipulot/ec_tkl_x/halconf.h
Normal file
23
keyboards/cipulot/ec_tkl_x/halconf.h
Normal file
@@ -0,0 +1,23 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_ADC TRUE
|
||||
#define HAL_USE_PAL TRUE
|
||||
#define HAL_USE_PWM TRUE
|
||||
|
||||
#include_next <halconf.h>
|
714
keyboards/cipulot/ec_tkl_x/keyboard.json
Normal file
714
keyboards/cipulot/ec_tkl_x/keyboard.json
Normal file
@@ -0,0 +1,714 @@
|
||||
{
|
||||
"manufacturer": "Cipulot",
|
||||
"keyboard_name": "EC TKL X",
|
||||
"maintainer": "Cipulot",
|
||||
"bootloader": "stm32-dfu",
|
||||
"build": {
|
||||
"lto": true
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"eeprom": {
|
||||
"wear_leveling": {
|
||||
"backing_size": 8192
|
||||
}
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": false,
|
||||
"console": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgblight": true
|
||||
},
|
||||
"processor": "STM32F411",
|
||||
"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": 22
|
||||
},
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0x6BC8",
|
||||
"shared_endpoint": {
|
||||
"keyboard": true
|
||||
},
|
||||
"vid": "0x6369"
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "pwm",
|
||||
"pin": "B4"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1.25, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4.25, "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.75, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10.75, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11.75, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12.75, "y": 0},
|
||||
{"matrix": [0, 14], "x": 14, "y": 0},
|
||||
{"matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"matrix": [0, 17], "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},
|
||||
{"matrix": [1, 14], "x": 14, "y": 1.25},
|
||||
{"matrix": [1, 15], "x": 15.25, "y": 1.25},
|
||||
{"matrix": [1, 16], "x": 16.25, "y": 1.25},
|
||||
{"matrix": [1, 17], "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": 0.75},
|
||||
{"matrix": [2, 14], "x": 14.25, "y": 2.25, "w": 0.75},
|
||||
{"matrix": [2, 15], "x": 15.25, "y": 2.25},
|
||||
{"matrix": [2, 16], "x": 16.25, "y": 2.25},
|
||||
{"matrix": [2, 17], "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, 12], "x": 12.75, "y": 3.25},
|
||||
{"matrix": [3, 13], "x": 13.75, "y": 3.25, "w": 1.25},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4.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, 12], "x": 12.25, "y": 4.25},
|
||||
{"matrix": [4, 13], "x": 13.25, "y": 4.25, "w": 0.75},
|
||||
{"matrix": [4, 14], "x": 14, "y": 4.25},
|
||||
{"matrix": [4, 16], "x": 16.25, "y": 4.25},
|
||||
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 1], "x": 1.5, "y": 5.25},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 4], "x": 4, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 6], "x": 5.5, "y": 5.25, "w": 2.5},
|
||||
{"matrix": [5, 8], "x": 8, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 9], "x": 9.5, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 12], "x": 12.5, "y": 5.25},
|
||||
{"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"matrix": [5, 16], "x": 16.25, "y": 5.25},
|
||||
{"matrix": [5, 17], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
},
|
||||
"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, 14], "x": 14, "y": 0},
|
||||
{"matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"matrix": [0, 17], "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, 14], "x": 13, "y": 1.25, "w": 2},
|
||||
{"matrix": [1, 15], "x": 15.25, "y": 1.25},
|
||||
{"matrix": [1, 16], "x": 16.25, "y": 1.25},
|
||||
{"matrix": [1, 17], "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, 15], "x": 15.25, "y": 2.25},
|
||||
{"matrix": [2, 16], "x": 16.25, "y": 2.25},
|
||||
{"matrix": [2, 17], "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, 16], "x": 16.25, "y": 4.25},
|
||||
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 1], "x": 1.5, "y": 5.25},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
|
||||
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 12], "x": 12.5, "y": 5.25},
|
||||
{"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"matrix": [5, 16], "x": 16.25, "y": 5.25},
|
||||
{"matrix": [5, 17], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_f13_ansi_tsangan": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1.25, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4.25, "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.75, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10.75, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11.75, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12.75, "y": 0},
|
||||
{"matrix": [0, 14], "x": 14, "y": 0},
|
||||
{"matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"matrix": [0, 17], "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, 14], "x": 13, "y": 1.25, "w": 2},
|
||||
{"matrix": [1, 15], "x": 15.25, "y": 1.25},
|
||||
{"matrix": [1, 16], "x": 16.25, "y": 1.25},
|
||||
{"matrix": [1, 17], "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, 15], "x": 15.25, "y": 2.25},
|
||||
{"matrix": [2, 16], "x": 16.25, "y": 2.25},
|
||||
{"matrix": [2, 17], "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, 16], "x": 16.25, "y": 4.25},
|
||||
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 1], "x": 1.5, "y": 5.25},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
|
||||
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 12], "x": 12.5, "y": 5.25},
|
||||
{"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"matrix": [5, 16], "x": 16.25, "y": 5.25},
|
||||
{"matrix": [5, 17], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_f13_iso_tsangan": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1.25, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4.25, "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.75, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10.75, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11.75, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12.75, "y": 0},
|
||||
{"matrix": [0, 14], "x": 14, "y": 0},
|
||||
{"matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"matrix": [0, 17], "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, 14], "x": 13, "y": 1.25, "w": 2},
|
||||
{"matrix": [1, 15], "x": 15.25, "y": 1.25},
|
||||
{"matrix": [1, 16], "x": 16.25, "y": 1.25},
|
||||
{"matrix": [1, 17], "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, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
|
||||
{"matrix": [2, 15], "x": 15.25, "y": 2.25},
|
||||
{"matrix": [2, 16], "x": 16.25, "y": 2.25},
|
||||
{"matrix": [2, 17], "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, 12], "x": 12.75, "y": 3.25},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4.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, 16], "x": 16.25, "y": 4.25},
|
||||
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 1], "x": 1.5, "y": 5.25},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
|
||||
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 12], "x": 12.5, "y": 5.25},
|
||||
{"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"matrix": [5, 16], "x": 16.25, "y": 5.25},
|
||||
{"matrix": [5, 17], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_f13_jis": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1.25, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4.25, "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.75, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10.75, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11.75, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12.75, "y": 0},
|
||||
{"matrix": [0, 14], "x": 14, "y": 0},
|
||||
{"matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"matrix": [0, 17], "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},
|
||||
{"matrix": [1, 14], "x": 14, "y": 1.25},
|
||||
{"matrix": [1, 15], "x": 15.25, "y": 1.25},
|
||||
{"matrix": [1, 16], "x": 16.25, "y": 1.25},
|
||||
{"matrix": [1, 17], "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, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
|
||||
{"matrix": [2, 15], "x": 15.25, "y": 2.25},
|
||||
{"matrix": [2, 16], "x": 16.25, "y": 2.25},
|
||||
{"matrix": [2, 17], "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, 12], "x": 12.75, "y": 3.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, 12], "x": 12.25, "y": 4.25},
|
||||
{"matrix": [4, 13], "x": 13.25, "y": 4.25, "w": 1.75},
|
||||
{"matrix": [4, 16], "x": 16.25, "y": 4.25},
|
||||
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 1], "x": 1.5, "y": 5.25},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 4], "x": 4, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 6], "x": 5.5, "y": 5.25, "w": 2.5},
|
||||
{"matrix": [5, 8], "x": 8, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 9], "x": 9.5, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 12], "x": 12.5, "y": 5.25},
|
||||
{"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"matrix": [5, 16], "x": 16.25, "y": 5.25},
|
||||
{"matrix": [5, 17], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_iso_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, 14], "x": 14, "y": 0},
|
||||
{"matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"matrix": [0, 17], "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, 14], "x": 13, "y": 1.25, "w": 2},
|
||||
{"matrix": [1, 15], "x": 15.25, "y": 1.25},
|
||||
{"matrix": [1, 16], "x": 16.25, "y": 1.25},
|
||||
{"matrix": [1, 17], "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, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
|
||||
{"matrix": [2, 15], "x": 15.25, "y": 2.25},
|
||||
{"matrix": [2, 16], "x": 16.25, "y": 2.25},
|
||||
{"matrix": [2, 17], "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, 12], "x": 12.75, "y": 3.25},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4.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, 16], "x": 16.25, "y": 4.25},
|
||||
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 1], "x": 1.5, "y": 5.25},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
|
||||
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 12], "x": 12.5, "y": 5.25},
|
||||
{"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"matrix": [5, 16], "x": 16.25, "y": 5.25},
|
||||
{"matrix": [5, 17], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_jis": {
|
||||
"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, 14], "x": 14, "y": 0},
|
||||
{"matrix": [0, 15], "x": 15.25, "y": 0},
|
||||
{"matrix": [0, 16], "x": 16.25, "y": 0},
|
||||
{"matrix": [0, 17], "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},
|
||||
{"matrix": [1, 14], "x": 14, "y": 1.25},
|
||||
{"matrix": [1, 15], "x": 15.25, "y": 1.25},
|
||||
{"matrix": [1, 16], "x": 16.25, "y": 1.25},
|
||||
{"matrix": [1, 17], "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, 14], "x": 13.75, "y": 2.25, "w": 1.25, "h": 2},
|
||||
{"matrix": [2, 15], "x": 15.25, "y": 2.25},
|
||||
{"matrix": [2, 16], "x": 16.25, "y": 2.25},
|
||||
{"matrix": [2, 17], "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, 12], "x": 12.75, "y": 3.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, 12], "x": 12.25, "y": 4.25},
|
||||
{"matrix": [4, 13], "x": 13.25, "y": 4.25, "w": 1.75},
|
||||
{"matrix": [4, 16], "x": 16.25, "y": 4.25},
|
||||
{"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 1], "x": 1.5, "y": 5.25},
|
||||
{"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 4], "x": 4, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 6], "x": 5.5, "y": 5.25, "w": 2.5},
|
||||
{"matrix": [5, 8], "x": 8, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 9], "x": 9.5, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 11], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 12], "x": 12.5, "y": 5.25},
|
||||
{"matrix": [5, 13], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
{"matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"matrix": [5, 16], "x": 16.25, "y": 5.25},
|
||||
{"matrix": [5, 17], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
45
keyboards/cipulot/ec_tkl_x/keymaps/default/keymap.c
Normal file
45
keyboards/cipulot/ec_tkl_x/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_ENTER, 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_NUHS, KC_ENTER,
|
||||
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_RSFT, MO(1), KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
[1] = LAYOUT_all(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______),
|
||||
|
||||
[2] = LAYOUT_all(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
// clang-format on
|
||||
};
|
45
keyboards/cipulot/ec_tkl_x/keymaps/tkl_ansi_tsangan/keymap.c
Normal file
45
keyboards/cipulot/ec_tkl_x/keymaps/tkl_ansi_tsangan/keymap.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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_tkl_ansi_tsangan(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
[1] = LAYOUT_tkl_ansi_tsangan(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______),
|
||||
|
||||
[2] = LAYOUT_tkl_ansi_tsangan(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
// clang-format on
|
||||
};
|
@@ -0,0 +1,45 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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_tkl_f13_ansi_tsangan(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
[1] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______),
|
||||
|
||||
[2] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
// clang-format on
|
||||
};
|
@@ -0,0 +1,45 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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_tkl_f13_ansi_tsangan(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
[1] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______),
|
||||
|
||||
[2] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
// clang-format on
|
||||
};
|
47
keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_jis/keymap.c
Normal file
47
keyboards/cipulot/ec_tkl_x/keymaps/tkl_f13_jis/keymap.c
Normal file
@@ -0,0 +1,47 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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
|
||||
|
||||
#include "keymap_japanese.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// clang-format off
|
||||
[0] = LAYOUT_tkl_f13_jis(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
JP_ZKHK, JP_1, JP_2, JP_3, JP_4, JP_5, JP_6, JP_7, JP_8, JP_9, JP_0, JP_MINS, JP_CIRC, JP_YEN, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, JP_Q, JP_W, JP_E, JP_R, JP_T, JP_Y, JP_U, JP_I, JP_O, JP_P, JP_AT, JP_LBRC, KC_ENTER, KC_DEL, KC_END, KC_PGDN,
|
||||
JP_EISU, JP_A, JP_S, JP_D, JP_F, JP_G, JP_H, JP_J, JP_K, JP_L, JP_SCLN, JP_COLN, JP_RBRC,
|
||||
KC_LSFT, JP_Z, JP_X, JP_C, JP_V, JP_B, JP_N, JP_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, JP_HENK, JP_KANA, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
[1] = LAYOUT_tkl_f13_jis(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______),
|
||||
|
||||
[2] = LAYOUT_tkl_f13_jis(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
// clang-format on
|
||||
};
|
45
keyboards/cipulot/ec_tkl_x/keymaps/tkl_iso_tsangan/keymap.c
Normal file
45
keyboards/cipulot/ec_tkl_x/keymaps/tkl_iso_tsangan/keymap.c
Normal file
@@ -0,0 +1,45 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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_tkl_ansi_tsangan(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENTER,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
[1] = LAYOUT_tkl_ansi_tsangan(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______),
|
||||
|
||||
[2] = LAYOUT_tkl_ansi_tsangan(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
// clang-format on
|
||||
};
|
47
keyboards/cipulot/ec_tkl_x/keymaps/tkl_jis/keymap.c
Normal file
47
keyboards/cipulot/ec_tkl_x/keymaps/tkl_jis/keymap.c
Normal file
@@ -0,0 +1,47 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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
|
||||
|
||||
#include "keymap_japanese.h"
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// clang-format off
|
||||
[0] = LAYOUT_tkl_jis(
|
||||
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,
|
||||
JP_ZKHK, JP_1, JP_2, JP_3, JP_4, JP_5, JP_6, JP_7, JP_8, JP_9, JP_0, JP_MINS, JP_CIRC, JP_YEN, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, JP_Q, JP_W, JP_E, JP_R, JP_T, JP_Y, JP_U, JP_I, JP_O, JP_P, JP_AT, JP_LBRC, KC_ENTER, KC_DEL, KC_END, KC_PGDN,
|
||||
JP_EISU, JP_A, JP_S, JP_D, JP_F, JP_G, JP_H, JP_J, JP_K, JP_L, JP_SCLN, JP_COLN, JP_RBRC,
|
||||
KC_LSFT, JP_Z, JP_X, JP_C, JP_V, JP_B, JP_N, JP_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, JP_MHEN, KC_SPC, JP_HENK, JP_KANA, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
[1] = LAYOUT_tkl_jis(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, MO(2), _______, _______, _______, _______, _______),
|
||||
|
||||
[2] = LAYOUT_tkl_jis(
|
||||
QK_BOOT, NK_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
// clang-format on
|
||||
};
|
25
keyboards/cipulot/ec_tkl_x/mcuconf.h
Normal file
25
keyboards/cipulot/ec_tkl_x/mcuconf.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright 2024 Cipulot
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_ADC_USE_ADC1
|
||||
#define STM32_ADC_USE_ADC1 TRUE
|
||||
|
||||
#undef STM32_PWM_USE_TIM3
|
||||
#define STM32_PWM_USE_TIM3 TRUE
|
1
keyboards/cipulot/ec_tkl_x/post_rules.mk
Normal file
1
keyboards/cipulot/ec_tkl_x/post_rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
include keyboards/cipulot/common/common_cipulot.mk
|
26
keyboards/cipulot/ec_tkl_x/readme.md
Normal file
26
keyboards/cipulot/ec_tkl_x/readme.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# EC TKL X
|
||||
|
||||

|
||||
|
||||
Universal TKL Electrostatic Capacitive PCB, with multi-layout support (F12/F13 version).
|
||||
|
||||
* Keyboard Maintainer: [cipulot](https://github.com/cipulot)
|
||||
* Hardware Supported: EC TKL X PCB
|
||||
* Hardware Availability: TBD
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cipulot/ec_tkl_x:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make cipulot/ec_tkl_x: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**: Long press the button on the bottom on the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
1
keyboards/cipulot/ec_tkl_x/rules.mk
Normal file
1
keyboards/cipulot/ec_tkl_x/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
OPT = 2
|
30
keyboards/cornia/config.h
Normal file
30
keyboards/cornia/config.h
Normal file
@@ -0,0 +1,30 @@
|
||||
/* Copyright 2024 Vaarai
|
||||
*
|
||||
* 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
|
||||
|
||||
/* Select hand configuration */
|
||||
// #define MASTER_LEFT
|
||||
#define MASTER_RIGHT
|
||||
// #define EE_HANDS
|
||||
|
||||
/* I²C config */
|
||||
#define I2C_DRIVER I2CD1
|
||||
#define I2C1_SDA_PIN GP10
|
||||
#define I2C1_SCL_PIN GP11
|
||||
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // Timeout window in ms in which the double tap can occur.
|
44
keyboards/cornia/cornia.c
Normal file
44
keyboards/cornia/cornia.c
Normal file
@@ -0,0 +1,44 @@
|
||||
/* Copyright 2024 Vaarai
|
||||
*
|
||||
* 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 "cornia.h"
|
||||
|
||||
// 'Cornia', 32x32px
|
||||
#define OLED_LOGO_CORNIA {\
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, \
|
||||
0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0x00, \
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xf8, 0xff, 0xff, 0xff, 0x3f, 0xff, 0xff, 0xff, 0xfd, 0xe1, \
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, \
|
||||
0x00, 0x00, 0xc0, 0xf8, 0xff, 0xff, 0xff, 0x3f, 0x07, 0x00, 0x00, 0x00, 0x07, 0x3f, 0xff, 0xff, \
|
||||
0xff, 0xf8, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
|
||||
0x00, 0x1e, 0x1f, 0x1f, 0x1f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x07, \
|
||||
0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x00 \
|
||||
}
|
||||
|
||||
void cornia_render_logo(void) {
|
||||
#ifdef OLED_ENABLE
|
||||
static const char PROGMEM logo[] = OLED_LOGO_CORNIA;
|
||||
oled_write_raw_P(logo, sizeof(logo));
|
||||
#endif
|
||||
}
|
||||
|
||||
bool oled_task_kb(void) {
|
||||
if (!oled_task_user()) {
|
||||
return false;
|
||||
}
|
||||
cornia_render_logo();
|
||||
return true;
|
||||
}
|
21
keyboards/cornia/cornia.h
Normal file
21
keyboards/cornia/cornia.h
Normal file
@@ -0,0 +1,21 @@
|
||||
/* Copyright 2024 Vaarai
|
||||
*
|
||||
* 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 cornia_render_logo(void);
|
139
keyboards/cornia/info.json
Normal file
139
keyboards/cornia/info.json
Normal file
@@ -0,0 +1,139 @@
|
||||
{
|
||||
"manufacturer": "Vaarai",
|
||||
"maintainer": "Vaarai",
|
||||
"url": "https://github.com/Vaarai/Cornia",
|
||||
"usb": {
|
||||
"vid": "0xFEED"
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"bootloader": "rp2040",
|
||||
"split": {
|
||||
"enabled": true,
|
||||
"serial": {
|
||||
"driver": "vendor",
|
||||
"pin": "GP1"
|
||||
},
|
||||
"transport": {
|
||||
"sync": {
|
||||
"matrix_state": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"features": {
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"bootmagic": true,
|
||||
"nkro": true,
|
||||
"oled": true,
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"community_layouts": [ "split_3x6_3" ],
|
||||
"layout_aliases": {
|
||||
"LAYOUT": "LAYOUT_split_3x6_3"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_split_3x6_3": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0.3},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0.3},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0.1},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0.1},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0.2},
|
||||
{"matrix": [4, 5], "x": 9, "y": 0.2},
|
||||
{"matrix": [4, 4], "x": 10, "y": 0.1},
|
||||
{"matrix": [4, 3], "x": 11, "y": 0},
|
||||
{"matrix": [4, 2], "x": 12, "y": 0.1},
|
||||
{"matrix": [4, 1], "x": 13, "y": 0.3},
|
||||
{"matrix": [4, 0], "x": 14, "y": 0.3},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1.3},
|
||||
{"matrix": [1, 1], "x": 1, "y": 1.3},
|
||||
{"matrix": [1, 2], "x": 2, "y": 1.1},
|
||||
{"matrix": [1, 3], "x": 3, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4, "y": 1.1},
|
||||
{"matrix": [1, 5], "x": 5, "y": 1.2},
|
||||
{"matrix": [5, 5], "x": 9, "y": 1.2},
|
||||
{"matrix": [5, 4], "x": 10, "y": 1.1},
|
||||
{"matrix": [5, 3], "x": 11, "y": 1},
|
||||
{"matrix": [5, 2], "x": 12, "y": 1.1},
|
||||
{"matrix": [5, 1], "x": 13, "y": 1.3},
|
||||
{"matrix": [5, 0], "x": 14, "y": 1.3},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2.3},
|
||||
{"matrix": [2, 1], "x": 1, "y": 2.3},
|
||||
{"matrix": [2, 2], "x": 2, "y": 2.1},
|
||||
{"matrix": [2, 3], "x": 3, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4, "y": 2.1},
|
||||
{"matrix": [2, 5], "x": 5, "y": 2.2},
|
||||
{"matrix": [6, 5], "x": 9, "y": 2.2},
|
||||
{"matrix": [6, 4], "x": 10, "y": 2.1},
|
||||
{"matrix": [6, 3], "x": 11, "y": 2},
|
||||
{"matrix": [6, 2], "x": 12, "y": 2.1},
|
||||
{"matrix": [6, 1], "x": 13, "y": 2.3},
|
||||
{"matrix": [6, 0], "x": 14, "y": 2.3},
|
||||
{"matrix": [3, 3], "x": 4, "y": 3.7},
|
||||
{"matrix": [3, 4], "x": 5, "y": 3.7},
|
||||
{"matrix": [3, 5], "x": 6, "y": 3.2},
|
||||
{"matrix": [7, 5], "x": 8, "y": 3.2},
|
||||
{"matrix": [7, 4], "x": 9, "y": 3.7},
|
||||
{"matrix": [7, 3], "x": 10, "y": 3.7}
|
||||
]
|
||||
}
|
||||
},
|
||||
"ws2812": {
|
||||
"driver": "vendor",
|
||||
"pin": "GP0"
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"driver": "ws2812",
|
||||
"sleep": true,
|
||||
"split_count": [21, 21],
|
||||
"animations": {
|
||||
"static_gradient": true,
|
||||
"breathing": true
|
||||
},
|
||||
"layout": [
|
||||
{"matrix": [3, 5], "x": 95, "y": 63, "flags": 1},
|
||||
{"matrix": [2, 5], "x": 85, "y": 39, "flags": 4},
|
||||
{"matrix": [1, 5], "x": 85, "y": 21, "flags": 4},
|
||||
{"matrix": [0, 5], "x": 85, "y": 4, "flags": 4},
|
||||
{"matrix": [0, 4], "x": 68, "y": 2, "flags": 4},
|
||||
{"matrix": [1, 4], "x": 68, "y": 19, "flags": 4},
|
||||
{"matrix": [2, 4], "x": 68, "y": 37, "flags": 4},
|
||||
{"matrix": [3, 4], "x": 80, "y": 58, "flags": 1},
|
||||
{"matrix": [3, 3], "x": 60, "y": 55, "flags": 1},
|
||||
{"matrix": [2, 3], "x": 50, "y": 35, "flags": 4},
|
||||
{"matrix": [1, 3], "x": 50, "y": 13, "flags": 4},
|
||||
{"matrix": [0, 3], "x": 50, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 2], "x": 33, "y": 3, "flags": 4},
|
||||
{"matrix": [1, 2], "x": 33, "y": 20, "flags": 4},
|
||||
{"matrix": [2, 2], "x": 33, "y": 37, "flags": 4},
|
||||
{"matrix": [2, 1], "x": 16, "y": 42, "flags": 4},
|
||||
{"matrix": [1, 1], "x": 16, "y": 24, "flags": 4},
|
||||
{"matrix": [0, 1], "x": 16, "y": 7, "flags": 4},
|
||||
{"matrix": [0, 0], "x": 0, "y": 7, "flags": 1},
|
||||
{"matrix": [1, 0], "x": 0, "y": 24, "flags": 1},
|
||||
{"matrix": [2, 0], "x": 0, "y": 41, "flags": 1},
|
||||
{"matrix": [7, 5], "x": 129, "y": 63, "flags": 1},
|
||||
{"matrix": [6, 5], "x": 139, "y": 39, "flags": 4},
|
||||
{"matrix": [5, 5], "x": 139, "y": 21, "flags": 4},
|
||||
{"matrix": [4, 5], "x": 139, "y": 4, "flags": 4},
|
||||
{"matrix": [4, 4], "x": 156, "y": 2, "flags": 4},
|
||||
{"matrix": [5, 4], "x": 156, "y": 19, "flags": 4},
|
||||
{"matrix": [6, 4], "x": 156, "y": 37, "flags": 4},
|
||||
{"matrix": [7, 4], "x": 144, "y": 58, "flags": 1},
|
||||
{"matrix": [7, 3], "x": 164, "y": 55, "flags": 1},
|
||||
{"matrix": [6, 3], "x": 174, "y": 35, "flags": 4},
|
||||
{"matrix": [5, 3], "x": 174, "y": 13, "flags": 4},
|
||||
{"matrix": [4, 3], "x": 174, "y": 0, "flags": 4},
|
||||
{"matrix": [4, 2], "x": 191, "y": 3, "flags": 4},
|
||||
{"matrix": [5, 2], "x": 191, "y": 20, "flags": 4},
|
||||
{"matrix": [6, 2], "x": 191, "y": 37, "flags": 4},
|
||||
{"matrix": [6, 1], "x": 208, "y": 42, "flags": 4},
|
||||
{"matrix": [5, 1], "x": 208, "y": 24, "flags": 4},
|
||||
{"matrix": [4, 1], "x": 208, "y": 7, "flags": 4},
|
||||
{"matrix": [4, 0], "x": 224, "y": 7, "flags": 1},
|
||||
{"matrix": [5, 0], "x": 224, "y": 24, "flags": 1},
|
||||
{"matrix": [6, 0], "x": 224, "y": 41, "flags": 1}
|
||||
]
|
||||
}
|
||||
}
|
75
keyboards/cornia/keymaps/default/keymap.c
Normal file
75
keyboards/cornia/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,75 @@
|
||||
/* Copyright 2024 Vaarai
|
||||
*
|
||||
* 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
|
||||
|
||||
/* Layers definitions */
|
||||
enum layers {
|
||||
_ALPHA,
|
||||
_LOWER,
|
||||
_UPPER,
|
||||
_ADJUST,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_ALPHA] = LAYOUT_split_3x6_3(
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RCTL,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LSFT, TL_LOWR, KC_SPC, KC_ENT, TL_UPPR, KC_RSFT
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
|
||||
[_LOWER] = LAYOUT_split_3x6_3(
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_DEL,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
_______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LALT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_HOME, KC_PGDN, KC_PGUP, KC_END, KC_RALT,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, _______, _______, _______, _______, _______
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
|
||||
[_UPPER] = LAYOUT_split_3x6_3(
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
_______, KC_SLSH, KC_LCBR, KC_LPRN, KC_LBRC, KC_MINS, KC_UNDS, KC_RBRC, KC_RPRN, KC_RCBR, KC_BSLS, _______,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
_______, XXXXXXX, KC_GRV, KC_QUES, KC_EQL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
_______, _______, _______, _______, _______, KC_RGUI
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
|
||||
[_ADJUST] = LAYOUT_split_3x6_3(
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
XXXXXXX, RM_TOGG, RM_HUEU, RM_VALU, XXXXXXX, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
//|--------+--------+--------+--------+--------|--------| |--------+--------+--------+--------+--------+--------|
|
||||
XXXXXXX, RM_NEXT, RM_HUED, RM_VALD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
_______, _______, _______, _______, _______, _______
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
};
|
1
keyboards/cornia/keymaps/default/rules.mk
Normal file
1
keyboards/cornia/keymaps/default/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
TRI_LAYER_ENABLE = yes
|
33
keyboards/cornia/keymaps/fire/config.h
Normal file
33
keyboards/cornia/keymaps/fire/config.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/* Copyright 2024 Vaarai
|
||||
*
|
||||
* 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
|
||||
|
||||
/* Split */
|
||||
#define SPLIT_ACTIVITY_ENABLE
|
||||
#define SPLIT_LAYER_STATE_ENABLE
|
||||
#define SPLIT_LED_STATE_ENABLE
|
||||
#define SPLIT_MODS_ENABLE
|
||||
|
||||
/* Trackpad */
|
||||
#define SPLIT_POINTING_ENABLE
|
||||
#define POINTING_DEVICE_RIGHT
|
||||
#define POINTING_DEVICE_ROTATION_90
|
||||
#define CIRQUE_PINNACLE_DIAMETER_MM 40
|
||||
#define CIRQUE_PINNACLE_TAP_ENABLE
|
||||
#define CIRQUE_PINNACLE_CURVED_OVERLAY
|
||||
#define CIRQUE_PINNACLE_POSITION_MODE CIRQUE_PINNACLE_RELATIVE_MODE
|
||||
#define CIRQUE_PINNACLE_ATTENUATION EXTREG__TRACK_ADCCONFIG__ADC_ATTENUATE_2X
|
226
keyboards/cornia/keymaps/fire/keymap.c
Normal file
226
keyboards/cornia/keymaps/fire/keymap.c
Normal file
@@ -0,0 +1,226 @@
|
||||
/* Copyright 2024 Vaarai
|
||||
*
|
||||
* 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
|
||||
|
||||
#include "./keymap.h"
|
||||
#include "./tap_dances.h"
|
||||
|
||||
/* Flag to enable/disable trackpad scroll */
|
||||
bool set_scrolling = false;
|
||||
|
||||
/* Variables to store accumulated scroll values */
|
||||
float scroll_accumulated_h = 0;
|
||||
float scroll_accumulated_v = 0;
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_ALPHA] = LAYOUT_split_3x6_3( /* Fire (Oxey) : https://bit.ly/layout-doc-v2 */
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_ESC, KC_P, KC_L, KC_D, KC_G, KC_V, KC_Q, KC_F, KC_O, KC_U, KC_COMM, KC_BSPC,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_TAB, KC_N, KC_R, KC_T, KC_S, KC_Y, KC_J, KC_H, KC_A, KC_E, KC_I, KC_LALT,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LCTL, KC_X, KC_K, KC_C, KC_W, KC_Z, KC_B, KC_M, KC_QUOT, KC_SCLN, KC_DOT, KC_RCTL,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
TD(TD_SFT_CAPSW), TD(TD_NAV_ACCENT), KC_SPC, KC_ENT, TD(TD_NUM_ACCENT), TD(TD_SFT_CAPSW)
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
|
||||
[_NAV] = LAYOUT_split_3x6_3(
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
_______, G(KC_L), XXXXXXX, CK_SCRL, C(KC_A), XXXXXXX, KC_BTN1, KC_BTN2, KC_BTN3, XXXXXXX, XXXXXXX, KC_DEL,
|
||||
//|--------+--------+ GUI V +--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
_______, C(KC_X), G(KC_V), C(KC_V), C(KC_C), C(KC_Z), KC_WH_U, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, _______,
|
||||
//|ALT LEFT+--------+ ALT SFT+scrnshot+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
A(KC_LEFT),C(KC_S),S(KC_LALT), CK_SSHT,C(KC_F), C(KC_Y), KC_WH_D, KC_HOME, CK_SELL, CK_SELR, KC_END, _______,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, _______, _______, _______,MO(_ADJUST),_______
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
|
||||
[_NUM] = LAYOUT_split_3x6_3(
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
_______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
|
||||
//|--------+-- / ---+-- { ---+-- ( ---+-- [ ---+-- - ---| |--- _ --+--- ] --+-- ) ---+-- } ---+-- \ ---+--------|
|
||||
_______, KC_SLSH, KC_LCBR, KC_LPRN, KC_LBRC, KC_MINS, KC_UNDS, KC_RBRC, KC_RPRN, KC_RCBR, KC_BSLS, _______,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
_______, XXXXXXX, KC_GRV, KC_QUES, KC_EQL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
_______,MO(_ADJUST),_______, _______, _______, KC_RGUI
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
|
||||
[_ADJUST] = LAYOUT_split_3x6_3(
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
XXXXXXX, RM_TOGG, RM_HUEU, RM_VALU, CK_DPII, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||
//|--------+--------+--------+--------+--------|--------| |--------+--------+--------+--------+--------+--------|
|
||||
XXXXXXX, RM_NEXT, RM_HUED, RM_VALD, CK_DPID, XXXXXXX, TO(_G0), TO(_G1), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
_______, _______, _______, _______, _______, _______
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
|
||||
/* Generic game */
|
||||
[_G0] = LAYOUT_split_3x6_3(
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_ESC, KC_TAB, KC_Q, KC_W, KC_E, KC_R, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
XXXXXXX, KC_LSFT, KC_A, KC_S, KC_D, KC_F, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_SPC, KC_SPC, XXXXXXX, XXXXXXX, TG(_G0), XXXXXXX
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
|
||||
/* Warframe */
|
||||
[_G1] = LAYOUT_split_3x6_3(
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_TAB, KC_ESC, KC_Q, KC_W, KC_1, KC_2, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_F, KC_LSFT, KC_A, KC_S, KC_D, KC_3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
|
||||
KC_LGUI, KC_LCTL, KC_M, KC_Y, KC_X, KC_4, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
//|--------+--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------|
|
||||
KC_SPC,CK_RKJMP, KC_5, XXXXXXX, TG(_G1), XXXXXXX
|
||||
//`--------------------------' `--------------------------'
|
||||
),
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case CK_RKJMP: /* Warframe rocket jump */
|
||||
if (record->event.pressed) {
|
||||
SEND_STRING(SS_DOWN(X_C));
|
||||
} else {
|
||||
SEND_STRING(SS_DOWN(X_SPC) SS_DELAY(50) SS_UP(X_C) SS_DELAY(50) SS_UP(X_SPC));
|
||||
}
|
||||
return false;
|
||||
case CK_DPII: /* Increase trackpad DPI */
|
||||
if (record->event.pressed) {
|
||||
pointing_device_set_cpi(pointing_device_get_cpi()+100);
|
||||
}
|
||||
return false;
|
||||
case CK_DPID: /* Decrease trackpad DPI */
|
||||
if (record->event.pressed) {
|
||||
pointing_device_set_cpi(pointing_device_get_cpi()-100);
|
||||
}
|
||||
return false;
|
||||
case CK_SCRL: /* Toggle set_scrolling when CK_SCRL key is pressed or released */
|
||||
set_scrolling = record->event.pressed;
|
||||
return false;
|
||||
}
|
||||
/* Accented letters */
|
||||
if (accent_state != ACCENT_NONE && record->event.pressed)
|
||||
{
|
||||
switch (keycode) {
|
||||
case KC_A:
|
||||
SEND_STRING(SS_ACCENT_A_GRAVE);
|
||||
break;
|
||||
case KC_C:
|
||||
SEND_STRING(SS_ACCENT_C_CEDIL);
|
||||
break;
|
||||
case KC_E:
|
||||
switch (accent_state) {
|
||||
case ACCENT_LEFT:
|
||||
SEND_STRING(SS_ACCENT_E_ACUTE); break;
|
||||
case ACCENT_RIGHT:
|
||||
SEND_STRING(SS_ACCENT_E_GRAVE); break;
|
||||
case ACCENT_NONE:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case KC_O:
|
||||
SEND_STRING(SS_ACCENT_O_CIRCU);
|
||||
break;
|
||||
case KC_U:
|
||||
SEND_STRING(SS_ACCENT_U_GRAVE);
|
||||
break;
|
||||
}
|
||||
accent_state = ACCENT_NONE;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool shutdown_user(bool jump_to_bootloader) {
|
||||
oled_clear();
|
||||
oled_set_cursor(0, 2);
|
||||
if (jump_to_bootloader) {
|
||||
oled_write_P(PSTR("FLASH"), false);
|
||||
} else {
|
||||
oled_write_P(PSTR("RESET"), false);
|
||||
}
|
||||
oled_render_dirty(true);
|
||||
return false;
|
||||
}
|
||||
|
||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||
return OLED_ROTATION_270;
|
||||
}
|
||||
|
||||
bool oled_task_user(void) {
|
||||
/* Print cornia logo */
|
||||
cornia_render_logo();
|
||||
|
||||
/* Print layer status */
|
||||
oled_set_cursor(0, 7);
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
case _ALPHA:
|
||||
oled_write_ln("ALPHA", 0);
|
||||
break;
|
||||
case _NAV:
|
||||
oled_write_ln("NAV", 0);
|
||||
break;
|
||||
case _NUM:
|
||||
oled_write_ln("NUM", 0);
|
||||
break;
|
||||
case _ADJUST:
|
||||
oled_write_ln("ADJUS", 0);
|
||||
break;
|
||||
case _G0:
|
||||
oled_write_ln("GAME0", 0);
|
||||
break;
|
||||
case _G1:
|
||||
oled_write_ln("GAME1", 0);
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) {
|
||||
/* Check if drag scrolling is active */
|
||||
if (set_scrolling) {
|
||||
/* Calculate and accumulate scroll values based on mouse movement and divisors */
|
||||
scroll_accumulated_h += (float)mouse_report.x / SCROLL_DIVISOR_H;
|
||||
scroll_accumulated_v += (float)mouse_report.y / SCROLL_DIVISOR_V;
|
||||
|
||||
/* Assign integer parts of accumulated scroll values to the mouse report */
|
||||
mouse_report.h = (int8_t)scroll_accumulated_h;
|
||||
mouse_report.v = (int8_t)scroll_accumulated_v;
|
||||
|
||||
/* Update accumulated scroll values by subtracting the integer parts */
|
||||
scroll_accumulated_h -= (int8_t)scroll_accumulated_h;
|
||||
scroll_accumulated_v -= (int8_t)scroll_accumulated_v;
|
||||
|
||||
/* Clear the X and Y values of the mouse report */
|
||||
mouse_report.x = 0;
|
||||
mouse_report.y = 0;
|
||||
}
|
||||
return mouse_report;
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user