forked from mirror/qmk_firmware
Compare commits
47 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4345d34cf2 | ||
|
|
7ca652ce6d | ||
|
|
06d123de62 | ||
|
|
b768d74b2b | ||
|
|
69c1790dce | ||
|
|
63b48f5096 | ||
|
|
127560ae22 | ||
|
|
92873cc14f | ||
|
|
2a8b3a809d | ||
|
|
8f757eece8 | ||
|
|
aaebb0a231 | ||
|
|
9f31783249 | ||
|
|
a58f86812c | ||
|
|
22fbbbb1cc | ||
|
|
7603a464cd | ||
|
|
d33f9ec86b | ||
|
|
6e93b59f61 | ||
|
|
5485d5023e | ||
|
|
d9fa80c0b0 | ||
|
|
a638f6e5aa | ||
|
|
bc5d407bf7 | ||
|
|
f33881b1da | ||
|
|
997a6747ee | ||
|
|
1b7a538353 | ||
|
|
8813bdf5dd | ||
|
|
c23d873e1a | ||
|
|
b404d5e9e4 | ||
|
|
cfb4bb9b98 | ||
|
|
ab1e851e7d | ||
|
|
5626a9282c | ||
|
|
daea202bfd | ||
|
|
f214ee7f3a | ||
|
|
0edc68f7cd | ||
|
|
c5706ef791 | ||
|
|
fb0c64a567 | ||
|
|
0ecb03ad47 | ||
|
|
25c850e762 | ||
|
|
351b5cd2cd | ||
|
|
ca9664b1ac | ||
|
|
46c1e7351e | ||
|
|
17ae28f0e4 | ||
|
|
8d9c770a81 | ||
|
|
6eb2e43a8d | ||
|
|
2fad45132f | ||
|
|
538978b782 | ||
|
|
7e923580a5 | ||
|
|
0c4bd1ccdc |
2
.github/workflows/format.yml
vendored
2
.github/workflows/format.yml
vendored
@@ -35,7 +35,7 @@ jobs:
|
||||
|
||||
- name: Get changed files
|
||||
id: file_changes
|
||||
uses: tj-actions/changed-files@v38
|
||||
uses: tj-actions/changed-files@v39
|
||||
|
||||
- name: Run qmk formatters
|
||||
shell: 'bash {0}'
|
||||
|
||||
27
.github/workflows/lint.yml
vendored
27
.github/workflows/lint.yml
vendored
@@ -27,7 +27,7 @@ jobs:
|
||||
|
||||
- name: Get changed files
|
||||
id: file_changes
|
||||
uses: tj-actions/changed-files@v38
|
||||
uses: tj-actions/changed-files@v39
|
||||
|
||||
- name: Print info
|
||||
run: |
|
||||
@@ -74,31 +74,10 @@ jobs:
|
||||
fi
|
||||
exit $exit_code
|
||||
|
||||
- name: Verify at most one added keyboard
|
||||
- name: Verify keyboard aliases
|
||||
if: always()
|
||||
shell: 'bash {0}'
|
||||
run: |
|
||||
git reset --hard
|
||||
git clean -xfd
|
||||
|
||||
# Get the keyboard list and count for the target branch
|
||||
git checkout -f ${{ github.base_ref }}
|
||||
git pull --ff-only
|
||||
QMK_KEYBOARDS_BASE=$(qmk list-keyboards)
|
||||
QMK_KEYBOARDS_BASE_COUNT=$(qmk list-keyboards | wc -l)
|
||||
|
||||
# Get the keyboard list and count for the PR
|
||||
git checkout -f ${{ github.head_ref }}
|
||||
git merge --no-commit --squash ${{ github.base_ref }}
|
||||
QMK_KEYBOARDS_PR=$(qmk list-keyboards)
|
||||
QMK_KEYBOARDS_PR_COUNT=$(qmk list-keyboards | wc -l)
|
||||
|
||||
echo "::group::Keyboards changes in this PR"
|
||||
diff -d -U 0 <(echo "$QMK_KEYBOARDS_BASE") <(echo "$QMK_KEYBOARDS_PR") | grep -vE '^(---|\+\+\+|@@)' | sed -e 's@^-@Removed: @g' -e 's@^+@ Added: @g'
|
||||
echo "::endgroup::"
|
||||
|
||||
if [[ $QMK_KEYBOARDS_PR_COUNT -gt $(($QMK_KEYBOARDS_BASE_COUNT + 1)) ]]; then
|
||||
echo "More than one keyboard added in this PR -- see the PR Checklist."
|
||||
echo "::error::More than one keyboard added in this PR -- see the PR Checklist."
|
||||
exit 1
|
||||
fi
|
||||
qmk ci-validate-aliases
|
||||
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -108,5 +108,6 @@ compile_commands.json
|
||||
.clangd/
|
||||
.cache/
|
||||
|
||||
# VIA(L) json files that don't belong in QMK repo
|
||||
# VIA(L) files that don't belong in QMK repo
|
||||
via*.json
|
||||
/keyboards/**/keymaps/vial/*
|
||||
|
||||
@@ -4,6 +4,13 @@
|
||||
// "target": "<keyboard_folder>"
|
||||
// }
|
||||
//
|
||||
|
||||
/* This list of aliases is for testing purposes -- ensures "linked list" recursive traversal works correctly. */
|
||||
"_test_a": { "target": "_test_b" },
|
||||
"_test_b": { "target": "_test_c" },
|
||||
"_test_c": { "target": "planck/rev6" },
|
||||
|
||||
/* The main list of aliases for moved keyboards within QMK. */
|
||||
"2_milk": {
|
||||
"target": "spaceman/2_milk"
|
||||
},
|
||||
@@ -35,7 +42,7 @@
|
||||
"target": "amjkeyboard/amjpad"
|
||||
},
|
||||
"angel64": {
|
||||
"target": "angel64/alpha"
|
||||
"target": "kakunpc/angel64/alpha"
|
||||
},
|
||||
"ashpil/modelm_usbc": {
|
||||
"target": "ibm/model_m/ashpil_usbc"
|
||||
@@ -47,10 +54,10 @@
|
||||
"target": "viktus/at101_bh"
|
||||
},
|
||||
"atom47/rev2": {
|
||||
"target": "maartenwut/atom47/rev2"
|
||||
"target": "evyd13/atom47/rev2"
|
||||
},
|
||||
"atom47/rev3": {
|
||||
"target": "maartenwut/atom47/rev3"
|
||||
"target": "evyd13/atom47/rev3"
|
||||
},
|
||||
"bakeneko60": {
|
||||
"target": "kkatano/bakeneko60"
|
||||
@@ -65,7 +72,7 @@
|
||||
"target": "bear_face/v1"
|
||||
},
|
||||
"bm16a": {
|
||||
"target": "kprepublic/bm16a"
|
||||
"target": "kprepublic/bm16a/v1"
|
||||
},
|
||||
"bm16s": {
|
||||
"target": "kprepublic/bm16s"
|
||||
@@ -77,16 +84,16 @@
|
||||
"target": "kprepublic/bm43a"
|
||||
},
|
||||
"bm60poker": {
|
||||
"target": "kprepublic/bm60poker"
|
||||
"target": "kprepublic/bm60hsrgb_poker/rev1"
|
||||
},
|
||||
"bm60rgb": {
|
||||
"target": "kprepublic/bm60rgb"
|
||||
"target": "kprepublic/bm60hsrgb/rev1"
|
||||
},
|
||||
"bm60rgb_iso": {
|
||||
"target": "kprepublic/bm60rgb_iso"
|
||||
"target": "kprepublic/bm60hsrgb_iso/rev1"
|
||||
},
|
||||
"bm68rgb": {
|
||||
"target": "kprepublic/bm68rgb"
|
||||
"target": "kprepublic/bm68hsrgb/rev1"
|
||||
},
|
||||
"bpiphany/pegasushoof": {
|
||||
"target": "bpiphany/pegasushoof/2013"
|
||||
@@ -140,7 +147,10 @@
|
||||
"target": "jagdpietr/drakon"
|
||||
},
|
||||
"durgod/k320": {
|
||||
"target": "durgod/k3x0/k320"
|
||||
"target": "durgod/k320/base"
|
||||
},
|
||||
"durgod/k3x0/k320": {
|
||||
"target": "durgod/k320/base"
|
||||
},
|
||||
"durgod/hades": {
|
||||
"target": "durgod/dgk6x/hades_ansi"
|
||||
@@ -269,7 +279,7 @@
|
||||
"target": "idb/idb_60"
|
||||
},
|
||||
"idobo": {
|
||||
"target": "idobao/id75"
|
||||
"target": "idobao/id75/v1"
|
||||
},
|
||||
"jacky_studio/piggy60": {
|
||||
"target": "jacky_studio/piggy60/rev1"
|
||||
@@ -401,7 +411,7 @@
|
||||
"target": "mechlovin/adelais/rgb_led/rev1"
|
||||
},
|
||||
"mechlovin/adelais/standard_led": {
|
||||
"target": "mechlovin/adelais/standard_led/rev2"
|
||||
"target": "mechlovin/adelais/standard_led/arm/rev2"
|
||||
},
|
||||
"mechlovin/delphine": {
|
||||
"target": "mechlovin/delphine/mono_led"
|
||||
@@ -455,10 +465,10 @@
|
||||
"target": "pabile/p20/ver1"
|
||||
},
|
||||
"pancake/feather": {
|
||||
"target": "spaceman/pancake/feather"
|
||||
"target": "spaceman/pancake/rev1/feather"
|
||||
},
|
||||
"pancake/promicro": {
|
||||
"target": "spaceman/pancake/promicro"
|
||||
"target": "spaceman/pancake/rev1/promicro"
|
||||
},
|
||||
"peiorisboards/ixora": {
|
||||
"target": "coarse/ixora"
|
||||
@@ -467,7 +477,7 @@
|
||||
"target": "dm9records/plaid"
|
||||
},
|
||||
"plain60": {
|
||||
"target": "maartenwut/plain60"
|
||||
"target": "evyd13/plain60"
|
||||
},
|
||||
"ploopyco/trackball": {
|
||||
"target": "ploopyco/trackball/rev1_005"
|
||||
@@ -503,10 +513,10 @@
|
||||
"target": "wilba_tech/rama_works_u80_a"
|
||||
},
|
||||
"ramonimbao/herringbone": {
|
||||
"target": "ramonimbao/herringbone/v1"
|
||||
"target": "rmi_kb/herringbone/v1"
|
||||
},
|
||||
"ramonimbao/mona": {
|
||||
"target": "ramonimbao/mona/v1"
|
||||
"target": "rmi_kb/mona/v1"
|
||||
},
|
||||
"rgbkb/pan": {
|
||||
"target": "rgbkb/pan/rev1/32a"
|
||||
@@ -542,10 +552,10 @@
|
||||
"target": "tkw/stoutgat/v1"
|
||||
},
|
||||
"suihankey": {
|
||||
"target": "suihankey/split/alpha"
|
||||
"target": "kakunpc/suihankey/split/alpha"
|
||||
},
|
||||
"ta65": {
|
||||
"target": "maartenwut/ta65"
|
||||
"target": "evyd13/ta65"
|
||||
},
|
||||
"tartan": {
|
||||
"target": "dm9records/tartan"
|
||||
@@ -563,13 +573,13 @@
|
||||
"target": "matthewdias/txuu"
|
||||
},
|
||||
"underscore33": {
|
||||
"target": "underscore33/rev1"
|
||||
"target": "tominabox1/underscore33/rev1"
|
||||
},
|
||||
"vinta": {
|
||||
"target": "coarse/vinta"
|
||||
},
|
||||
"wasdat": {
|
||||
"target": "maartenwut/wasdat"
|
||||
"target": "evyd13/wasdat"
|
||||
},
|
||||
"westfoxtrot/cypher": {
|
||||
"target": "westfoxtrot/cypher/rev1"
|
||||
@@ -581,10 +591,10 @@
|
||||
"target": "xiudi/xd002"
|
||||
},
|
||||
"xd004": {
|
||||
"target": "xiudi/xd004"
|
||||
"target": "xiudi/xd004/v1"
|
||||
},
|
||||
"xd60": {
|
||||
"target": "xiudi/xd60"
|
||||
"target": "xiudi/xd60/rev2"
|
||||
},
|
||||
"xd68": {
|
||||
"target": "xiudi/xd68"
|
||||
@@ -831,7 +841,7 @@
|
||||
"target": "kagizaraya/halberd"
|
||||
},
|
||||
"handwired/hillside/0_1": {
|
||||
"target": "handwired/hillside/48"
|
||||
"target": "hillside/48/0_1"
|
||||
},
|
||||
"hecomi/alpha": {
|
||||
"target": "takashiski/hecomi/alpha"
|
||||
@@ -843,10 +853,10 @@
|
||||
"target": "bpiphany/hid_liber"
|
||||
},
|
||||
"id67/default_rgb": {
|
||||
"target": "idobao/id67/default_rgb"
|
||||
"target": "idobao/id67"
|
||||
},
|
||||
"id67/rgb": {
|
||||
"target": "idobao/id67/rgb"
|
||||
"target": "idobao/id67"
|
||||
},
|
||||
"id80": {
|
||||
"target": "idobao/id80/v2/ansi"
|
||||
@@ -1236,7 +1246,7 @@
|
||||
"target": "marksard/treadstone48/rev2"
|
||||
},
|
||||
"tronguylabs/m122_3270": {
|
||||
"target": "ibm/model_m_122/m122_3270"
|
||||
"target": "ibm/model_m_122/m122_3270/teensy"
|
||||
},
|
||||
"ua62": {
|
||||
"target": "nacly/ua62"
|
||||
@@ -1290,7 +1300,7 @@
|
||||
"target": "ydkb/yd68"
|
||||
},
|
||||
"ymd75": {
|
||||
"target": "ymdk/ymd75"
|
||||
"target": "ymdk/ymd75/rev1"
|
||||
},
|
||||
"ymd96": {
|
||||
"target": "ymdk/ymd96"
|
||||
|
||||
@@ -6,7 +6,7 @@ The QMK CLI makes building and working with QMK keyboards easier. We have provid
|
||||
|
||||
### Requirements :id=requirements
|
||||
|
||||
QMK requires Python 3.6 or greater. We try to keep the number of requirements small but you will also need to install the packages listed in [`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt). These are installed automatically when you install the QMK CLI.
|
||||
QMK requires Python 3.7 or greater. We try to keep the number of requirements small but you will also need to install the packages listed in [`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt). These are installed automatically when you install the QMK CLI.
|
||||
|
||||
### Install Using Homebrew (macOS, some Linux) :id=install-using-homebrew
|
||||
|
||||
@@ -20,7 +20,7 @@ qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build
|
||||
|
||||
### Install Using pip :id=install-using-easy_install-or-pip
|
||||
|
||||
If your system is not listed above you can install QMK manually. First ensure that you have Python 3.6 (or later) installed and have installed pip. Then install QMK with this command:
|
||||
If your system is not listed above you can install QMK manually. First ensure that you have Python 3.7 (or later) installed and have installed pip. Then install QMK with this command:
|
||||
|
||||
```
|
||||
python3 -m pip install qmk
|
||||
|
||||
@@ -44,7 +44,7 @@ def hello(cli):
|
||||
|
||||
First we import the `cli` object from `milc`. This is how we interact with the user and control the script's behavior. We use `@cli.argument()` to define a command line flag, `--name`. This also creates a configuration variable named `hello.name` (and the corresponding `user.name`) which the user can set so they don't have to specify the argument. The `cli.subcommand()` decorator designates this function as a subcommand. The name of the subcommand will be taken from the name of the function.
|
||||
|
||||
Once inside our function we find a typical "Hello, World!" program. We use `cli.log` to access the underlying [Logger Object](https://docs.python.org/3.6/library/logging.html#logger-objects), whose behavior is user controllable. We also access the value for name supplied by the user as `cli.config.hello.name`. The value for `cli.config.hello.name` will be determined by looking at the `--name` argument supplied by the user, if not provided it will use the value in the `qmk.ini` config file, and if neither of those is provided it will fall back to the default supplied in the `cli.argument()` decorator.
|
||||
Once inside our function we find a typical "Hello, World!" program. We use `cli.log` to access the underlying [Logger Object](https://docs.python.org/3.7/library/logging.html#logger-objects), whose behavior is user controllable. We also access the value for name supplied by the user as `cli.config.hello.name`. The value for `cli.config.hello.name` will be determined by looking at the `--name` argument supplied by the user, if not provided it will use the value in the `qmk.ini` config file, and if neither of those is provided it will fall back to the default supplied in the `cli.argument()` decorator.
|
||||
|
||||
# User Interaction
|
||||
|
||||
@@ -56,13 +56,13 @@ There are two main methods for outputting text in a subcommand- `cli.log` and `c
|
||||
|
||||
You can use special tokens to colorize your text, to make it easier to understand the output of your program. See [Colorizing Text](#colorizing-text) below.
|
||||
|
||||
Both of these methods support built-in string formatting using python's [printf style string format operations](https://docs.python.org/3.6/library/stdtypes.html#old-string-formatting). You can use tokens such as `%s` and `%d` within your text strings then pass the values as arguments. See our Hello, World program above for an example.
|
||||
Both of these methods support built-in string formatting using python's [printf style string format operations](https://docs.python.org/3.7/library/stdtypes.html#old-string-formatting). You can use tokens such as `%s` and `%d` within your text strings then pass the values as arguments. See our Hello, World program above for an example.
|
||||
|
||||
You should never use the format operator (`%`) directly, always pass values as arguments.
|
||||
|
||||
### Logging (`cli.log`)
|
||||
|
||||
The `cli.log` object gives you access to a [Logger Object](https://docs.python.org/3.6/library/logging.html#logger-objects). We have configured our log output to show the user a nice emoji for each log level (or the log level name if their terminal does not support unicode.) This way the user can tell at a glance which messages are most important when something goes wrong.
|
||||
The `cli.log` object gives you access to a [Logger Object](https://docs.python.org/3.7/library/logging.html#logger-objects). We have configured our log output to show the user a nice emoji for each log level (or the log level name if their terminal does not support unicode.) This way the user can tell at a glance which messages are most important when something goes wrong.
|
||||
|
||||
The default log level is `INFO`. If the user runs `qmk -v <subcommand>` the default log level will be set to `DEBUG`.
|
||||
|
||||
|
||||
@@ -317,7 +317,7 @@ At the time of this writing our tests are not very comprehensive. Looking at the
|
||||
|
||||
## Integration Tests
|
||||
|
||||
Integration tests can be found in `lib/python/qmk/tests/test_cli_commands.py`. This is where CLI commands are actually run and their overall behavior is verified. We use [`subprocess`](https://docs.python.org/3.6/library/subprocess.html#module-subprocess) to launch each CLI command and a combination of checking output and returncode to determine if the right thing happened.
|
||||
Integration tests can be found in `lib/python/qmk/tests/test_cli_commands.py`. This is where CLI commands are actually run and their overall behavior is verified. We use [`subprocess`](https://docs.python.org/3.7/library/subprocess.html#module-subprocess) to launch each CLI command and a combination of checking output and returncode to determine if the right thing happened.
|
||||
|
||||
## Unit Tests
|
||||
|
||||
|
||||
@@ -399,7 +399,7 @@ void oled_scroll_set_area(uint8_t start_line, uint8_t end_line);
|
||||
// Sets scroll speed, 0-7, fastest to slowest. Default is three.
|
||||
// Does not take effect until scrolling is either started or restarted
|
||||
// the ssd1306 supports 8 speeds with the delay
|
||||
// listed below betwen each frame of the scrolling effect
|
||||
// listed below between each frame of the scrolling effect
|
||||
// 0=2, 1=3, 2=4, 3=5, 4=25, 5=64, 6=128, 7=256
|
||||
void oled_scroll_set_speed(uint8_t speed);
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Programmable Buttons are keys that have no predefined meaning. This means they can be processed on the host side by custom software without the operating system trying to interpret them.
|
||||
|
||||
The keycodes are emitted according to the HID Telephony Device page (`0x0B`), Programmable Button usage (`0x07`). On Linux (> 5.14) they are handled automatically and translated to `KEY_MACRO#` keycodes (up to `KEY_MACRO30`).
|
||||
The keycodes are emitted according to the HID Telephony Device page (`0x0B`), Programmable Button usage (`0x09`). On Linux (> 5.14) they are handled automatically and translated to `KEY_MACRO#` keycodes (up to `KEY_MACRO30`).
|
||||
|
||||
?> Currently there is no known support in Windows or macOS. It may be possible to write a custom HID driver to receive these usages, but this is out of the scope of the QMK documentation.
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ QMK maintains a Homebrew tap and formula which will automatically install the CL
|
||||
|
||||
You will need to install Homebrew. Follow the instructions on https://brew.sh.
|
||||
|
||||
!> **NOTE:** If you are using Apple Silicon, such as the M1, you will need to install a rosetta compatible version of Homebrew. This version does not override the base Homebrew. This can be done by running `arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"`. See here: [Rosetta-compatible Homebrew](https://stackoverflow.com/questions/64882584/how-to-run-the-homebrew-installer-under-rosetta-2-on-m1-macbook)
|
||||
?> If you are using an Apple Silicon machine, the installation process will take significantly longer because GitHub actions do not have native runners to build binary packages for the ARM and AVR toolchains.
|
||||
|
||||
#### Installation
|
||||
|
||||
@@ -64,10 +64,6 @@ Install the QMK CLI by running:
|
||||
|
||||
brew install qmk/qmk/qmk
|
||||
|
||||
Install the QMK CLI on an Apple Silicon Mac by running:
|
||||
|
||||
arch -x86_64 brew install qmk/qmk/qmk
|
||||
|
||||
### ** Linux/WSL **
|
||||
|
||||
?> **Note for WSL users**: By default, the installation process will clone the QMK repository into your WSL home directory, but if you have cloned manually, ensure that it is located inside the WSL instance instead of the Windows filesystem (ie. not in `/mnt`), as accessing it is currently [extremely slow](https://github.com/microsoft/WSL/issues/4197).
|
||||
|
||||
@@ -454,7 +454,7 @@ void oled_scroll_set_area(uint8_t start_line, uint8_t end_line);
|
||||
// Sets scroll speed, 0-7, fastest to slowest. Default is three.
|
||||
// Does not take effect until scrolling is either started or restarted
|
||||
// the ssd1306 supports 8 speeds with the delay
|
||||
// listed below betwen each frame of the scrolling effect
|
||||
// listed below between each frame of the scrolling effect
|
||||
// 0=2, 1=3, 2=4, 3=5, 4=25, 5=64, 6=128, 7=256
|
||||
void oled_scroll_set_speed(uint8_t speed);
|
||||
|
||||
|
||||
@@ -41,6 +41,16 @@
|
||||
},
|
||||
"processor": "STM32F072",
|
||||
"bootloader": "stm32-dfu",
|
||||
"community_layouts": [
|
||||
"60_ansi",
|
||||
"60_ansi_split_bs_rshift",
|
||||
"60_ansi_tsangan",
|
||||
"60_tsangan_hhkb",
|
||||
"60_hhkb",
|
||||
"60_iso",
|
||||
"60_iso_split_bs_rshift",
|
||||
"60_iso_tsangan"
|
||||
],
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
@@ -115,6 +125,75 @@
|
||||
{"label": "Ctrl", "matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"label": "@", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "#", "matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"label": "Backspace", "matrix": [3, 6], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"label": "|", "matrix": [5, 6], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"label": "Caps Lock", "matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"label": "\"", "matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [7, 6], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
|
||||
|
||||
{"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"label": "Alt", "matrix": [9, 1], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"label": "Space", "matrix": [9, 3], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"label": "Alt", "matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
|
||||
{"label": "Menu", "matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"label": "Ctrl", "matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
@@ -186,6 +265,74 @@
|
||||
{"label": "Ctrl", "matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi_tsangan": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"label": "@", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "#", "matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"label": "Backspace", "matrix": [3, 6], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
{"label": "|", "matrix": [5, 6], "x": 13.5, "y": 1, "w": 1.5},
|
||||
|
||||
{"label": "Caps Lock", "matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"label": "\"", "matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [7, 6], "x": 12.75, "y": 2, "w": 2.25},
|
||||
|
||||
{"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3, "w": 2.25},
|
||||
{"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
|
||||
|
||||
{"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [9, 0], "x": 1.5, "y": 4},
|
||||
{"label": "Alt", "matrix": [9, 1], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"label": "Space", "matrix": [9, 3], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Alt", "matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [9, 5], "x": 12.5, "y": 4},
|
||||
{"label": "Ctrl", "matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_tsangan_hhkb": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
@@ -323,6 +470,288 @@
|
||||
{"label": "GUI", "matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Alt", "matrix": [9, 5], "x": 12.5, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"label": "\"", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "\u00a3", "matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"label": "Backspace", "matrix": [3, 6], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
|
||||
{"label": "Caps Lock", "matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"label": "@", "matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"label": "~", "matrix": [4, 6], "x": 12.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [7, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"label": "|", "matrix": [7, 0], "x": 1.25, "y": 3},
|
||||
{"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
|
||||
|
||||
{"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"label": "Alt", "matrix": [9, 1], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"label": "Space", "matrix": [9, 3], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"label": "Alt", "matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
|
||||
{"label": "Menu", "matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"label": "Ctrl", "matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"label": "\"", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "\u00a3", "matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"label": "|", "matrix": [1, 6], "x": 13, "y": 0},
|
||||
{"label": "Backspace", "matrix": [3, 6], "x": 14, "y": 0},
|
||||
|
||||
{"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
|
||||
{"label": "Caps Lock", "matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"label": "@", "matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"label": "~", "matrix": [4, 6], "x": 12.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [7, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"label": "|", "matrix": [7, 0], "x": 1.25, "y": 3},
|
||||
{"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"label": "Fn", "matrix": [9, 6], "x": 14, "y": 3},
|
||||
|
||||
{"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [9, 0], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"label": "Alt", "matrix": [9, 1], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"label": "Space", "matrix": [9, 3], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"label": "Alt", "matrix": [9, 4], "x": 10, "y": 4, "w": 1.25},
|
||||
{"label": "Menu", "matrix": [8, 5], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [9, 5], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"label": "Ctrl", "matrix": [8, 6], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_tsangan": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"label": "\"", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "\u00a3", "matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"label": "Backspace", "matrix": [3, 6], "x": 13, "y": 0, "w": 2},
|
||||
|
||||
{"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
|
||||
{"label": "Caps Lock", "matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"label": "@", "matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"label": "~", "matrix": [4, 6], "x": 12.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [7, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"label": "|", "matrix": [7, 0], "x": 1.25, "y": 3},
|
||||
{"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [6, 6], "x": 12.25, "y": 3, "w": 2.75},
|
||||
|
||||
{"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [9, 0], "x": 1.5, "y": 4},
|
||||
{"label": "Alt", "matrix": [9, 1], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"label": "Space", "matrix": [9, 3], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Alt", "matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [9, 5], "x": 12.5, "y": 4},
|
||||
{"label": "Ctrl", "matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_tsangan_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [1, 0], "x": 1, "y": 0},
|
||||
{"label": "\"", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label": "\u00a3", "matrix": [1, 1], "x": 3, "y": 0},
|
||||
{"label": "$", "matrix": [0, 2], "x": 4, "y": 0},
|
||||
{"label": "%", "matrix": [1, 2], "x": 5, "y": 0},
|
||||
{"label": "^", "matrix": [0, 3], "x": 6, "y": 0},
|
||||
{"label": "&", "matrix": [1, 3], "x": 7, "y": 0},
|
||||
{"label": "*", "matrix": [0, 4], "x": 8, "y": 0},
|
||||
{"label": "(", "matrix": [1, 4], "x": 9, "y": 0},
|
||||
{"label": ")", "matrix": [0, 5], "x": 10, "y": 0},
|
||||
{"label": "_", "matrix": [1, 5], "x": 11, "y": 0},
|
||||
{"label": "+", "matrix": [0, 6], "x": 12, "y": 0},
|
||||
{"label": "|", "matrix": [1, 6], "x": 13, "y": 0},
|
||||
{"label": "Backspace", "matrix": [3, 6], "x": 14, "y": 0},
|
||||
|
||||
{"label": "Tab", "matrix": [2, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"label": "Q", "matrix": [3, 0], "x": 1.5, "y": 1},
|
||||
{"label": "W", "matrix": [2, 1], "x": 2.5, "y": 1},
|
||||
{"label": "E", "matrix": [3, 1], "x": 3.5, "y": 1},
|
||||
{"label": "R", "matrix": [2, 2], "x": 4.5, "y": 1},
|
||||
{"label": "T", "matrix": [3, 2], "x": 5.5, "y": 1},
|
||||
{"label": "Y", "matrix": [2, 3], "x": 6.5, "y": 1},
|
||||
{"label": "U", "matrix": [3, 3], "x": 7.5, "y": 1},
|
||||
{"label": "I", "matrix": [2, 4], "x": 8.5, "y": 1},
|
||||
{"label": "O", "matrix": [3, 4], "x": 9.5, "y": 1},
|
||||
{"label": "P", "matrix": [2, 5], "x": 10.5, "y": 1},
|
||||
{"label": "{", "matrix": [3, 5], "x": 11.5, "y": 1},
|
||||
{"label": "}", "matrix": [2, 6], "x": 12.5, "y": 1},
|
||||
|
||||
{"label": "Caps Lock", "matrix": [4, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"label": "A", "matrix": [5, 0], "x": 1.75, "y": 2},
|
||||
{"label": "S", "matrix": [4, 1], "x": 2.75, "y": 2},
|
||||
{"label": "D", "matrix": [5, 1], "x": 3.75, "y": 2},
|
||||
{"label": "F", "matrix": [4, 2], "x": 4.75, "y": 2},
|
||||
{"label": "G", "matrix": [5, 2], "x": 5.75, "y": 2},
|
||||
{"label": "H", "matrix": [4, 3], "x": 6.75, "y": 2},
|
||||
{"label": "J", "matrix": [5, 3], "x": 7.75, "y": 2},
|
||||
{"label": "K", "matrix": [4, 4], "x": 8.75, "y": 2},
|
||||
{"label": "L", "matrix": [5, 4], "x": 9.75, "y": 2},
|
||||
{"label": ":", "matrix": [4, 5], "x": 10.75, "y": 2},
|
||||
{"label": "@", "matrix": [5, 5], "x": 11.75, "y": 2},
|
||||
{"label": "~", "matrix": [4, 6], "x": 12.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [7, 6], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
|
||||
|
||||
{"label": "Shift", "matrix": [6, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"label": "|", "matrix": [7, 0], "x": 1.25, "y": 3},
|
||||
{"label": "Z", "matrix": [6, 1], "x": 2.25, "y": 3},
|
||||
{"label": "X", "matrix": [7, 1], "x": 3.25, "y": 3},
|
||||
{"label": "C", "matrix": [6, 2], "x": 4.25, "y": 3},
|
||||
{"label": "V", "matrix": [7, 2], "x": 5.25, "y": 3},
|
||||
{"label": "B", "matrix": [6, 3], "x": 6.25, "y": 3},
|
||||
{"label": "N", "matrix": [7, 3], "x": 7.25, "y": 3},
|
||||
{"label": "M", "matrix": [6, 4], "x": 8.25, "y": 3},
|
||||
{"label": "<", "matrix": [7, 4], "x": 9.25, "y": 3},
|
||||
{"label": ">", "matrix": [6, 5], "x": 10.25, "y": 3},
|
||||
{"label": "?", "matrix": [7, 5], "x": 11.25, "y": 3},
|
||||
{"label": "Shift", "matrix": [6, 6], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"label": "Fn", "matrix": [9, 6], "x": 14, "y": 3},
|
||||
|
||||
{"label": "Ctrl", "matrix": [8, 0], "x": 0, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [9, 0], "x": 1.5, "y": 4},
|
||||
{"label": "Alt", "matrix": [9, 1], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"label": "Space", "matrix": [9, 3], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Alt", "matrix": [8, 5], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [9, 5], "x": 12.5, "y": 4},
|
||||
{"label": "Ctrl", "matrix": [8, 6], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
```
|
||||
┌───────┐
|
||||
2u Backspace │36? │
|
||||
2u Backspace │36 │
|
||||
└───────┘
|
||||
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
|
||||
│00 │10 │01 │11 │02 │12 │03 │13 │04 │14 │05 │15 │06 │16 │36 │
|
||||
@@ -19,6 +19,6 @@
|
||||
│60 │ 2.25u LShift 2.75u RShift │66 │
|
||||
└────────┘ └──────────┘
|
||||
┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
|
||||
│80 │90 │91 │93 │85 │95 │86 │ Tsangan/WKL/HHKB
|
||||
│80 │90 │91 │93 │85 │95 │86 │ Tsangan/HHKB
|
||||
└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
|
||||
```
|
||||
|
||||
25
keyboards/acheron/themis/87h/87h.c
Normal file
25
keyboards/acheron/themis/87h/87h.c
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright 2023 Gondolindrim <gondolindrim@acheronproject.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
bool led_update_kb(led_t led_state) {
|
||||
bool res = led_update_user(led_state);
|
||||
if(res) {
|
||||
led_state.caps_lock ? rgblight_setrgb_at(0xAA,0xAA,0xAA,0) : rgblight_setrgb_at(0x00,0x00,0x00,0) ;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
33
keyboards/acheron/themis/87h/config.h
Normal file
33
keyboards/acheron/themis/87h/config.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
Copyright 2023 Gondolindrim <gondolindrim@acheronproject.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
#define RGBLED_NUM 1
|
||||
|
||||
#define WS2812_PWM_COMPLEMENTARY_OUTPUT
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
|
||||
#define WEAR_LEVELING_LOGICAL_SIZE 4096
|
||||
#define WEAR_LEVELING_BACKING_SIZE 8192
|
||||
22
keyboards/acheron/themis/87h/halconf.h
Normal file
22
keyboards/acheron/themis/87h/halconf.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_PWM TRUE
|
||||
#define HAL_USE_PAL TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
136
keyboards/acheron/themis/87h/info.json
Normal file
136
keyboards/acheron/themis/87h/info.json
Normal file
@@ -0,0 +1,136 @@
|
||||
{
|
||||
"keyboard_name": "Themis 87H Rev. Alpha",
|
||||
"usb": {
|
||||
"pid": "0x5448",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["A8" ,"C9" ,"C8" ,"B14","B12","B10","B1" ,"B0" ,"A7" ,"A6" ,"A5" ,"A4" ,"C5" ,"C7" ,"B3" ,"A2" ,"C12","D2" ],
|
||||
"rows": ["A15","A10","C6" ,"C4" ,"A3" ,"A1" ,"C11","C10","B4"]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"lto": true,
|
||||
"mousekey": true,
|
||||
"extrakey": true,
|
||||
"console": false,
|
||||
"backlight": false,
|
||||
"rgblight": true,
|
||||
"audio": false,
|
||||
"encoder": false,
|
||||
"nkro": true
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"ws2812": {
|
||||
"pin": "B15"
|
||||
},
|
||||
"processor": "STM32F401",
|
||||
"bootloader": "stm32-dfu",
|
||||
"community_layouts": ["tkl_ansi"],
|
||||
"layouts": {
|
||||
"LAYOUT_tkl_ansi": {
|
||||
"layout": [
|
||||
{"label":"Escape", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"label":"F1", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label":"F2", "matrix": [0, 2], "x": 3, "y": 0},
|
||||
{"label":"F3", "matrix": [0, 3], "x": 4, "y": 0},
|
||||
{"label":"F4", "matrix": [0, 4], "x": 5, "y": 0},
|
||||
|
||||
{"label":"F5", "matrix": [0, 5], "x": 6.5, "y": 0},
|
||||
{"label":"F6", "matrix": [0, 6], "x": 7.5, "y": 0},
|
||||
{"label":"F7", "matrix": [0, 7], "x": 8.5, "y": 0},
|
||||
{"label":"F8", "matrix": [0, 8], "x": 9.5, "y": 0},
|
||||
|
||||
{"label":"F9", "matrix": [0, 9], "x": 11, "y": 0},
|
||||
{"label":"F10", "matrix": [0, 10], "x": 12, "y": 0},
|
||||
{"label":"F11", "matrix": [0, 11], "x": 13, "y": 0},
|
||||
{"label":"F12", "matrix": [0, 12], "x": 14, "y": 0},
|
||||
|
||||
{"label":"Print Screen", "matrix": [6, 14], "x": 15.25, "y": 0},
|
||||
{"label":"Scroll Lock", "matrix": [6, 17], "x": 16.25, "y": 0},
|
||||
{"label":"Pause", "matrix": [6, 16], "x": 17.25, "y": 0},
|
||||
|
||||
{"label":"`~", "matrix": [1, 0], "x": 0, "y": 1.25},
|
||||
{"label":"1!", "matrix": [1, 1], "x": 1, "y": 1.25},
|
||||
{"label":"2@", "matrix": [1, 2], "x": 2, "y": 1.25},
|
||||
{"label":"3#", "matrix": [1, 3], "x": 3, "y": 1.25},
|
||||
{"label":"4$", "matrix": [1, 4], "x": 4, "y": 1.25},
|
||||
{"label":"5%", "matrix": [1, 5], "x": 5, "y": 1.25},
|
||||
{"label":"6^", "matrix": [1, 6], "x": 6, "y": 1.25},
|
||||
{"label":"7&", "matrix": [1, 7], "x": 7, "y": 1.25},
|
||||
{"label":"8*", "matrix": [1, 8], "x": 8, "y": 1.25},
|
||||
{"label":"9(", "matrix": [1, 9], "x": 9, "y": 1.25},
|
||||
{"label":"0)", "matrix": [1, 10], "x": 10, "y": 1.25},
|
||||
{"label":"-_", "matrix": [1, 11], "x": 11, "y": 1.25},
|
||||
{"label":"=+", "matrix": [1, 12], "x": 12, "y": 1.25},
|
||||
{"label":"Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
|
||||
|
||||
{"label":"Insert", "matrix": [7, 14], "x": 15.25, "y": 1.25},
|
||||
{"label":"Home", "matrix": [7, 17], "x": 16.25, "y": 1.25},
|
||||
{"label":"Page Up","matrix": [7, 16], "x": 17.25, "y": 1.25},
|
||||
|
||||
{"label":"Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
|
||||
{"label":"Q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
|
||||
{"label":"W", "matrix": [2, 2], "x": 2.5, "y": 2.25},
|
||||
{"label":"E", "matrix": [2, 3], "x": 3.5, "y": 2.25},
|
||||
{"label":"R", "matrix": [2, 4], "x": 4.5, "y": 2.25},
|
||||
{"label":"T", "matrix": [2, 5], "x": 5.5, "y": 2.25},
|
||||
{"label":"Y", "matrix": [2, 6], "x": 6.5, "y": 2.25},
|
||||
{"label":"U", "matrix": [2, 7], "x": 7.5, "y": 2.25},
|
||||
{"label":"I", "matrix": [2, 8], "x": 8.5, "y": 2.25},
|
||||
{"label":"O", "matrix": [2, 9], "x": 9.5, "y": 2.25},
|
||||
{"label":"P", "matrix": [2, 10], "x": 10.5, "y": 2.25},
|
||||
{"label":"[{", "matrix": [2, 11], "x": 11.5, "y": 2.25},
|
||||
{"label":"]}", "matrix": [2, 12], "x": 12.5, "y": 2.25},
|
||||
{"label":"\\|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
|
||||
|
||||
{"label":"Delete", "matrix": [8, 14], "x": 15.25, "y": 2.25},
|
||||
{"label":"End", "matrix": [8, 17], "x": 16.25, "y": 2.25},
|
||||
{"label":"Page Down", "matrix": [8, 16], "x": 17.25, "y": 2.25},
|
||||
|
||||
{"label":"Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
|
||||
{"label":"A", "matrix": [3, 1], "x": 1.75, "y": 3.25},
|
||||
{"label":"S", "matrix": [3, 2], "x": 2.75, "y": 3.25},
|
||||
{"label":"D", "matrix": [3, 3], "x": 3.75, "y": 3.25},
|
||||
{"label":"F", "matrix": [3, 4], "x": 4.75, "y": 3.25},
|
||||
{"label":"G", "matrix": [3, 5], "x": 5.75, "y": 3.25},
|
||||
{"label":"H", "matrix": [3, 6], "x": 6.75, "y": 3.25},
|
||||
{"label":"J", "matrix": [3, 7], "x": 7.75, "y": 3.25},
|
||||
{"label":"K", "matrix": [3, 8], "x": 8.75, "y": 3.25},
|
||||
{"label":"L", "matrix": [3, 9], "x": 9.75, "y": 3.25},
|
||||
{"label":";:", "matrix": [3, 10], "x": 10.75, "y": 3.25},
|
||||
{"label":"\'\"", "matrix": [3, 11], "x": 11.75, "y": 3.25},
|
||||
{"label":"Enter", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25},
|
||||
|
||||
{"label":"Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
|
||||
{"label":"Z", "matrix": [4, 2], "x": 2.25, "y": 4.25},
|
||||
{"label":"X", "matrix": [4, 3], "x": 3.25, "y": 4.25},
|
||||
{"label":"C", "matrix": [4, 4], "x": 4.25, "y": 4.25},
|
||||
{"label":"V", "matrix": [4, 5], "x": 5.25, "y": 4.25},
|
||||
{"label":"B", "matrix": [4, 6], "x": 6.25, "y": 4.25},
|
||||
{"label":"N", "matrix": [4, 7], "x": 7.25, "y": 4.25},
|
||||
{"label":"M", "matrix": [4, 8], "x": 8.25, "y": 4.25},
|
||||
{"label":",<", "matrix": [4, 9], "x": 9.25, "y": 4.25},
|
||||
{"label":".>", "matrix": [4, 10], "x": 10.25, "y": 4.25},
|
||||
{"label":"/?", "matrix": [4, 11], "x": 11.25, "y": 4.25},
|
||||
{"label":"Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75},
|
||||
|
||||
{"label":"Up", "matrix": [4, 15], "x": 16.25, "y": 4.25},
|
||||
|
||||
{"label":"LCtrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
|
||||
{"label":"Lwin", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
|
||||
{"label":"LAlt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25},
|
||||
{"label":"Space", "matrix": [5, 6], "x": 3.75, "y": 5.25, "w": 6.25},
|
||||
{"label":"RAlt", "matrix": [5, 9], "x": 10, "y": 5.25, "w": 1.25},
|
||||
{"label":"RWin", "matrix": [5, 10], "x": 11.25, "y": 5.25, "w": 1.25},
|
||||
{"label":"MO(1)", "matrix": [5, 11], "x": 12.5, "y": 5.25, "w": 1.25},
|
||||
{"label":"RCtrl", "matrix": [5, 12], "x": 13.75, "y": 5.25, "w": 1.25},
|
||||
|
||||
{"label":"Left", "matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"label":"Down", "matrix": [5, 15], "x": 16.25, "y": 5.25},
|
||||
{"label":"Right", "matrix": [5, 16], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
37
keyboards/acheron/themis/87h/keymaps/default/keymap.c
Executable file
37
keyboards/acheron/themis/87h/keymaps/default/keymap.c
Executable file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
Copyright 2020 Álvaro "Gondolindrim" Volpato <alvaro.volpato@usp.br>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_tkl_ansi(
|
||||
KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, KC_SCRL, KC_PAUS ,
|
||||
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_INS , KC_HOME, KC_PGUP ,
|
||||
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_END , KC_PGDN ,
|
||||
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
|
||||
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP ,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_tkl_ansi(
|
||||
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
37
keyboards/acheron/themis/87h/keymaps/via/keymap.c
Executable file
37
keyboards/acheron/themis/87h/keymaps/via/keymap.c
Executable file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
Copyright 2020 Álvaro "Gondolindrim" Volpato <alvaro.volpato@usp.br>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_tkl_ansi(
|
||||
KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, KC_SCRL, KC_PAUS ,
|
||||
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_INS , KC_HOME, KC_PGUP ,
|
||||
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_END , KC_PGDN ,
|
||||
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
|
||||
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP ,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, MO(1) , KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_tkl_ansi(
|
||||
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
25
keyboards/acheron/themis/87h/mcuconf.h
Normal file
25
keyboards/acheron/themis/87h/mcuconf.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_PWM_USE_ADVANCED
|
||||
#define STM32_PWM_USE_ADVANCED TRUE
|
||||
|
||||
#undef STM32_PWM_USE_TIM1
|
||||
#define STM32_PWM_USE_TIM1 TRUE
|
||||
0
keyboards/acheron/themis/87h/rules.mk
Normal file
0
keyboards/acheron/themis/87h/rules.mk
Normal file
25
keyboards/acheron/themis/87htsc/87htsc.c
Normal file
25
keyboards/acheron/themis/87htsc/87htsc.c
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright 2023 Gondolindrim <gondolindrim@acheronproject.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
bool led_update_kb(led_t led_state) {
|
||||
bool res = led_update_user(led_state);
|
||||
if(res) {
|
||||
led_state.caps_lock ? rgblight_setrgb_at(0xAA,0xAA,0xAA,0) : rgblight_setrgb_at(0x00,0x00,0x00,0) ;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
33
keyboards/acheron/themis/87htsc/config.h
Normal file
33
keyboards/acheron/themis/87htsc/config.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
Copyright 2023 Gondolindrim <gondolindrim@acheronproject.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
#define RGBLED_NUM 1
|
||||
|
||||
#define WS2812_PWM_COMPLEMENTARY_OUTPUT
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
|
||||
#define WEAR_LEVELING_LOGICAL_SIZE 4096
|
||||
#define WEAR_LEVELING_BACKING_SIZE 8192
|
||||
22
keyboards/acheron/themis/87htsc/halconf.h
Normal file
22
keyboards/acheron/themis/87htsc/halconf.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_PWM TRUE
|
||||
#define HAL_USE_PAL TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
135
keyboards/acheron/themis/87htsc/info.json
Normal file
135
keyboards/acheron/themis/87htsc/info.json
Normal file
@@ -0,0 +1,135 @@
|
||||
{
|
||||
"keyboard_name": "Themis 87H-T-SC Rev. Alpha",
|
||||
"usb": {
|
||||
"pid": "0x5449",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["A8" ,"C9" ,"C8" ,"B14","B12","B10","B1" ,"B0" ,"A7" ,"A6" ,"A5" ,"A4" ,"C5" ,"C7" ,"B3" ,"A2" ,"C12","D2" ],
|
||||
"rows": ["A15","A10","C6" ,"C4" ,"A3" ,"A1" ,"C11","C10","B4"]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"lto": true,
|
||||
"mousekey": true,
|
||||
"extrakey": true,
|
||||
"console": false,
|
||||
"backlight": false,
|
||||
"rgblight": true,
|
||||
"audio": false,
|
||||
"encoder": false,
|
||||
"nkro": true
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"ws2812": {
|
||||
"pin": "B15"
|
||||
},
|
||||
"processor": "STM32F401",
|
||||
"bootloader": "stm32-dfu",
|
||||
"community_layouts": ["tkl_ansi_tsangan"],
|
||||
"layouts": {
|
||||
"LAYOUT_tkl_ansi_tsangan": {
|
||||
"layout": [
|
||||
{"label":"Escape", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"label":"F1", "matrix": [0, 1], "x": 2, "y": 0},
|
||||
{"label":"F2", "matrix": [0, 2], "x": 3, "y": 0},
|
||||
{"label":"F3", "matrix": [0, 3], "x": 4, "y": 0},
|
||||
{"label":"F4", "matrix": [0, 4], "x": 5, "y": 0},
|
||||
|
||||
{"label":"F5", "matrix": [0, 6], "x": 6.5, "y": 0},
|
||||
{"label":"F6", "matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"label":"F7", "matrix": [0, 8], "x": 8.5, "y": 0},
|
||||
{"label":"F8", "matrix": [0, 9], "x": 9.5, "y": 0},
|
||||
|
||||
{"label":"F9", "matrix": [0, 10], "x": 11, "y": 0},
|
||||
{"label":"F10", "matrix": [0, 11], "x": 12, "y": 0},
|
||||
{"label":"F11", "matrix": [0, 12], "x": 13, "y": 0},
|
||||
{"label":"F12", "matrix": [0, 13], "x": 14, "y": 0},
|
||||
|
||||
{"label":"Print Screen", "matrix": [6, 14], "x": 15.25, "y": 0},
|
||||
{"label":"Scroll Lock", "matrix": [6, 17], "x": 16.25, "y": 0},
|
||||
{"label":"Pause", "matrix": [6, 16], "x": 17.25, "y": 0},
|
||||
|
||||
{"label":"`~", "matrix": [1, 0], "x": 0, "y": 1.25},
|
||||
{"label":"1!", "matrix": [1, 1], "x": 1, "y": 1.25},
|
||||
{"label":"2@", "matrix": [1, 2], "x": 2, "y": 1.25},
|
||||
{"label":"3#", "matrix": [1, 3], "x": 3, "y": 1.25},
|
||||
{"label":"4$", "matrix": [1, 4], "x": 4, "y": 1.25},
|
||||
{"label":"5%", "matrix": [1, 5], "x": 5, "y": 1.25},
|
||||
{"label":"6^", "matrix": [1, 6], "x": 6, "y": 1.25},
|
||||
{"label":"7&", "matrix": [1, 7], "x": 7, "y": 1.25},
|
||||
{"label":"8*", "matrix": [1, 8], "x": 8, "y": 1.25},
|
||||
{"label":"9(", "matrix": [1, 9], "x": 9, "y": 1.25},
|
||||
{"label":"0)", "matrix": [1, 10], "x": 10, "y": 1.25},
|
||||
{"label":"-_", "matrix": [1, 11], "x": 11, "y": 1.25},
|
||||
{"label":"=+", "matrix": [1, 12], "x": 12, "y": 1.25},
|
||||
{"label":"Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
|
||||
|
||||
{"label":"Insert", "matrix": [7, 14], "x": 15.25, "y": 1.25},
|
||||
{"label":"Home", "matrix": [7, 17], "x": 16.25, "y": 1.25},
|
||||
{"label":"Page Up","matrix": [7, 16], "x": 17.25, "y": 1.25},
|
||||
|
||||
{"label":"Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
|
||||
{"label":"Q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
|
||||
{"label":"W", "matrix": [2, 2], "x": 2.5, "y": 2.25},
|
||||
{"label":"E", "matrix": [2, 3], "x": 3.5, "y": 2.25},
|
||||
{"label":"R", "matrix": [2, 4], "x": 4.5, "y": 2.25},
|
||||
{"label":"T", "matrix": [2, 5], "x": 5.5, "y": 2.25},
|
||||
{"label":"Y", "matrix": [2, 6], "x": 6.5, "y": 2.25},
|
||||
{"label":"U", "matrix": [2, 7], "x": 7.5, "y": 2.25},
|
||||
{"label":"I", "matrix": [2, 8], "x": 8.5, "y": 2.25},
|
||||
{"label":"O", "matrix": [2, 9], "x": 9.5, "y": 2.25},
|
||||
{"label":"P", "matrix": [2, 10], "x": 10.5, "y": 2.25},
|
||||
{"label":"[{", "matrix": [2, 11], "x": 11.5, "y": 2.25},
|
||||
{"label":"]}", "matrix": [2, 12], "x": 12.5, "y": 2.25},
|
||||
{"label":"\\|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
|
||||
|
||||
{"label":"Delete", "matrix": [8, 14], "x": 15.25, "y": 2.25},
|
||||
{"label":"End", "matrix": [8, 17], "x": 16.25, "y": 2.25},
|
||||
{"label":"Page Down", "matrix": [8, 16], "x": 17.25, "y": 2.25},
|
||||
|
||||
{"label":"Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
|
||||
{"label":"A", "matrix": [3, 1], "x": 1.75, "y": 3.25},
|
||||
{"label":"S", "matrix": [3, 2], "x": 2.75, "y": 3.25},
|
||||
{"label":"D", "matrix": [3, 3], "x": 3.75, "y": 3.25},
|
||||
{"label":"F", "matrix": [3, 4], "x": 4.75, "y": 3.25},
|
||||
{"label":"G", "matrix": [3, 5], "x": 5.75, "y": 3.25},
|
||||
{"label":"H", "matrix": [3, 6], "x": 6.75, "y": 3.25},
|
||||
{"label":"J", "matrix": [3, 7], "x": 7.75, "y": 3.25},
|
||||
{"label":"K", "matrix": [3, 8], "x": 8.75, "y": 3.25},
|
||||
{"label":"L", "matrix": [3, 9], "x": 9.75, "y": 3.25},
|
||||
{"label":";:", "matrix": [3, 10], "x": 10.75, "y": 3.25},
|
||||
{"label":"\'\"", "matrix": [3, 11], "x": 11.75, "y": 3.25},
|
||||
{"label":"Enter", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25},
|
||||
|
||||
{"label":"Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
|
||||
{"label":"Z", "matrix": [4, 2], "x": 2.25, "y": 4.25},
|
||||
{"label":"X", "matrix": [4, 3], "x": 3.25, "y": 4.25},
|
||||
{"label":"C", "matrix": [4, 4], "x": 4.25, "y": 4.25},
|
||||
{"label":"V", "matrix": [4, 5], "x": 5.25, "y": 4.25},
|
||||
{"label":"B", "matrix": [4, 6], "x": 6.25, "y": 4.25},
|
||||
{"label":"N", "matrix": [4, 7], "x": 7.25, "y": 4.25},
|
||||
{"label":"M", "matrix": [4, 8], "x": 8.25, "y": 4.25},
|
||||
{"label":",<", "matrix": [4, 9], "x": 9.25, "y": 4.25},
|
||||
{"label":".>", "matrix": [4, 10], "x": 10.25, "y": 4.25},
|
||||
{"label":"/?", "matrix": [4, 11], "x": 11.25, "y": 4.25},
|
||||
{"label":"Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75},
|
||||
|
||||
{"label":"Up", "matrix": [4, 15], "x": 16.25, "y": 4.25},
|
||||
|
||||
{"label":"LCtrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"label":"Lwin", "matrix": [5, 1], "x": 1.5, "y": 5.25},
|
||||
{"label":"LAlt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"label":"Space", "matrix": [5, 6], "x": 4, "y": 5.25, "w": 6.25},
|
||||
{"label":"RAlt", "matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"label":"RWin", "matrix": [5, 11], "x": 12.5, "y": 5.25},
|
||||
{"label":"RCtrl", "matrix": [5, 12], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
|
||||
{"label":"Left", "matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"label":"Down", "matrix": [5, 15], "x": 16.25, "y": 5.25},
|
||||
{"label":"Right", "matrix": [5, 16], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
37
keyboards/acheron/themis/87htsc/keymaps/default/keymap.c
Executable file
37
keyboards/acheron/themis/87htsc/keymaps/default/keymap.c
Executable file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
Copyright 2023 Gondolindrim
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_tkl_ansi_tsangan(
|
||||
KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, KC_SCRL, KC_PAUS ,
|
||||
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_INS , KC_HOME, KC_PGUP ,
|
||||
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_END , KC_PGDN ,
|
||||
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
|
||||
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP ,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_tkl_ansi_tsangan(
|
||||
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
37
keyboards/acheron/themis/87htsc/keymaps/via/keymap.c
Executable file
37
keyboards/acheron/themis/87htsc/keymaps/via/keymap.c
Executable file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
Copyright 2023 Gondolindrim
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_tkl_ansi_tsangan(
|
||||
KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_PSCR, KC_SCRL, KC_PAUS ,
|
||||
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_INS , KC_HOME, KC_PGUP ,
|
||||
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_END , KC_PGDN ,
|
||||
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
|
||||
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP ,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_tkl_ansi_tsangan(
|
||||
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
1
keyboards/acheron/themis/87htsc/keymaps/via/rules.mk
Normal file
1
keyboards/acheron/themis/87htsc/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
||||
25
keyboards/acheron/themis/87htsc/mcuconf.h
Normal file
25
keyboards/acheron/themis/87htsc/mcuconf.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_PWM_USE_ADVANCED
|
||||
#define STM32_PWM_USE_ADVANCED TRUE
|
||||
|
||||
#undef STM32_PWM_USE_TIM1
|
||||
#define STM32_PWM_USE_TIM1 TRUE
|
||||
0
keyboards/acheron/themis/87htsc/rules.mk
Normal file
0
keyboards/acheron/themis/87htsc/rules.mk
Normal file
25
keyboards/acheron/themis/88htsc/88htsc.c
Normal file
25
keyboards/acheron/themis/88htsc/88htsc.c
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright 2023 Gondolindrim <gondolindrim@acheronproject.com>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
bool led_update_kb(led_t led_state) {
|
||||
bool res = led_update_user(led_state);
|
||||
if(res) {
|
||||
led_state.caps_lock ? rgblight_setrgb_at(0xAA,0xAA,0xAA,0) : rgblight_setrgb_at(0x00,0x00,0x00,0) ;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
33
keyboards/acheron/themis/88htsc/config.h
Normal file
33
keyboards/acheron/themis/88htsc/config.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
Copyright 2023 Gondolindrim <gondolindrim@acheronproject.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define LOCKING_SUPPORT_ENABLE
|
||||
#define LOCKING_RESYNC_ENABLE
|
||||
|
||||
#define RGBLED_NUM 1
|
||||
|
||||
#define WS2812_PWM_COMPLEMENTARY_OUTPUT
|
||||
#define WS2812_PWM_DRIVER PWMD1
|
||||
#define WS2812_PWM_CHANNEL 3
|
||||
#define WS2812_PWM_PAL_MODE 1
|
||||
#define WS2812_DMA_STREAM STM32_DMA2_STREAM5
|
||||
#define WS2812_DMA_CHANNEL 6
|
||||
|
||||
#define WEAR_LEVELING_LOGICAL_SIZE 4096
|
||||
#define WEAR_LEVELING_BACKING_SIZE 8192
|
||||
22
keyboards/acheron/themis/88htsc/halconf.h
Normal file
22
keyboards/acheron/themis/88htsc/halconf.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_PWM TRUE
|
||||
#define HAL_USE_PAL TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
137
keyboards/acheron/themis/88htsc/info.json
Normal file
137
keyboards/acheron/themis/88htsc/info.json
Normal file
@@ -0,0 +1,137 @@
|
||||
{
|
||||
"keyboard_name": "Themis 88H-T-SC Rev. Alpha",
|
||||
"usb": {
|
||||
"pid": "0x5450",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["A8" ,"C9" ,"C8" ,"B14","B12","B10","B1" ,"B0" ,"A7" ,"A6" ,"A5" ,"A4" ,"C5" ,"C7" ,"B3" ,"A2" ,"C12","D2" ],
|
||||
"rows": ["A15","A10","C6" ,"C4" ,"A3" ,"A1" ,"C11","C10","B4"]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"lto": true,
|
||||
"mousekey": true,
|
||||
"extrakey": true,
|
||||
"console": false,
|
||||
"backlight": false,
|
||||
"rgblight": true,
|
||||
"audio": false,
|
||||
"encoder": false,
|
||||
"nkro": true
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"ws2812": {
|
||||
"pin": "B15"
|
||||
},
|
||||
"processor": "STM32F401",
|
||||
"bootloader": "stm32-dfu",
|
||||
"community_layouts": ["tkl_f13_ansi_tsangan"],
|
||||
"layouts": {
|
||||
"LAYOUT_tkl_f13_ansi_tsangan": {
|
||||
"layout": [
|
||||
{"label":"Escape", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
|
||||
{"label":"F1", "matrix": [0, 1], "x": 1.25, "y": 0},
|
||||
{"label":"F2", "matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"label":"F3", "matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"label":"F4", "matrix": [0, 4], "x": 4.25, "y": 0},
|
||||
|
||||
{"label":"F5", "matrix": [0, 5], "x": 5.5, "y": 0},
|
||||
{"label":"F6", "matrix": [0, 6], "x": 6.5, "y": 0},
|
||||
{"label":"F7", "matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"label":"F8", "matrix": [0, 8], "x": 8.5, "y": 0},
|
||||
|
||||
{"label":"F9", "matrix": [0, 9], "x": 9.75, "y": 0},
|
||||
{"label":"F10", "matrix": [0, 10], "x": 10.75, "y": 0},
|
||||
{"label":"F11", "matrix": [0, 11], "x": 11.75, "y": 0},
|
||||
{"label":"F12", "matrix": [0, 12], "x": 12.75, "y": 0},
|
||||
|
||||
{"label":"F13", "matrix": [0, 13], "x": 14, "y": 0},
|
||||
|
||||
{"label":"Print Screen", "matrix": [6, 14], "x": 15.25, "y": 0},
|
||||
{"label":"Scroll Lock", "matrix": [6, 17], "x": 16.25, "y": 0},
|
||||
{"label":"Pause", "matrix": [6, 16], "x": 17.25, "y": 0},
|
||||
|
||||
{"label":"`~", "matrix": [1, 0], "x": 0, "y": 1.25},
|
||||
{"label":"1!", "matrix": [1, 1], "x": 1, "y": 1.25},
|
||||
{"label":"2@", "matrix": [1, 2], "x": 2, "y": 1.25},
|
||||
{"label":"3#", "matrix": [1, 3], "x": 3, "y": 1.25},
|
||||
{"label":"4$", "matrix": [1, 4], "x": 4, "y": 1.25},
|
||||
{"label":"5%", "matrix": [1, 5], "x": 5, "y": 1.25},
|
||||
{"label":"6^", "matrix": [1, 6], "x": 6, "y": 1.25},
|
||||
{"label":"7&", "matrix": [1, 7], "x": 7, "y": 1.25},
|
||||
{"label":"8*", "matrix": [1, 8], "x": 8, "y": 1.25},
|
||||
{"label":"9(", "matrix": [1, 9], "x": 9, "y": 1.25},
|
||||
{"label":"0)", "matrix": [1, 10], "x": 10, "y": 1.25},
|
||||
{"label":"-_", "matrix": [1, 11], "x": 11, "y": 1.25},
|
||||
{"label":"=+", "matrix": [1, 12], "x": 12, "y": 1.25},
|
||||
{"label":"Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
|
||||
|
||||
{"label":"Insert", "matrix": [7, 14], "x": 15.25, "y": 1.25},
|
||||
{"label":"Home", "matrix": [7, 17], "x": 16.25, "y": 1.25},
|
||||
{"label":"Page Up","matrix": [7, 16], "x": 17.25, "y": 1.25},
|
||||
|
||||
{"label":"Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
|
||||
{"label":"Q", "matrix": [2, 1], "x": 1.5, "y": 2.25},
|
||||
{"label":"W", "matrix": [2, 2], "x": 2.5, "y": 2.25},
|
||||
{"label":"E", "matrix": [2, 3], "x": 3.5, "y": 2.25},
|
||||
{"label":"R", "matrix": [2, 4], "x": 4.5, "y": 2.25},
|
||||
{"label":"T", "matrix": [2, 5], "x": 5.5, "y": 2.25},
|
||||
{"label":"Y", "matrix": [2, 6], "x": 6.5, "y": 2.25},
|
||||
{"label":"U", "matrix": [2, 7], "x": 7.5, "y": 2.25},
|
||||
{"label":"I", "matrix": [2, 8], "x": 8.5, "y": 2.25},
|
||||
{"label":"O", "matrix": [2, 9], "x": 9.5, "y": 2.25},
|
||||
{"label":"P", "matrix": [2, 10], "x": 10.5, "y": 2.25},
|
||||
{"label":"[{", "matrix": [2, 11], "x": 11.5, "y": 2.25},
|
||||
{"label":"]}", "matrix": [2, 12], "x": 12.5, "y": 2.25},
|
||||
{"label":"\\|", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
|
||||
|
||||
{"label":"Delete", "matrix": [8, 14], "x": 15.25, "y": 2.25},
|
||||
{"label":"End", "matrix": [8, 17], "x": 16.25, "y": 2.25},
|
||||
{"label":"Page Down", "matrix": [8, 16], "x": 17.25, "y": 2.25},
|
||||
|
||||
{"label":"Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
|
||||
{"label":"A", "matrix": [3, 1], "x": 1.75, "y": 3.25},
|
||||
{"label":"S", "matrix": [3, 2], "x": 2.75, "y": 3.25},
|
||||
{"label":"D", "matrix": [3, 3], "x": 3.75, "y": 3.25},
|
||||
{"label":"F", "matrix": [3, 4], "x": 4.75, "y": 3.25},
|
||||
{"label":"G", "matrix": [3, 5], "x": 5.75, "y": 3.25},
|
||||
{"label":"H", "matrix": [3, 6], "x": 6.75, "y": 3.25},
|
||||
{"label":"J", "matrix": [3, 7], "x": 7.75, "y": 3.25},
|
||||
{"label":"K", "matrix": [3, 8], "x": 8.75, "y": 3.25},
|
||||
{"label":"L", "matrix": [3, 9], "x": 9.75, "y": 3.25},
|
||||
{"label":";:", "matrix": [3, 10], "x": 10.75, "y": 3.25},
|
||||
{"label":"\'\"", "matrix": [3, 11], "x": 11.75, "y": 3.25},
|
||||
{"label":"Enter", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25},
|
||||
|
||||
{"label":"Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
|
||||
{"label":"Z", "matrix": [4, 2], "x": 2.25, "y": 4.25},
|
||||
{"label":"X", "matrix": [4, 3], "x": 3.25, "y": 4.25},
|
||||
{"label":"C", "matrix": [4, 4], "x": 4.25, "y": 4.25},
|
||||
{"label":"V", "matrix": [4, 5], "x": 5.25, "y": 4.25},
|
||||
{"label":"B", "matrix": [4, 6], "x": 6.25, "y": 4.25},
|
||||
{"label":"N", "matrix": [4, 7], "x": 7.25, "y": 4.25},
|
||||
{"label":"M", "matrix": [4, 8], "x": 8.25, "y": 4.25},
|
||||
{"label":",<", "matrix": [4, 9], "x": 9.25, "y": 4.25},
|
||||
{"label":".>", "matrix": [4, 10], "x": 10.25, "y": 4.25},
|
||||
{"label":"/?", "matrix": [4, 11], "x": 11.25, "y": 4.25},
|
||||
{"label":"Shift", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75},
|
||||
|
||||
{"label":"Up", "matrix": [4, 15], "x": 16.25, "y": 4.25},
|
||||
|
||||
{"label":"LCtrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"label":"Lwin", "matrix": [5, 1], "x": 1.5, "y": 5.25},
|
||||
{"label":"LAlt", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"label":"Space", "matrix": [5, 6], "x": 4, "y": 5.25, "w": 6.25},
|
||||
{"label":"RAlt", "matrix": [5, 10], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"label":"RWin", "matrix": [5, 11], "x": 12.5, "y": 5.25},
|
||||
{"label":"RCtrl", "matrix": [5, 12], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
|
||||
{"label":"Left", "matrix": [5, 14], "x": 15.25, "y": 5.25},
|
||||
{"label":"Down", "matrix": [5, 15], "x": 16.25, "y": 5.25},
|
||||
{"label":"Right", "matrix": [5, 16], "x": 17.25, "y": 5.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
37
keyboards/acheron/themis/88htsc/keymaps/default/keymap.c
Executable file
37
keyboards/acheron/themis/88htsc/keymaps/default/keymap.c
Executable file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
Copyright 2023 Gondolindrim
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_F13, KC_PSCR, KC_SCRL, KC_PAUS ,
|
||||
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_INS , KC_HOME, KC_PGUP ,
|
||||
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_END , KC_PGDN ,
|
||||
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
|
||||
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP ,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
37
keyboards/acheron/themis/88htsc/keymaps/via/keymap.c
Executable file
37
keyboards/acheron/themis/88htsc/keymaps/via/keymap.c
Executable file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
Copyright 2023 Gondolindrim
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_F13, KC_PSCR, KC_SCRL, KC_PAUS ,
|
||||
KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINS, KC_EQL , KC_BSPC, KC_INS , KC_HOME, KC_PGUP ,
|
||||
KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL , KC_END , KC_PGDN ,
|
||||
KC_CAPS, KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT ,
|
||||
KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_UP ,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_tkl_f13_ansi_tsangan(
|
||||
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
1
keyboards/acheron/themis/88htsc/keymaps/via/rules.mk
Normal file
1
keyboards/acheron/themis/88htsc/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
||||
25
keyboards/acheron/themis/88htsc/mcuconf.h
Normal file
25
keyboards/acheron/themis/88htsc/mcuconf.h
Normal file
@@ -0,0 +1,25 @@
|
||||
/* Copyright 2020 QMK
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_PWM_USE_ADVANCED
|
||||
#define STM32_PWM_USE_ADVANCED TRUE
|
||||
|
||||
#undef STM32_PWM_USE_TIM1
|
||||
#define STM32_PWM_USE_TIM1 TRUE
|
||||
0
keyboards/acheron/themis/88htsc/rules.mk
Normal file
0
keyboards/acheron/themis/88htsc/rules.mk
Normal file
8
keyboards/acheron/themis/info.json
Normal file
8
keyboards/acheron/themis/info.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"manufacturer": "AcheronProject",
|
||||
"url": "",
|
||||
"maintainer": "Gondolindrim",
|
||||
"usb": {
|
||||
"vid": "0xAC11"
|
||||
}
|
||||
}
|
||||
23
keyboards/acheron/themis/readme.md
Normal file
23
keyboards/acheron/themis/readme.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# Acheron Themis QMK firmware
|
||||
|
||||

|
||||
|
||||
The Themis is Acheron Project's open-source, freely available tenkeyless (TKL) keyboard Printed Circuit Boards (PCB) which features:
|
||||
|
||||
- No LED lighting
|
||||
- Solderless ("hotswap") MX switches support
|
||||
- Fixed layout for each variant
|
||||
|
||||
* Keyboard Maintainer: [Gondolindrim](https://github.com/Gondolindrim)
|
||||
* Hardware Supported: open-source PCB using the [Joker template](https://acheronproject.com/joker_mcus/joker/). First units were manufactured using STM32F4x1 microcontroller;
|
||||
* Hardware Availability: open-source PCBs
|
||||
|
||||
In order to flash this PCB, first build the default layout (after setting up your build environment):
|
||||
|
||||
make acheron/themis/<revision>:default
|
||||
|
||||
After building or downloading the firmware, put the PCB into DFU mode by holding the reset button for at least five seconds and upload the firmware onto the microcontroller through a utility like `dfu-util` or QMK Toolbox. Alternatively, you can build and flash using:
|
||||
|
||||
make acheron/themis/<revision>:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
59
keyboards/bastardkb/dilemma/4x6_4/4x6_4.c
Normal file
59
keyboards/bastardkb/dilemma/4x6_4/4x6_4.c
Normal file
@@ -0,0 +1,59 @@
|
||||
/**
|
||||
* Copyright 2020 Christopher Courtney <drashna@live.com> (@drashna)
|
||||
* Copyright 2021 Quentin LEBASTARD <qlebastard@gmail.com>
|
||||
* Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
|
||||
* Copyright 2023 casuanoob <casuanoob@hotmail.com> (@casuanoob)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Publicw License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#ifdef SWAP_HANDS_ENABLE
|
||||
const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Left hand, matrix positions */
|
||||
{{0, 5}, {1, 5}, {2, 5}, {3, 5}, {4, 5}, {5, 5}},
|
||||
{{0, 6}, {1, 6}, {2, 6}, {3, 6}, {4, 6}, {5, 6}},
|
||||
{{0, 7}, {1, 7}, {2, 7}, {3, 7}, {4, 7}, {5, 7}},
|
||||
{{0, 8}, {1, 8}, {2, 8}, {3, 8}, {4, 8}, {5, 8}},
|
||||
{{0, 9}, {1, 9}, {2, 9}, {3, 9}, {4, 9}, {5, 9}},
|
||||
/* Right hand, matrix positions */
|
||||
{{0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}},
|
||||
{{0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}},
|
||||
{{0, 2}, {1, 2}, {2, 2}, {3, 2}, {4, 2}, {5, 2}},
|
||||
{{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}},
|
||||
{{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}}
|
||||
};
|
||||
|
||||
# ifdef ENCODER_MAP_ENABLE
|
||||
const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {1, 0};
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef ENCODER_ENABLE
|
||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||
if (!encoder_update_user(index, clockwise)) {
|
||||
return false;
|
||||
}
|
||||
switch (index) {
|
||||
case 0: // Left-half encoder, mouse scroll.
|
||||
tap_code(clockwise ? KC_MS_WH_DOWN : KC_MS_WH_UP);
|
||||
break;
|
||||
case 1: // Right-half encoder, volume control.
|
||||
tap_code(clockwise ? KC_AUDIO_VOL_UP : KC_AUDIO_VOL_DOWN);
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endif // ENCODER_ENABLE
|
||||
54
keyboards/bastardkb/dilemma/4x6_4/config.h
Normal file
54
keyboards/bastardkb/dilemma/4x6_4/config.h
Normal file
@@ -0,0 +1,54 @@
|
||||
/**
|
||||
* Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
|
||||
* Copyright 2023 casuanoob <casuanoob@hotmail.com> (@casuanoob)
|
||||
*
|
||||
* 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
|
||||
|
||||
/* Handedness. */
|
||||
#define SPLIT_HAND_PIN GP29
|
||||
#define SPLIT_HAND_PIN_LOW_IS_LEFT // High -> right, Low -> left.
|
||||
|
||||
/* VBUS detection. */
|
||||
#define USB_VBUS_PIN GP19
|
||||
|
||||
/* CRC. */
|
||||
#define CRC8_USE_TABLE
|
||||
#define CRC8_OPTIMIZE_SPEED
|
||||
|
||||
/* Cirque trackpad over SPI. */
|
||||
#define SPI_DRIVER SPID0
|
||||
#define SPI_SCK_PIN GP22
|
||||
#define SPI_MOSI_PIN GP23
|
||||
#define SPI_MISO_PIN GP20
|
||||
#define POINTING_DEVICE_CS_PIN GP21
|
||||
#undef CIRQUE_PINNACLE_DIAMETER_MM
|
||||
#define CIRQUE_PINNACLE_DIAMETER_MM 40
|
||||
|
||||
/* Reset. */
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
||||
|
||||
/* RGB matrix support. */
|
||||
#define SPLIT_TRANSPORT_MIRROR
|
||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||
#define RGB_MATRIX_KEYPRESSES
|
||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
|
||||
// Startup values.
|
||||
#define RGB_MATRIX_DEFAULT_VAL 64
|
||||
#define RGB_MATRIX_DEFAULT_SPD 32
|
||||
22
keyboards/bastardkb/dilemma/4x6_4/halconf.h
Normal file
22
keyboards/bastardkb/dilemma/4x6_4/halconf.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/**
|
||||
* Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_SPI TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
266
keyboards/bastardkb/dilemma/4x6_4/info.json
Normal file
266
keyboards/bastardkb/dilemma/4x6_4/info.json
Normal file
@@ -0,0 +1,266 @@
|
||||
{
|
||||
"keyboard_name": "Dilemma Max",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x1837"
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"bootloader": "rp2040",
|
||||
"board": "GENERIC_RP_RP2040",
|
||||
"matrix_pins": {
|
||||
"cols": ["GP14", "GP8", "GP9", "GP7", "GP6", "GP28"],
|
||||
"rows": ["GP15", "GP4", "GP5", "GP27", "GP26"]
|
||||
},
|
||||
"diode_direction": "ROW2COL",
|
||||
"split": {
|
||||
"enabled": true,
|
||||
"soft_serial_pin": "GP1",
|
||||
"bootmagic": {
|
||||
"matrix": [5, 0]
|
||||
}
|
||||
},
|
||||
"encoder": {
|
||||
"enabled" : true,
|
||||
"rotary" : [
|
||||
{"pin_a": "GP25", "pin_b": "GP24"}
|
||||
]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgb_matrix": true,
|
||||
"caps_word": true,
|
||||
"tri_layer": true
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "GP10",
|
||||
"driver": "vendor"
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"driver": "ws2812",
|
||||
"split_count": [52, 52],
|
||||
"max_brightness": 176,
|
||||
"center_point": [112, 28],
|
||||
"animations": {
|
||||
"solid_color": true,
|
||||
"alphas_mods": true,
|
||||
"gradient_up_down": true,
|
||||
"gradient_left_right": true,
|
||||
"breathing": true,
|
||||
"band_sat": true,
|
||||
"band_val": true,
|
||||
"band_pinwheel_sat": true,
|
||||
"band_pinwheel_val": true,
|
||||
"band_spiral_sat": true,
|
||||
"band_spiral_val": true,
|
||||
"cycle_all": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_up_down": true,
|
||||
"cycle_out_in": true,
|
||||
"cycle_out_in_dual": true,
|
||||
"rainbow_moving_chevron": true,
|
||||
"cycle_pinwheel": true,
|
||||
"cycle_spiral": true,
|
||||
"dual_beacon": true,
|
||||
"rainbow_beacon": true,
|
||||
"rainbow_pinwheels": true,
|
||||
"raindrops": true,
|
||||
"jellybean_raindrops": true,
|
||||
"hue_breathing": true,
|
||||
"hue_pendulum": true,
|
||||
"hue_wave": true,
|
||||
"pixel_fractal": true,
|
||||
"pixel_flow": true,
|
||||
"pixel_rain": true,
|
||||
"typing_heatmap": true,
|
||||
"digital_rain": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_reactive": true,
|
||||
"solid_reactive_wide": true,
|
||||
"solid_reactive_multiwide": true,
|
||||
"solid_reactive_cross": true,
|
||||
"solid_reactive_multicross": true,
|
||||
"solid_reactive_nexus": true,
|
||||
"solid_reactive_multinexus": true,
|
||||
"splash": true,
|
||||
"multisplash": true,
|
||||
"solid_splash": true,
|
||||
"solid_multisplash": true
|
||||
},
|
||||
"layout": [
|
||||
{"x": 81, "y": 4, "flags": 2},
|
||||
{"x": 65, "y": 2, "flags": 2},
|
||||
{"x": 40, "y": 0, "flags": 2},
|
||||
{"x": 29, "y": 9, "flags": 2},
|
||||
{"x": 16, "y": 9, "flags": 2},
|
||||
{"x": 0, "y": 16, "flags": 2},
|
||||
{"x": 0, "y": 29, "flags": 2},
|
||||
{"x": 0, "y": 40, "flags": 2},
|
||||
{"x": 5, "y": 50, "flags": 2},
|
||||
{"x": 17, "y": 49, "flags": 2},
|
||||
{"x": 28, "y": 44, "flags": 2},
|
||||
{"x": 40, "y": 43, "flags": 2},
|
||||
{"x": 49, "y": 51, "flags": 2},
|
||||
{"x": 62, "y": 53, "flags": 2},
|
||||
{"x": 73, "y": 56, "flags": 2},
|
||||
{"x": 85, "y": 59, "flags": 2},
|
||||
{"x": 100, "y": 64, "flags": 2},
|
||||
{"x": 106, "y": 55, "flags": 2},
|
||||
{"x": 107, "y": 45, "flags": 2},
|
||||
{"x": 91, "y": 51, "flags": 2},
|
||||
{"x": 94, "y": 40, "flags": 2},
|
||||
{"x": 108, "y": 33, "flags": 2},
|
||||
{"x": 106, "y": 25, "flags": 2},
|
||||
{"x": 108, "y": 16, "flags": 2},
|
||||
|
||||
{"matrix": [0, 5], "x": 75, "y": 10, "flags": 4},
|
||||
{"matrix": [0, 4], "x": 62, "y": 9, "flags": 4},
|
||||
{"matrix": [0, 3], "x": 49, "y": 6, "flags": 4},
|
||||
{"matrix": [0, 2], "x": 35, "y": 10, "flags": 4},
|
||||
{"matrix": [0, 1], "x": 22, "y": 16, "flags": 4},
|
||||
{"matrix": [0, 0], "x": 9, "y": 16, "flags": 1},
|
||||
{"matrix": [1, 0], "x": 9, "y": 27, "flags": 1},
|
||||
{"matrix": [1, 1], "x": 22, "y": 27, "flags": 4},
|
||||
{"matrix": [1, 2], "x": 35, "y": 20, "flags": 4},
|
||||
{"matrix": [1, 3], "x": 49, "y": 17, "flags": 4},
|
||||
{"matrix": [1, 4], "x": 62, "y": 19, "flags": 4},
|
||||
{"matrix": [1, 5], "x": 75, "y": 21, "flags": 4},
|
||||
{"matrix": [2, 5], "x": 75, "y": 31, "flags": 4},
|
||||
{"matrix": [2, 4], "x": 62, "y": 30, "flags": 4},
|
||||
{"matrix": [2, 3], "x": 49, "y": 27, "flags": 4},
|
||||
{"matrix": [2, 2], "x": 35, "y": 31, "flags": 4},
|
||||
{"matrix": [2, 1], "x": 22, "y": 37, "flags": 4},
|
||||
{"matrix": [2, 0], "x": 9, "y": 37, "flags": 1},
|
||||
{"matrix": [3, 0], "x": 9, "y": 48, "flags": 1},
|
||||
{"matrix": [3, 1], "x": 22, "y": 48, "flags": 4},
|
||||
{"matrix": [3, 2], "x": 35, "y": 41, "flags": 4},
|
||||
{"matrix": [3, 3], "x": 49, "y": 38, "flags": 4},
|
||||
{"matrix": [3, 4], "x": 62, "y": 40, "flags": 4},
|
||||
{"matrix": [3, 5], "x": 75, "y": 42, "flags": 4},
|
||||
{"matrix": [4, 3], "x": 54, "y": 51, "flags": 4},
|
||||
{"matrix": [4, 1], "x": 68, "y": 53, "flags": 4},
|
||||
{"matrix": [4, 2], "x": 81, "y": 57, "flags": 4},
|
||||
{"matrix": [4, 4], "x": 92, "y": 64, "flags": 4},
|
||||
|
||||
{"x": 143, "y": 4, "flags": 2},
|
||||
{"x": 159, "y": 2, "flags": 2},
|
||||
{"x": 184, "y": 0, "flags": 2},
|
||||
{"x": 195, "y": 9, "flags": 2},
|
||||
{"x": 208, "y": 9, "flags": 2},
|
||||
{"x": 224, "y": 16, "flags": 2},
|
||||
{"x": 224, "y": 29, "flags": 2},
|
||||
{"x": 224, "y": 40, "flags": 2},
|
||||
{"x": 219, "y": 50, "flags": 2},
|
||||
{"x": 207, "y": 49, "flags": 2},
|
||||
{"x": 196, "y": 44, "flags": 2},
|
||||
{"x": 184, "y": 43, "flags": 2},
|
||||
{"x": 176, "y": 51, "flags": 2},
|
||||
{"x": 162, "y": 53, "flags": 2},
|
||||
{"x": 151, "y": 56, "flags": 2},
|
||||
{"x": 139, "y": 59, "flags": 2},
|
||||
{"x": 124, "y": 64, "flags": 2},
|
||||
{"x": 118, "y": 55, "flags": 2},
|
||||
{"x": 117, "y": 45, "flags": 2},
|
||||
{"x": 133, "y": 51, "flags": 2},
|
||||
{"x": 130, "y": 40, "flags": 2},
|
||||
{"x": 116, "y": 33, "flags": 2},
|
||||
{"x": 118, "y": 25, "flags": 2},
|
||||
{"x": 116, "y": 16, "flags": 2},
|
||||
|
||||
{"matrix": [5, 5], "x": 149, "y": 10, "flags": 4},
|
||||
{"matrix": [5, 4], "x": 162, "y": 9, "flags": 4},
|
||||
{"matrix": [5, 3], "x": 175, "y": 6, "flags": 4},
|
||||
{"matrix": [5, 2], "x": 189, "y": 10, "flags": 4},
|
||||
{"matrix": [5, 1], "x": 202, "y": 16, "flags": 4},
|
||||
{"matrix": [5, 0], "x": 215, "y": 16, "flags": 1},
|
||||
{"matrix": [6, 0], "x": 215, "y": 27, "flags": 1},
|
||||
{"matrix": [6, 1], "x": 202, "y": 27, "flags": 4},
|
||||
{"matrix": [6, 2], "x": 189, "y": 20, "flags": 4},
|
||||
{"matrix": [6, 3], "x": 175, "y": 17, "flags": 4},
|
||||
{"matrix": [6, 4], "x": 162, "y": 19, "flags": 4},
|
||||
{"matrix": [6, 5], "x": 149, "y": 21, "flags": 4},
|
||||
{"matrix": [7, 5], "x": 149, "y": 31, "flags": 4},
|
||||
{"matrix": [7, 4], "x": 162, "y": 30, "flags": 4},
|
||||
{"matrix": [7, 3], "x": 175, "y": 27, "flags": 4},
|
||||
{"matrix": [7, 2], "x": 189, "y": 31, "flags": 4},
|
||||
{"matrix": [7, 1], "x": 202, "y": 37, "flags": 4},
|
||||
{"matrix": [7, 0], "x": 215, "y": 37, "flags": 1},
|
||||
{"matrix": [8, 0], "x": 215, "y": 48, "flags": 1},
|
||||
{"matrix": [8, 1], "x": 202, "y": 48, "flags": 4},
|
||||
{"matrix": [8, 2], "x": 189, "y": 41, "flags": 4},
|
||||
{"matrix": [8, 3], "x": 175, "y": 38, "flags": 4},
|
||||
{"matrix": [8, 4], "x": 162, "y": 40, "flags": 4},
|
||||
{"matrix": [8, 5], "x": 149, "y": 42, "flags": 4},
|
||||
{"matrix": [9, 4], "x": 170, "y": 51, "flags": 4},
|
||||
{"matrix": [9, 2], "x": 156, "y": 53, "flags": 4},
|
||||
{"matrix": [9, 1], "x": 143, "y": 57, "flags": 4},
|
||||
{"matrix": [9, 3], "x": 132, "y": 64, "flags": 4}
|
||||
]
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label":"L00", "matrix": [0, 0], "x":0, "y":0},
|
||||
{"label":"L01", "matrix": [0, 1], "x":1, "y":0},
|
||||
{"label":"L02", "matrix": [0, 2], "x":2, "y":0},
|
||||
{"label":"L03", "matrix": [0, 3], "x":3, "y":0},
|
||||
{"label":"L04", "matrix": [0, 4], "x":4, "y":0},
|
||||
{"label":"L05", "matrix": [0, 5], "x":5, "y":0},
|
||||
{"label":"R05", "matrix": [5, 5], "x":8, "y":0},
|
||||
{"label":"R04", "matrix": [5, 4], "x":9, "y":0},
|
||||
{"label":"R03", "matrix": [5, 3], "x":10, "y":0},
|
||||
{"label":"R02", "matrix": [5, 2], "x":11, "y":0},
|
||||
{"label":"R01", "matrix": [5, 1], "x":12, "y":0},
|
||||
{"label":"R00", "matrix": [5, 0], "x":13, "y":0},
|
||||
{"label":"L10", "matrix": [1, 0], "x":0, "y":1},
|
||||
{"label":"L11", "matrix": [1, 1], "x":1, "y":1},
|
||||
{"label":"L12", "matrix": [1, 2], "x":2, "y":1},
|
||||
{"label":"L13", "matrix": [1, 3], "x":3, "y":1},
|
||||
{"label":"L14", "matrix": [1, 4], "x":4, "y":1},
|
||||
{"label":"L15", "matrix": [1, 5], "x":5, "y":1},
|
||||
{"label":"R15", "matrix": [6, 5], "x":8, "y":1},
|
||||
{"label":"R14", "matrix": [6, 4], "x":9, "y":1},
|
||||
{"label":"R13", "matrix": [6, 3], "x":10, "y":1},
|
||||
{"label":"R12", "matrix": [6, 2], "x":11, "y":1},
|
||||
{"label":"R11", "matrix": [6, 1], "x":12, "y":1},
|
||||
{"label":"R10", "matrix": [6, 0], "x":13, "y":1},
|
||||
{"label":"L20", "matrix": [2, 0], "x":0, "y":2},
|
||||
{"label":"L21", "matrix": [2, 1], "x":1, "y":2},
|
||||
{"label":"L22", "matrix": [2, 2], "x":2, "y":2},
|
||||
{"label":"L23", "matrix": [2, 3], "x":3, "y":2},
|
||||
{"label":"L24", "matrix": [2, 4], "x":4, "y":2},
|
||||
{"label":"L25", "matrix": [2, 5], "x":5, "y":2},
|
||||
{"label":"R25", "matrix": [7, 5], "x":8, "y":2},
|
||||
{"label":"R24", "matrix": [7, 4], "x":9, "y":2},
|
||||
{"label":"R23", "matrix": [7, 3], "x":10, "y":2},
|
||||
{"label":"R22", "matrix": [7, 2], "x":11, "y":2},
|
||||
{"label":"R21", "matrix": [7, 1], "x":12, "y":2},
|
||||
{"label":"R20", "matrix": [7, 0], "x":13, "y":2},
|
||||
{"label":"L30", "matrix": [3, 0], "x":0, "y":3},
|
||||
{"label":"L31", "matrix": [3, 1], "x":1, "y":3},
|
||||
{"label":"L32", "matrix": [3, 2], "x":2, "y":3},
|
||||
{"label":"L33", "matrix": [3, 3], "x":3, "y":3},
|
||||
{"label":"L34", "matrix": [3, 4], "x":4, "y":3},
|
||||
{"label":"L35", "matrix": [3, 5], "x":5, "y":3},
|
||||
{"label":"R35", "matrix": [8, 5], "x":8, "y":3},
|
||||
{"label":"R34", "matrix": [8, 4], "x":9, "y":3},
|
||||
{"label":"R33", "matrix": [8, 3], "x":10, "y":3},
|
||||
{"label":"R32", "matrix": [8, 2], "x":11, "y":3},
|
||||
{"label":"R31", "matrix": [8, 1], "x":12, "y":3},
|
||||
{"label":"R30", "matrix": [8, 0], "x":13, "y":3},
|
||||
{"label":"L43", "matrix": [4, 3], "x":2.5, "y":4},
|
||||
{"label":"L41", "matrix": [4, 1], "x":3.5, "y":4},
|
||||
{"label":"L42", "matrix": [4, 2], "x":4.5, "y":4},
|
||||
{"label":"L44", "matrix": [4, 4], "x":5.5, "y":4},
|
||||
{"label":"R44", "matrix": [9, 4], "x":7.5, "y":4},
|
||||
{"label":"R42", "matrix": [9, 2], "x":8.5, "y":4},
|
||||
{"label":"R41", "matrix": [9, 1], "x":9.5, "y":4},
|
||||
{"label":"R43", "matrix": [9, 3], "x":10.5, "y":4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
73
keyboards/bastardkb/dilemma/4x6_4/keymaps/default/keymap.c
Normal file
73
keyboards/bastardkb/dilemma/4x6_4/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,73 @@
|
||||
/**
|
||||
* Copyright 2021 Charly Delay <charly@codesink.dev> (@0xcharly)
|
||||
* Copyright 2023 casuanoob <casuanoob@hotmail.com> (@casuanoob)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum dilemma_keymap_layers {
|
||||
LAYER_BASE = 0,
|
||||
LAYER_LOWER,
|
||||
LAYER_RAISE,
|
||||
};
|
||||
|
||||
#define LOWER MO(LAYER_LOWER)
|
||||
#define RAISE MO(LAYER_RAISE)
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[LAYER_BASE] = LAYOUT(
|
||||
// ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
|
||||
KC_LSFT, 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_LALT,
|
||||
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
|
||||
KC_LALT, KC_BSPC, KC_SPC, LOWER, RAISE, KC_ENT, KC_DEL, KC_LGUI
|
||||
// ╰───────────────────────────────────╯ ╰───────────────────────────────────╯
|
||||
),
|
||||
|
||||
[LAYER_LOWER] = LAYOUT(
|
||||
// ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS,
|
||||
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
|
||||
RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_P7, KC_P8, KC_P9, KC_RBRC, XXXXXXX,
|
||||
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
|
||||
RGB_TOG, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PEQL,
|
||||
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
|
||||
RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PDOT,
|
||||
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______, _______
|
||||
// ╰───────────────────────────────────╯ ╰───────────────────────────────────╯
|
||||
),
|
||||
|
||||
[LAYER_RAISE] = LAYOUT(
|
||||
// ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
|
||||
KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
|
||||
KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU,
|
||||
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
|
||||
KC_MPLY, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_RSFT, KC_RCTL, KC_RALT, KC_RGUI, KC_MUTE,
|
||||
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
|
||||
KC_MPRV, KC_HOME, KC_PGUP, KC_PGDN, KC_END, XXXXXXX, QK_BOOT, EE_CLR, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD,
|
||||
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
|
||||
_______, _______, _______, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
// ╰───────────────────────────────────╯ ╰───────────────────────────────────╯
|
||||
),
|
||||
};
|
||||
// clang-format on
|
||||
@@ -0,0 +1,2 @@
|
||||
# Dilemma Max (4x6+4) default keymap
|
||||
|
||||
20
keyboards/bastardkb/dilemma/4x6_4/keymaps/via/config.h
Normal file
20
keyboards/bastardkb/dilemma/4x6_4/keymaps/via/config.h
Normal file
@@ -0,0 +1,20 @@
|
||||
/**
|
||||
* Copyright 2021 Charly Delay <charly@codesink.dev> (@0xcharly)
|
||||
* Copyright 2023 casuanoob <casuanoob@hotmail.com> (@casuanoob)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 8
|
||||
132
keyboards/bastardkb/dilemma/4x6_4/keymaps/via/keymap.c
Normal file
132
keyboards/bastardkb/dilemma/4x6_4/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,132 @@
|
||||
/**
|
||||
* Copyright 2021 Charly Delay <charly@codesink.dev> (@0xcharly)
|
||||
* Copyright 2023 casuanoob <casuanoob@hotmail.com> (@casuanoob)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum dilemma_keymap_layers {
|
||||
LAYER_BASE = 0,
|
||||
LAYER_LOWER,
|
||||
LAYER_RAISE,
|
||||
LAYER_POINTER,
|
||||
};
|
||||
|
||||
// Automatically enable sniping-mode on the pointer layer.
|
||||
// #define DILEMMA_AUTO_SNIPING_ON_LAYER LAYER_POINTER
|
||||
|
||||
#define LOWER MO(LAYER_LOWER)
|
||||
#define RAISE MO(LAYER_RAISE)
|
||||
#define PT_Z LT(LAYER_POINTER, KC_Z)
|
||||
#define PT_SLSH LT(LAYER_POINTER, KC_SLSH)
|
||||
|
||||
#ifndef POINTING_DEVICE_ENABLE
|
||||
# define DRGSCRL KC_NO
|
||||
# define DPI_MOD KC_NO
|
||||
# define S_D_MOD KC_NO
|
||||
# define SNIPING KC_NO
|
||||
#endif // !POINTING_DEVICE_ENABLE
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[LAYER_BASE] = LAYOUT(
|
||||
// ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
|
||||
KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
|
||||
KC_LCTL, PT_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, PT_SLSH, KC_LALT,
|
||||
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
|
||||
KC_LALT, KC_BSPC, KC_SPC, LOWER, RAISE, KC_ENT, KC_DEL, KC_MUTE
|
||||
// ╰───────────────────────────────────╯ ╰───────────────────────────────────╯
|
||||
),
|
||||
|
||||
[LAYER_LOWER] = LAYOUT(
|
||||
// ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_UNDS,
|
||||
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
|
||||
RGB_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LBRC, KC_P7, KC_P8, KC_P9, KC_RBRC, XXXXXXX,
|
||||
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
|
||||
RGB_TOG, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, KC_PPLS, KC_P4, KC_P5, KC_P6, KC_PMNS, KC_PEQL,
|
||||
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
|
||||
RGB_RMOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PAST, KC_P1, KC_P2, KC_P3, KC_PSLS, KC_PDOT,
|
||||
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX
|
||||
// ╰───────────────────────────────────╯ ╰───────────────────────────────────╯
|
||||
),
|
||||
|
||||
[LAYER_RAISE] = LAYOUT(
|
||||
// ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
|
||||
KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
|
||||
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
|
||||
KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLU,
|
||||
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
|
||||
KC_MPLY, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_RSFT, KC_RCTL, KC_RALT, KC_RGUI, KC_MUTE,
|
||||
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
|
||||
KC_MPRV, KC_HOME, KC_PGUP, KC_PGDN, KC_END, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_VOLD,
|
||||
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
|
||||
XXXXXXX, _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX
|
||||
// ╰───────────────────────────────────╯ ╰───────────────────────────────────╯
|
||||
),
|
||||
|
||||
[LAYER_POINTER] = LAYOUT(
|
||||
// ╭──────────────────────────────────────────────────────╮ ╭──────────────────────────────────────────────────────╮
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
|
||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DPI_MOD, S_D_MOD, S_D_MOD, DPI_MOD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
|
||||
XXXXXXX, KC_LGUI, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX, XXXXXXX, KC_RSFT, KC_RCTL, KC_RALT, KC_RGUI, XXXXXXX,
|
||||
// ├──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────┤
|
||||
XXXXXXX, _______, DRGSCRL, SNIPING, EE_CLR, QK_BOOT, QK_BOOT, EE_CLR, SNIPING, DRGSCRL, _______, XXXXXXX,
|
||||
// ╰──────────────────────────────────────────────────────┤ ├──────────────────────────────────────────────────────╯
|
||||
XXXXXXX, KC_BTN2, KC_BTN1, KC_BTN3, KC_BTN3, KC_BTN1, KC_BTN2, XXXXXXX
|
||||
// ╰───────────────────────────────────╯ ╰───────────────────────────────────╯
|
||||
),
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
#ifdef POINTING_DEVICE_ENABLE
|
||||
# ifdef DILEMMA_AUTO_SNIPING_ON_LAYER
|
||||
layer_state_t layer_state_set_user(layer_state_t state) {
|
||||
dilemma_set_pointer_sniping_enabled(layer_state_cmp(state, DILEMMA_AUTO_SNIPING_ON_LAYER));
|
||||
return state;
|
||||
}
|
||||
# endif // DILEMMA_AUTO_SNIPING_ON_LAYER
|
||||
#endif // POINTING_DEVICE_ENABLEE
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
// Forward-declare this helper function since it is defined in rgb_matrix.c.
|
||||
void rgb_matrix_update_pwm_buffers(void);
|
||||
#endif
|
||||
|
||||
#ifdef ENCODER_MAP_ENABLE
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[LAYER_BASE] = {ENCODER_CCW_CW(KC_WH_U, KC_WH_D), ENCODER_CCW_CW(KC_VOLU, KC_VOLD)},
|
||||
[LAYER_LOWER] = {ENCODER_CCW_CW(KC_UP, KC_DOWN), ENCODER_CCW_CW(KC_LEFT, KC_RGHT)},
|
||||
[LAYER_RAISE] = {ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLU, KC_VOLD)},
|
||||
[LAYER_POINTER] = {ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI)},
|
||||
};
|
||||
// clang-format on
|
||||
#endif // ENCODER_MAP_ENABLE
|
||||
|
||||
void shutdown_user(void) {
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
rgb_matrix_sethsv_noeeprom(HSV_RED);
|
||||
rgb_matrix_update_pwm_buffers();
|
||||
#endif // RGB_MATRIX_ENABLE
|
||||
}
|
||||
47
keyboards/bastardkb/dilemma/4x6_4/keymaps/via/readme.md
Normal file
47
keyboards/bastardkb/dilemma/4x6_4/keymaps/via/readme.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# Dilemma Max `via` keymap
|
||||
|
||||
The Dilemma Max `via` keymap is based on the original [Dactyl Manuform](../../../../../handwired/dactyl_manuform) default keymap, with some features and changes specific to the Dilemma.
|
||||
|
||||
This layout also supports VIA.
|
||||
|
||||
## Customizing the keymap
|
||||
|
||||
### Dynamic DPI scaling
|
||||
|
||||
Use the following keycodes to change the default DPI:
|
||||
|
||||
- `POINTER_DEFAULT_DPI_FORWARD`: increases the DPI; decreases when shifted;
|
||||
- `POINTER_DEFAULT_DPI_REVERSE`: decreases the DPI; increases when shifted.
|
||||
|
||||
There's a maximum of 16 possible values for the sniping mode DPI. See the [Dilemma documentation](../../README.md) for more information.
|
||||
|
||||
Use the following keycodes to change the sniping mode DPI:
|
||||
|
||||
- `POINTER_SNIPING_DPI_FORWARD`: increases the DPI; decreases when shifted;
|
||||
- `POINTER_SNIPING_DPI_REVERSE`: decreases the DPI; increases when shifted.
|
||||
|
||||
There's a maximum of 4 possible values for the sniping mode DPI. See the [Dilemma documentation](../../README.md) for more information.
|
||||
|
||||
### Drag-scroll
|
||||
|
||||
Use the `DRAGSCROLL_MODE` keycode to enable drag-scroll on hold. Use the `DRAGSCROLL_TOGGLE` keycode to enable/disable drag-scroll on key press.
|
||||
|
||||
### Circular scroll
|
||||
|
||||
By default, the firmware is configured to enable the circular scroll feature on Cirque trackpad.
|
||||
|
||||
To disable this, add the following to your keymap:
|
||||
|
||||
```c
|
||||
#undef POINTING_DEVICE_GESTURES_SCROLL_ENABLE
|
||||
```
|
||||
|
||||
### Sniping
|
||||
|
||||
Use the `SNIPING_MODE` keycode to enable sniping mode on hold. Use the `SNIPING_TOGGLE` keycode to enable/disable sniping mode on key press.
|
||||
|
||||
Change the value of `DILEMMA_AUTO_SNIPING_ON_LAYER` to automatically enable sniping mode on layer change. By default, sniping mode is enabled on the pointer layer:
|
||||
|
||||
```c
|
||||
#define DILEMMA_AUTO_SNIPING_ON_LAYER LAYER_POINTER
|
||||
```
|
||||
2
keyboards/bastardkb/dilemma/4x6_4/keymaps/via/rules.mk
Normal file
2
keyboards/bastardkb/dilemma/4x6_4/keymaps/via/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
23
keyboards/bastardkb/dilemma/4x6_4/mcuconf.h
Normal file
23
keyboards/bastardkb/dilemma/4x6_4/mcuconf.h
Normal file
@@ -0,0 +1,23 @@
|
||||
/**
|
||||
* Copyright 2022 Charly Delay <charly@codesink.dev> (@0xcharly)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef RP_SPI_USE_SPI0
|
||||
#define RP_SPI_USE_SPI0 TRUE
|
||||
5
keyboards/bastardkb/dilemma/4x6_4/readme.md
Normal file
5
keyboards/bastardkb/dilemma/4x6_4/readme.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Dilemma Max (4x6+4)
|
||||
|
||||
This keyboard is an upsized version of the [3x5+3 Dilemma](../3x5_3/).
|
||||
|
||||
The Dilemma Max is available at [bastardkb.com](https://bastardkb.com).
|
||||
4
keyboards/bastardkb/dilemma/4x6_4/rules.mk
Normal file
4
keyboards/bastardkb/dilemma/4x6_4/rules.mk
Normal file
@@ -0,0 +1,4 @@
|
||||
SERIAL_DRIVER = vendor
|
||||
|
||||
POINTING_DEVICE_ENABLE = yes
|
||||
POINTING_DEVICE_DRIVER = cirque_pinnacle_spi
|
||||
@@ -1,16 +1,21 @@
|
||||
# Dilemma
|
||||
|
||||
A very small keyboard made for ergonomic enthusiasts.
|
||||
A family of split keyboards with embedded RP2040 controllers, support for Cirque GlidePoint circle trackpads, and SPI + I2C breakouts for other peripherals
|
||||
|
||||
- Keyboard Maintainer: [Bastard Keyboards](https://github.com/Bastardkb/)
|
||||
- Hardware Supported: RP2040-based controller (_eg._ Splinky, Elite-c, ...)
|
||||
- Hardware Supported: [Bastardkb Dilemma](https://github.com/Bastardkb/Dilemma)
|
||||
- Hardware Availability: [Bastardkb.com](https://bastardkb.com/)
|
||||
|
||||
A pre-assembled version (with embedded controller) is also available.
|
||||
A DIY version of the 3x5_2 PCB with promicro compatible footprint is also available.
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make bastardkb/dilemma/3x5_2/splinky:default
|
||||
make bastardkb/dilemma/3x5_2/assembled:default
|
||||
make bastardkb/dilemma/3x5_3:default
|
||||
make bastardkb/dilemma/4x6_4:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make bastardkb/dilemma/3x5_3:default:flash
|
||||
make bastardkb/dilemma/4x6_4:default:flash
|
||||
|
||||
See the [keyboard build instructions](http://docs.bastardkb.com/)
|
||||
|
||||
10
keyboards/cannonkeys/brutalv2_60/config.h
Normal file
10
keyboards/cannonkeys/brutalv2_60/config.h
Normal file
@@ -0,0 +1,10 @@
|
||||
// Copyright 2023 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
|
||||
|
||||
700
keyboards/cannonkeys/brutalv2_60/info.json
Normal file
700
keyboards/cannonkeys/brutalv2_60/info.json
Normal file
@@ -0,0 +1,700 @@
|
||||
{
|
||||
"manufacturer": "CannonKeys",
|
||||
"keyboard_name": "Brutal V2 60",
|
||||
"maintainer": "awkannan",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "GP12",
|
||||
"on_state": 0
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP3", "GP2", "GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP18"],
|
||||
"rows": ["GP4", "GP5", "GP13", "GP14", "GP10"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"url": "https://cannonkeys.com",
|
||||
"usb": {
|
||||
"device_version": "0.0.1",
|
||||
"pid": "0x000B",
|
||||
"vid": "0xCA04"
|
||||
},
|
||||
"community_layouts": [
|
||||
"60_ansi",
|
||||
"60_ansi_split_bs_rshift",
|
||||
"60_ansi_tsangan",
|
||||
"60_tsangan_hhkb",
|
||||
"60_hhkb",
|
||||
"60_iso",
|
||||
"60_iso_split_bs_rshift",
|
||||
"60_iso_tsangan"
|
||||
],
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7, "y": 0},
|
||||
{"matrix": [0, 8], "x": 8, "y": 0},
|
||||
{"matrix": [0, 9], "x": 9, "y": 0},
|
||||
{"matrix": [0, 10], "x": 10, "y": 0},
|
||||
{"matrix": [0, 11], "x": 11, "y": 0},
|
||||
{"matrix": [0, 12], "x": 12, "y": 0},
|
||||
{"matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"matrix": [2, 12], "x": 14, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1},
|
||||
{"matrix": [1, 2], "x": 2.5, "y": 1},
|
||||
{"matrix": [1, 3], "x": 3.5, "y": 1},
|
||||
{"matrix": [1, 4], "x": 4.5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 5.5, "y": 1},
|
||||
{"matrix": [1, 6], "x": 6.5, "y": 1},
|
||||
{"matrix": [1, 7], "x": 7.5, "y": 1},
|
||||
{"matrix": [1, 8], "x": 8.5, "y": 1},
|
||||
{"matrix": [1, 9], "x": 9.5, "y": 1},
|
||||
{"matrix": [1, 10], "x": 10.5, "y": 1},
|
||||
{"matrix": [1, 11], "x": 11.5, "y": 1},
|
||||
{"matrix": [1, 12], "x": 12.5, "y": 1},
|
||||
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 1], "x": 1.75, "y": 2},
|
||||
{"matrix": [2, 2], "x": 2.75, "y": 2},
|
||||
{"matrix": [2, 3], "x": 3.75, "y": 2},
|
||||
{"matrix": [2, 4], "x": 4.75, "y": 2},
|
||||
{"matrix": [2, 5], "x": 5.75, "y": 2},
|
||||
{"matrix": [2, 6], "x": 6.75, "y": 2},
|
||||
{"matrix": [2, 7], "x": 7.75, "y": 2},
|
||||
{"matrix": [2, 8], "x": 8.75, "y": 2},
|
||||
{"matrix": [2, 9], "x": 9.75, "y": 2},
|
||||
{"matrix": [2, 10], "x": 10.75, "y": 2},
|
||||
{"matrix": [2, 11], "x": 11.75, "y": 2},
|
||||
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
|
||||
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
|
||||
{"matrix": [3, 1], "x": 1.25, "y": 3},
|
||||
{"matrix": [3, 2], "x": 2.25, "y": 3},
|
||||
{"matrix": [3, 3], "x": 3.25, "y": 3},
|
||||
{"matrix": [3, 4], "x": 4.25, "y": 3},
|
||||
{"matrix": [3, 5], "x": 5.25, "y": 3},
|
||||
{"matrix": [3, 6], "x": 6.25, "y": 3},
|
||||
{"matrix": [3, 7], "x": 7.25, "y": 3},
|
||||
{"matrix": [3, 8], "x": 8.25, "y": 3},
|
||||
{"matrix": [3, 9], "x": 9.25, "y": 3},
|
||||
{"matrix": [3, 10], "x": 10.25, "y": 3},
|
||||
{"matrix": [3, 11], "x": 11.25, "y": 3},
|
||||
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
|
||||
{"matrix": [3, 13], "x": 14, "y": 3},
|
||||
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_ansi": {
|
||||
"layout": [
|
||||
{"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": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
{"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, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"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, 13], "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, 13], "x": 12.25, "y": 3, "w": 2.75},
|
||||
{"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},
|
||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"label": "Fn", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_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": "Del", "matrix": [2, 12], "x": 14, "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, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"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, 13], "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, 13], "x": 14, "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},
|
||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"label": "Fn", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_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": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
{"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, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"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, 13], "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, 13], "x": 12.25, "y": 3, "w": 2.75},
|
||||
{"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},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_tsangan_hhkb": {
|
||||
"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": "Del", "matrix": [2, 12], "x": 14, "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, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"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, 13], "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, 13], "x": 14, "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},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_hhkb": {
|
||||
"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": "|", "matrix": [0, 13], "x": 13, "y": 0},
|
||||
{"label": "~", "matrix": [2, 12], "x": 14, "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": "Bspc", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
|
||||
{"label": "Ctrl", "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, 13], "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, 13], "x": 14, "y": 3},
|
||||
{"label": "Alt", "matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"label": "Win", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Win", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Alt", "matrix": [4, 12], "x": 12.5, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_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": "#", "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": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
{"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": "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": [1, 13], "x": 12.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 13], "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, 13], "x": 12.25, "y": 3, "w": 2.75},
|
||||
{"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},
|
||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"label": "Fn", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [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": "Del", "matrix": [2, 12], "x": 14, "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": "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": [1, 13], "x": 12.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 13], "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, 13], "x": 14, "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},
|
||||
{"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
|
||||
{"label": "Alt", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
|
||||
{"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
|
||||
{"label": "Fn", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
|
||||
{"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_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": "#", "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": "Backspace", "matrix": [0, 13], "x": 13, "y": 0, "w": 2},
|
||||
{"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": "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": [1, 13], "x": 12.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 13], "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, 13], "x": 12.25, "y": 3, "w": 2.75},
|
||||
{"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},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_60_iso_tsangan_split_bs_rshift": {
|
||||
"layout": [
|
||||
{"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "!", "matrix": [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": "Del", "matrix": [2, 12], "x": 14, "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": "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": [1, 13], "x": 12.75, "y": 2},
|
||||
{"label": "Enter", "matrix": [2, 13], "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, 13], "x": 14, "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},
|
||||
{"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
|
||||
{"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
|
||||
{"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4},
|
||||
{"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
36
keyboards/cannonkeys/brutalv2_60/keymaps/default/keymap.c
Normal file
36
keyboards/cannonkeys/brutalv2_60/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,36 @@
|
||||
// Copyright 2023 Andrew Kannan
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layers {
|
||||
_BASE,
|
||||
_FN1,
|
||||
_FN2,
|
||||
};
|
||||
|
||||
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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN2),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL
|
||||
),
|
||||
|
||||
[_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_DEL, _______,
|
||||
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, QK_BOOT
|
||||
),
|
||||
|
||||
[_FN2] = 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_DEL, _______,
|
||||
_______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, DB_TOGG, QK_BOOT
|
||||
)
|
||||
};
|
||||
36
keyboards/cannonkeys/brutalv2_60/keymaps/via/keymap.c
Normal file
36
keyboards/cannonkeys/brutalv2_60/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,36 @@
|
||||
// Copyright 2023 Andrew Kannan
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layers {
|
||||
_BASE,
|
||||
_FN1,
|
||||
_FN2,
|
||||
};
|
||||
|
||||
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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN2),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN1), KC_RCTL
|
||||
),
|
||||
|
||||
[_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_DEL, _______,
|
||||
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, QK_BOOT
|
||||
),
|
||||
|
||||
[_FN2] = 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_DEL, _______,
|
||||
_______, _______, KC_PGUP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_HOME, KC_PGDN, KC_END, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, DB_TOGG, QK_BOOT
|
||||
)
|
||||
};
|
||||
1
keyboards/cannonkeys/brutalv2_60/keymaps/via/rules.mk
Normal file
1
keyboards/cannonkeys/brutalv2_60/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
||||
24
keyboards/cannonkeys/brutalv2_60/readme.md
Normal file
24
keyboards/cannonkeys/brutalv2_60/readme.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# Brutal v2 60
|
||||
|
||||
Brutal v2 60 Keyboard
|
||||
|
||||
Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
|
||||
Hardware Supported: RP2040
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cannonkeys/brutalv2_60:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make cannonkeys/brutalv2_60: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
|
||||
1
keyboards/cannonkeys/brutalv2_60/rules.mk
Normal file
1
keyboards/cannonkeys/brutalv2_60/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
# This file intentionally left blank
|
||||
@@ -30,68 +30,28 @@ enum discpline_keycodes {
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
/* QWERTY: Default Layer
|
||||
* ,--------------------------------------------------------------.
|
||||
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backs| `~|
|
||||
* |---------------------------------------------------------------|
|
||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \|Del|
|
||||
* |---------------------------------------------------------------|
|
||||
* |Fn/CL | A| S| D| F| G| H| J| K| L| ;| '| Enter|PgU|
|
||||
* |---------------------------------------------------------------|
|
||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift |Up |PgD|
|
||||
* |---------------------------------------------------------------|
|
||||
* |Ctrl|Gui |Alt | Space |Gui |Alt |Ctrl| |Lef|Dow|Rig|
|
||||
* `---------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT_65_ansi(
|
||||
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_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,
|
||||
FN_ESC, 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_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT,KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL,KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
/* Workman
|
||||
* ,---------------------------------------------------------------.
|
||||
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Backs| `~|
|
||||
* |---------------------------------------------------------------|
|
||||
* |Tab | Q| D| R| W| B| J| F| U| P| ;| [| ]| \| Del|
|
||||
* |---------------------------------------------------------------|
|
||||
* |Fn/CL | A| S| H| T| G| Y| N| E| O| I| '| Enter| PgU|
|
||||
* |---------------------------------------------------------------|
|
||||
* |Shift | Z| X| M| C| V| K| L| ,| .| /|Shift |Up| PgD|
|
||||
* |---------------------------------------------------------------|
|
||||
* |Ctrl|Alt |Gui | Space |Gui |Alt |Ctrl| |Lef|Dow|Rig|
|
||||
* `---------------------------------------------------------------'
|
||||
*/
|
||||
[_WORKMAN] = LAYOUT_65_ansi(
|
||||
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_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
||||
FN_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, KC_ENT, KC_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||
KC_LCTL, KC_LGUI,KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
[_QWERTY] = LAYOUT_65_ansi(
|
||||
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_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,
|
||||
FN_ESC, 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_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[_WORKMAN] = LAYOUT_65_ansi(
|
||||
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_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
||||
FN_ESC, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_QUOT, KC_ENT, KC_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
/* Function
|
||||
* ,---------------------------------------------------------------.
|
||||
* |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| | |
|
||||
* |---------------------------------------------------------------|
|
||||
* | | | | | | | | | | | | | | |INS|
|
||||
* |---------------------------------------------------------------|
|
||||
* | | | | | | | | | | | | | |HME|
|
||||
* |---------------------------------------------------------------|
|
||||
* | | | | | | | | | | | | | |VL+|END|
|
||||
* |---------------------------------------------------------------|
|
||||
* | | | | PLY/PS | | | | |PRV|VL-|NXT|
|
||||
* `---------------------------------------------------------------'
|
||||
*/
|
||||
[_FUNC] = LAYOUT_65_ansi(
|
||||
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,_______, QK_BOOT,
|
||||
_______,KC_WH_U,KC_BTN1,KC_MS_U,KC_BTN2,_______,_______,AG_NORM,AG_SWAP,QWERTY,WORKMAN,_______,_______,_______, KC_INS,
|
||||
_______,KC_WH_D,KC_MS_L,KC_MS_D,KC_MS_R,_______,_______,_______,_______,_______,_______,_______, _______, KC_PGUP,
|
||||
_______,KC_WH_L,KC_BTN3,KC_WH_R,_______,_______,_______,_______,_______,_______,_______, _______,KC_VOLU, KC_PGDN,
|
||||
_______,_______,_______, KC_MPLY, _______,_______,_______,KC_MPRV,KC_VOLD, KC_MNXT
|
||||
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, QK_BOOT,
|
||||
KC_TRNS, KC_WH_U, KC_BTN1, KC_MS_U, KC_BTN2, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, AG_NORM, AG_SWAP, QWERTY, WORKMAN, KC_TRNS, KC_INS,
|
||||
KC_TRNS, KC_WH_D, KC_MS_L, KC_MS_D, KC_MS_R, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP,
|
||||
KC_TRNS, KC_WH_L, KC_BTN3, KC_WH_R, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_PGDN,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
|
||||
),
|
||||
};
|
||||
|
||||
|
||||
69
keyboards/doio/kb12/config.h
Normal file
69
keyboards/doio/kb12/config.h
Normal file
@@ -0,0 +1,69 @@
|
||||
/* Copyright 2022 DOIO
|
||||
* Copyright 2022 DOIO2022 <https://github.com/DOIO2022>
|
||||
*
|
||||
* 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
|
||||
|
||||
/* RGB Matrix config */
|
||||
#define RGB_MATRIX_LED_COUNT 12
|
||||
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_UP_DOWN
|
||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||
#define RGB_MATRIX_KEYPRESSES
|
||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
|
||||
/* RGB Matrix effect */
|
||||
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
||||
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
||||
#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
||||
#define ENABLE_RGB_MATRIX_BREATHING
|
||||
#define ENABLE_RGB_MATRIX_BAND_SAT
|
||||
#define ENABLE_RGB_MATRIX_BAND_VAL
|
||||
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
|
||||
#define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
|
||||
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
|
||||
#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
|
||||
#define ENABLE_RGB_MATRIX_CYCLE_ALL
|
||||
#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
|
||||
#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
|
||||
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
|
||||
#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
|
||||
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
||||
#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
|
||||
#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
|
||||
#define ENABLE_RGB_MATRIX_DUAL_BEACON
|
||||
#define ENABLE_RGB_MATRIX_RAINBOW_BEACON
|
||||
#define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
|
||||
#define ENABLE_RGB_MATRIX_RAINDROPS
|
||||
#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
|
||||
#define ENABLE_RGB_MATRIX_HUE_BREATHING
|
||||
#define ENABLE_RGB_MATRIX_HUE_PENDULUM
|
||||
#define ENABLE_RGB_MATRIX_HUE_WAVE
|
||||
#define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
|
||||
#define ENABLE_RGB_MATRIX_PIXEL_RAIN
|
||||
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
||||
#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
||||
#define ENABLE_RGB_MATRIX_SPLASH
|
||||
#define ENABLE_RGB_MATRIX_MULTISPLASH
|
||||
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
||||
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
||||
78
keyboards/doio/kb12/info.json
Normal file
78
keyboards/doio/kb12/info.json
Normal file
@@ -0,0 +1,78 @@
|
||||
{
|
||||
"keyboard_name": "KB12-01",
|
||||
"manufacturer": "DOIO",
|
||||
"url": "",
|
||||
"maintainer": "DOIO2022",
|
||||
"usb": {
|
||||
"vid": "0xD010",
|
||||
"pid": "0x1201",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"driver": "ws2812"
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 1], "x": 75, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 2], "x": 150, "y": 0, "flags": 4},
|
||||
{"matrix": [0, 3], "x": 224, "y": 0, "flags": 4},
|
||||
{"matrix": [1, 0], "x": 0, "y": 32, "flags": 4},
|
||||
{"matrix": [1, 1], "x": 75, "y": 32, "flags": 4},
|
||||
{"matrix": [1, 2], "x": 150, "y": 32, "flags": 4},
|
||||
{"matrix": [1, 3], "x": 224, "y": 32, "flags": 4},
|
||||
{"matrix": [2, 0], "x": 0, "y": 64, "flags": 4},
|
||||
{"matrix": [2, 1], "x": 75, "y": 64, "flags": 4},
|
||||
{"matrix": [2, 2], "x": 150, "y": 64, "flags": 4},
|
||||
{"matrix": [2, 3], "x": 224, "y": 64, "flags": 4}
|
||||
],
|
||||
"max_brightness": 200
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B14", "B13", "B12", "B0", "A7"],
|
||||
"rows": ["B3", "B4", "B9"]
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"dynamic_keymap": {
|
||||
"layer_count": 6
|
||||
},
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{"pin_a": "B5", "pin_b": "B6"}
|
||||
]
|
||||
},
|
||||
"ws2812": {
|
||||
"pin": "A10"
|
||||
},
|
||||
"processor": "STM32F103",
|
||||
"bootloader": "stm32duino",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgb_matrix": true,
|
||||
"encoder": true
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{ "matrix": [0, 4], "x": 0, "y": 0 },
|
||||
{ "matrix": [0, 0], "x": 3.25, "y": 0 },
|
||||
{ "matrix": [0, 1], "x": 4.25, "y": 0 },
|
||||
{ "matrix": [0, 2], "x": 5.25, "y": 0 },
|
||||
{ "matrix": [0, 3], "x": 6.25, "y": 0 },
|
||||
|
||||
{ "matrix": [1, 0], "x": 7.75, "y": 0 },
|
||||
{ "matrix": [1, 1], "x": 8.75, "y": 0 },
|
||||
{ "matrix": [1, 2], "x": 9.75, "y": 0 },
|
||||
{ "matrix": [1, 3], "x": 10.75, "y": 0 },
|
||||
|
||||
{ "matrix": [2, 0], "x": 12.25, "y": 0 },
|
||||
{ "matrix": [2, 1], "x": 13.25, "y": 0 },
|
||||
{ "matrix": [2, 2], "x": 14.25, "y": 0 },
|
||||
{ "matrix": [2, 3], "x": 15.25, "y": 0 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
55
keyboards/doio/kb12/keymaps/default/keymap.c
Normal file
55
keyboards/doio/kb12/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,55 @@
|
||||
/* Copyright 2022 DOIO
|
||||
* Copyright 2022 DOIO2022 <https://github.com/DOIO2022>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layer_names {
|
||||
_LAY0,
|
||||
_LAY1,
|
||||
_LAY2,
|
||||
_LAY3,
|
||||
_LAY4,
|
||||
_LAY5
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_LAY0] = LAYOUT(
|
||||
TO(1), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12),
|
||||
[_LAY1] = LAYOUT(
|
||||
TO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
[_LAY2] = LAYOUT(
|
||||
TO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
[_LAY3] = LAYOUT(
|
||||
TO(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
[_LAY4] = LAYOUT(
|
||||
TO(5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
[_LAY5] = LAYOUT(
|
||||
TO(0), RGB_TOG, RGB_MOD, RGB_SPI, RGB_SPD, RGB_SAI, RGB_SAD, RGB_HUI, RGB_HUD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS)
|
||||
|
||||
};
|
||||
|
||||
#ifdef ENCODER_MAP_ENABLE
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[_LAY0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
|
||||
[_LAY1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
[_LAY2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
[_LAY3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
[_LAY4] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
[_LAY5] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
};
|
||||
#endif
|
||||
55
keyboards/doio/kb12/keymaps/via/keymap.c
Normal file
55
keyboards/doio/kb12/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,55 @@
|
||||
/* Copyright 2022 DOIO
|
||||
* Copyright 2022 DOIO2022 <https://github.com/DOIO2022>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum layer_names {
|
||||
_LAY0,
|
||||
_LAY1,
|
||||
_LAY2,
|
||||
_LAY3,
|
||||
_LAY4,
|
||||
_LAY5
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_LAY0] = LAYOUT(
|
||||
TO(1), KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12),
|
||||
[_LAY1] = LAYOUT(
|
||||
TO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
[_LAY2] = LAYOUT(
|
||||
TO(3), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
[_LAY3] = LAYOUT(
|
||||
TO(4), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
[_LAY4] = LAYOUT(
|
||||
TO(5), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
[_LAY5] = LAYOUT(
|
||||
TO(0), RGB_TOG, RGB_MOD, RGB_SPI, RGB_SPD, RGB_SAI, RGB_SAD, RGB_HUI, RGB_HUD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS)
|
||||
|
||||
};
|
||||
|
||||
#ifdef ENCODER_MAP_ENABLE
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = {
|
||||
[_LAY0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN) },
|
||||
[_LAY1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
[_LAY2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
[_LAY3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
[_LAY4] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
[_LAY5] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) },
|
||||
};
|
||||
#endif
|
||||
2
keyboards/doio/kb12/keymaps/via/rules.mk
Normal file
2
keyboards/doio/kb12/keymaps/via/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
24
keyboards/doio/kb12/readme.md
Normal file
24
keyboards/doio/kb12/readme.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# doio/kb12
|
||||
|
||||
QMK for DOIO Knob 12% .
|
||||
|
||||
* Keyboard Maintainer: DOIO2022
|
||||
* Hardware Supported: DOIO Knob 12%
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make doio/kb12:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make doio/kb12:default:flash
|
||||
|
||||
See the build [environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 3 ways:
|
||||
|
||||
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
|
||||
* **Physical reset button**: Briefly press the button on the back of the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
||||
1
keyboards/doio/kb12/rules.mk
Normal file
1
keyboards/doio/kb12/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
# This file intentionally left blank
|
||||
@@ -21,7 +21,6 @@
|
||||
#define ISSI_PWM_FREQUENCY 0b010 // 26k
|
||||
|
||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||
#define RGB_MATRIX_DEFAULT_VAL 100
|
||||
#define RGB_MATRIX_KEYPRESSES
|
||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
|
||||
|
||||
@@ -105,6 +105,7 @@
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"driver": "is31fl3733",
|
||||
"max_brightness": 191,
|
||||
"animations": {
|
||||
"alphas_mods": true,
|
||||
"gradient_up_down": true,
|
||||
|
||||
8
keyboards/drop/cstm80/board.h
Normal file
8
keyboards/drop/cstm80/board.h
Normal file
@@ -0,0 +1,8 @@
|
||||
// Copyright 2023 Massdrop, Inc.
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once
|
||||
|
||||
#include_next <board.h>
|
||||
|
||||
#undef STM32_HSECLK
|
||||
#define STM32_HSECLK 16000000U
|
||||
22
keyboards/drop/cstm80/config.h
Normal file
22
keyboards/drop/cstm80/config.h
Normal file
@@ -0,0 +1,22 @@
|
||||
// Copyright 2023 Massdrop, Inc.
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once
|
||||
|
||||
#define I2C1_SCL_PIN B8
|
||||
#define I2C1_SDA_PIN B9
|
||||
|
||||
#define EXTERNAL_EEPROM_I2C_BASE_ADDRESS 0b10101000
|
||||
#define EXTERNAL_EEPROM_WP_PIN B7
|
||||
#define EEPROM_I2C_24LC256
|
||||
|
||||
#define DRIVER_ADDR_1 0b1010000
|
||||
#define DRIVER_ADDR_2 0b1011111
|
||||
#define DRIVER_COUNT 2
|
||||
#define RGB_MATRIX_LED_COUNT 88
|
||||
#define ISSI_PWM_FREQUENCY 0b010 // 26k
|
||||
|
||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||
#define RGB_MATRIX_KEYPRESSES
|
||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
|
||||
#define RGB_MATRIX_CAPS_LOCK_INDEX 48
|
||||
96
keyboards/drop/cstm80/cstm80.c
Normal file
96
keyboards/drop/cstm80/cstm80.c
Normal file
@@ -0,0 +1,96 @@
|
||||
// Copyright 2023 Massdrop, Inc.
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
# include "rgb_matrix.h"
|
||||
|
||||
const is31_led PROGMEM g_is31_leds[RGB_MATRIX_LED_COUNT] = {
|
||||
{ 0, E_1, D_1, F_1 },
|
||||
{ 0, E_2, D_2, F_2 },
|
||||
{ 0, E_3, D_3, F_3 },
|
||||
{ 0, E_4, D_4, F_4 },
|
||||
{ 0, E_5, D_5, F_5 },
|
||||
{ 0, E_6, D_6, F_6 },
|
||||
{ 0, E_7, D_7, F_7 },
|
||||
{ 0, E_8, D_8, F_8 },
|
||||
{ 0, E_9, D_9, F_9 },
|
||||
{ 0, E_10, D_10, F_10 },
|
||||
{ 0, E_11, D_11, F_11 },
|
||||
{ 0, E_12, D_12, F_12 },
|
||||
{ 0, E_13, D_13, F_13 },
|
||||
{ 0, E_14, D_14, F_14 },
|
||||
{ 0, E_15, D_15, F_15 },
|
||||
{ 0, E_16, D_16, F_16 },
|
||||
{ 0, H_1, G_1, I_1 },
|
||||
{ 0, H_2, G_2, I_2 },
|
||||
{ 0, H_3, G_3, I_3 },
|
||||
{ 0, H_4, G_4, I_4 },
|
||||
{ 0, H_5, G_5, I_5 },
|
||||
{ 0, H_6, G_6, I_6 },
|
||||
{ 0, H_7, G_7, I_7 },
|
||||
{ 0, H_8, G_8, I_8 },
|
||||
{ 0, H_9, G_9, I_9 },
|
||||
{ 0, H_10, G_10, I_10 },
|
||||
{ 0, H_11, G_11, I_11 },
|
||||
{ 0, H_12, G_12, I_12 },
|
||||
{ 0, H_13, G_13, I_13 },
|
||||
{ 0, H_14, G_14, I_14 },
|
||||
{ 0, H_15, G_15, I_15 },
|
||||
{ 0, H_16, G_16, I_16 },
|
||||
{ 0, K_1, J_1, L_1 },
|
||||
{ 0, K_2, J_2, L_2 },
|
||||
{ 0, K_3, J_3, L_3 },
|
||||
{ 0, K_4, J_4, L_4 },
|
||||
{ 0, K_5, J_5, L_5 },
|
||||
{ 0, K_6, J_6, L_6 },
|
||||
{ 0, K_7, J_7, L_7 },
|
||||
{ 0, K_8, J_8, L_8 },
|
||||
{ 0, K_9, J_9, L_9 },
|
||||
{ 0, K_10, J_10, L_10 },
|
||||
{ 0, K_11, J_11, L_11 },
|
||||
{ 0, K_12, J_12, L_12 },
|
||||
{ 0, K_13, J_13, L_13 },
|
||||
{ 0, K_14, J_14, L_14 },
|
||||
{ 0, K_15, J_15, L_15 },
|
||||
{ 0, K_16, J_16, L_16 },
|
||||
{ 1, B_1, A_1, C_1 },
|
||||
{ 1, B_2, A_2, C_2 },
|
||||
{ 1, B_3, A_3, C_3 },
|
||||
{ 1, B_4, A_4, C_4 },
|
||||
{ 1, B_5, A_5, C_5 },
|
||||
{ 1, B_6, A_6, C_6 },
|
||||
{ 1, B_7, A_7, C_7 },
|
||||
{ 1, B_8, A_8, C_8 },
|
||||
{ 1, B_9, A_9, C_9 },
|
||||
{ 1, B_10, A_10, C_10 },
|
||||
{ 1, B_11, A_11, C_11 },
|
||||
{ 1, B_12, A_12, C_12 },
|
||||
{ 1, B_13, A_13, C_13 },
|
||||
{ 1, B_14, A_14, C_14 },
|
||||
{ 1, B_15, A_15, C_15 },
|
||||
{ 1, B_16, A_16, C_16 },
|
||||
{ 1, E_1, D_1, F_1 },
|
||||
{ 1, E_2, D_2, F_2 },
|
||||
{ 1, E_3, D_3, F_3 },
|
||||
{ 1, E_4, D_4, F_4 },
|
||||
{ 1, E_5, D_5, F_5 },
|
||||
{ 1, E_6, D_6, F_6 },
|
||||
{ 1, E_7, D_7, F_7 },
|
||||
{ 1, E_8, D_8, F_8 },
|
||||
{ 1, E_9, D_9, F_9 },
|
||||
{ 1, E_10, D_10, F_10 },
|
||||
{ 1, E_11, D_11, F_11 },
|
||||
{ 1, E_12, D_12, F_12 },
|
||||
{ 1, E_13, D_13, F_13 },
|
||||
{ 1, H_1, G_1, I_1 },
|
||||
{ 1, H_2, G_2, I_2 },
|
||||
{ 1, H_3, G_3, I_3 },
|
||||
{ 1, H_4, G_4, I_4 },
|
||||
{ 1, H_5, G_5, I_5 },
|
||||
{ 1, H_6, G_6, I_6 },
|
||||
{ 1, H_7, G_7, I_7 },
|
||||
{ 1, H_8, G_8, I_8 },
|
||||
{ 1, H_9, G_9, I_9 },
|
||||
{ 1, H_10, G_10, I_10 },
|
||||
{ 1, H_11, G_11, I_11 },
|
||||
};
|
||||
#endif
|
||||
7
keyboards/drop/cstm80/halconf.h
Normal file
7
keyboards/drop/cstm80/halconf.h
Normal file
@@ -0,0 +1,7 @@
|
||||
// Copyright 2023 Massdrop, Inc.
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_I2C TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
272
keyboards/drop/cstm80/info.json
Normal file
272
keyboards/drop/cstm80/info.json
Normal file
@@ -0,0 +1,272 @@
|
||||
{
|
||||
"keyboard_name": "CSTM80",
|
||||
"manufacturer": "Drop Inc.",
|
||||
"maintainer": "zvecr",
|
||||
"processor": "STM32F303",
|
||||
"bootloader": "tinyuf2",
|
||||
"diode_direction": "COL2ROW",
|
||||
"matrix_pins": {
|
||||
"cols": ["C15", "C14", "C13", "C12", "C11", "C10", "C9", "C8", "C7", "C6", "C5", "C4", "C3", "C2", "C1", "C0", "D2"],
|
||||
"rows": ["B15", "B14", "B13", "B12", "B11", "B10"]
|
||||
},
|
||||
"usb": {
|
||||
"vid": "0x359B",
|
||||
"pid": "0x0004",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"eeprom": {
|
||||
"driver": "i2c"
|
||||
},
|
||||
"features": {
|
||||
"rgb_matrix": true,
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"community_layouts": ["tkl_f13_ansi"],
|
||||
"layouts": {
|
||||
"LAYOUT_tkl_f13_ansi": {
|
||||
"layout": [
|
||||
{ "matrix": [0, 0], "label":"Esc", "x":0, "y":0},
|
||||
{ "matrix": [0, 1], "label":"F1", "x":1.25, "y":0},
|
||||
{ "matrix": [0, 2], "label":"F2", "x":2.25, "y":0},
|
||||
{ "matrix": [0, 3], "label":"F3", "x":3.25, "y":0},
|
||||
{ "matrix": [0, 4], "label":"F4", "x":4.25, "y":0},
|
||||
{ "matrix": [0, 5], "label":"F5", "x":5.5, "y":0},
|
||||
{ "matrix": [0, 6], "label":"F6", "x":6.5, "y":0},
|
||||
{ "matrix": [0, 7], "label":"F7", "x":7.5, "y":0},
|
||||
{ "matrix": [0, 8], "label":"F8", "x":8.5, "y":0},
|
||||
{ "matrix": [0, 9], "label":"F9", "x":9.75, "y":0},
|
||||
{ "matrix": [0, 10], "label":"F10", "x":10.75, "y":0},
|
||||
{ "matrix": [0, 11], "label":"F11", "x":11.75, "y":0},
|
||||
{ "matrix": [0, 12], "label":"F12", "x":12.75, "y":0},
|
||||
{ "matrix": [0, 13], "label":"F13", "x":14, "y":0},
|
||||
{ "matrix": [0, 14], "label":"PrtSc", "x":15.25, "y":0},
|
||||
{ "matrix": [0, 15], "label":"ScrLk", "x":16.25, "y":0},
|
||||
{ "matrix": [0, 16], "label":"Pause", "x":17.25, "y":0},
|
||||
|
||||
{ "matrix": [1, 0], "label":"~", "x":0, "y":1.25},
|
||||
{ "matrix": [1, 1], "label":"!", "x":1, "y":1.25},
|
||||
{ "matrix": [1, 2], "label":"@", "x":2, "y":1.25},
|
||||
{ "matrix": [1, 3], "label":"#", "x":3, "y":1.25},
|
||||
{ "matrix": [1, 4], "label":"$", "x":4, "y":1.25},
|
||||
{ "matrix": [1, 5], "label":"%", "x":5, "y":1.25},
|
||||
{ "matrix": [1, 6], "label":"^", "x":6, "y":1.25},
|
||||
{ "matrix": [1, 7], "label":"&", "x":7, "y":1.25},
|
||||
{ "matrix": [1, 8], "label":"*", "x":8, "y":1.25},
|
||||
{ "matrix": [1, 9], "label":"(", "x":9, "y":1.25},
|
||||
{ "matrix": [1, 10], "label":")", "x":10, "y":1.25},
|
||||
{ "matrix": [1, 11], "label":"_", "x":11, "y":1.25},
|
||||
{ "matrix": [1, 12], "label":"+", "x":12, "y":1.25},
|
||||
{ "matrix": [1, 13], "label":"Bksp", "x":13, "y":1.25, "w":2},
|
||||
{ "matrix": [1, 14], "label":"Insert", "x":15.25, "y":1.25},
|
||||
{ "matrix": [1, 15], "label":"Home", "x":16.25, "y":1.25},
|
||||
{ "matrix": [1, 16], "label":"Page Up", "x":17.25, "y":1.25},
|
||||
|
||||
{ "matrix": [2, 0], "label":"Tab", "x":0, "y":2.25, "w":1.5},
|
||||
{ "matrix": [2, 1], "label":"Q", "x":1.5, "y":2.25},
|
||||
{ "matrix": [2, 2], "label":"W", "x":2.5, "y":2.25},
|
||||
{ "matrix": [2, 3], "label":"E", "x":3.5, "y":2.25},
|
||||
{ "matrix": [2, 4], "label":"R", "x":4.5, "y":2.25},
|
||||
{ "matrix": [2, 5], "label":"T", "x":5.5, "y":2.25},
|
||||
{ "matrix": [2, 6], "label":"Y", "x":6.5, "y":2.25},
|
||||
{ "matrix": [2, 7], "label":"U", "x":7.5, "y":2.25},
|
||||
{ "matrix": [2, 8], "label":"I", "x":8.5, "y":2.25},
|
||||
{ "matrix": [2, 9], "label":"O", "x":9.5, "y":2.25},
|
||||
{ "matrix": [2, 10], "label":"P", "x":10.5, "y":2.25},
|
||||
{ "matrix": [2, 11], "label":"{", "x":11.5, "y":2.25},
|
||||
{ "matrix": [2, 12], "label":"}", "x":12.5, "y":2.25},
|
||||
{ "matrix": [2, 13], "label":"|", "x":13.5, "y":2.25, "w":1.5},
|
||||
{ "matrix": [2, 14], "label":"Delete", "x":15.25, "y":2.25},
|
||||
{ "matrix": [2, 15], "label":"End", "x":16.25, "y":2.25},
|
||||
{ "matrix": [2, 16], "label":"Page Dn", "x":17.25, "y":2.25},
|
||||
|
||||
{ "matrix": [3, 0], "label":"CapsLk", "x":0, "y":3.25, "w":1.75},
|
||||
{ "matrix": [3, 1], "label":"A", "x":1.75, "y":3.25},
|
||||
{ "matrix": [3, 2], "label":"S", "x":2.75, "y":3.25},
|
||||
{ "matrix": [3, 3], "label":"D", "x":3.75, "y":3.25},
|
||||
{ "matrix": [3, 4], "label":"F", "x":4.75, "y":3.25},
|
||||
{ "matrix": [3, 5], "label":"G", "x":5.75, "y":3.25},
|
||||
{ "matrix": [3, 6], "label":"H", "x":6.75, "y":3.25},
|
||||
{ "matrix": [3, 7], "label":"J", "x":7.75, "y":3.25},
|
||||
{ "matrix": [3, 8], "label":"K", "x":8.75, "y":3.25},
|
||||
{ "matrix": [3, 9], "label":"L", "x":9.75, "y":3.25},
|
||||
{ "matrix": [3, 10], "label":":", "x":10.75, "y":3.25},
|
||||
{ "matrix": [3, 11], "label":"\"", "x":11.75, "y":3.25},
|
||||
{ "matrix": [3, 13], "label":"Enter", "x":12.75, "y":3.25, "w":2.25},
|
||||
|
||||
{ "matrix": [4, 0], "label":"Shift", "x":0, "y":4.25, "w":2.25},
|
||||
{ "matrix": [4, 1], "label":"Z", "x":2.25, "y":4.25},
|
||||
{ "matrix": [4, 2], "label":"X", "x":3.25, "y":4.25},
|
||||
{ "matrix": [4, 3], "label":"C", "x":4.25, "y":4.25},
|
||||
{ "matrix": [4, 4], "label":"V", "x":5.25, "y":4.25},
|
||||
{ "matrix": [4, 5], "label":"B", "x":6.25, "y":4.25},
|
||||
{ "matrix": [4, 6], "label":"N", "x":7.25, "y":4.25},
|
||||
{ "matrix": [4, 7], "label":"M", "x":8.25, "y":4.25},
|
||||
{ "matrix": [4, 8], "label":"<", "x":9.25, "y":4.25},
|
||||
{ "matrix": [4, 9], "label":">", "x":10.25, "y":4.25},
|
||||
{ "matrix": [4, 10], "label":"?", "x":11.25, "y":4.25},
|
||||
{ "matrix": [4, 12], "label":"Shift", "x":12.25, "y":4.25, "w":2.75},
|
||||
{ "matrix": [4, 15], "label":"\u2191", "x":16.25, "y":4.25},
|
||||
|
||||
{ "matrix": [5, 0], "label":"Ctrl", "x":0, "y":5.25, "w":1.25},
|
||||
{ "matrix": [5, 1], "label":"Win", "x":1.25, "y":5.25, "w":1.25},
|
||||
{ "matrix": [5, 2], "label":"Alt", "x":2.5, "y":5.25, "w":1.25},
|
||||
{ "matrix": [5, 6], "label":" ", "x":3.75, "y":5.25, "w":6.25},
|
||||
{ "matrix": [5, 10], "label":"Alt", "x":10, "y":5.25, "w":1.25},
|
||||
{ "matrix": [5, 11], "label":"Fn", "x":11.25, "y":5.25, "w":1.25},
|
||||
{ "matrix": [5, 12], "label":"Menu", "x":12.5, "y":5.25, "w":1.25},
|
||||
{ "matrix": [5, 13], "label":"Ctrl", "x":13.75, "y":5.25, "w":1.25},
|
||||
{ "matrix": [5, 14], "label":"\u2190", "x":15.25, "y":5.25},
|
||||
{ "matrix": [5, 15], "label":"\u2193", "x":16.25, "y":5.25},
|
||||
{ "matrix": [5, 16], "label":"\u2192", "x":17.25, "y":5.25}
|
||||
]
|
||||
}
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"driver": "is31fl3733",
|
||||
"animations": {
|
||||
"alphas_mods": true,
|
||||
"gradient_up_down": true,
|
||||
"gradient_left_right": true,
|
||||
"breathing": true,
|
||||
"band_sat": true,
|
||||
"band_val": true,
|
||||
"band_pinwheel_sat": true,
|
||||
"band_pinwheel_val": true,
|
||||
"band_spiral_sat": true,
|
||||
"band_spiral_val": true,
|
||||
"cycle_all": true,
|
||||
"cycle_left_right": true,
|
||||
"cycle_up_down": true,
|
||||
"cycle_out_in": true,
|
||||
"cycle_out_in_dual": true,
|
||||
"rainbow_moving_chevron": true,
|
||||
"cycle_pinwheel": true,
|
||||
"cycle_spiral": true,
|
||||
"dual_beacon": true,
|
||||
"rainbow_beacon": true,
|
||||
"rainbow_pinwheels": true,
|
||||
"raindrops": true,
|
||||
"jellybean_raindrops": true,
|
||||
"hue_breathing": true,
|
||||
"hue_pendulum": true,
|
||||
"hue_wave": true,
|
||||
"pixel_fractal": true,
|
||||
"pixel_flow": true,
|
||||
"pixel_rain": true,
|
||||
"typing_heatmap": true,
|
||||
"digital_rain": true,
|
||||
"solid_reactive_simple": true,
|
||||
"solid_reactive": true,
|
||||
"solid_reactive_wide": true,
|
||||
"solid_reactive_multiwide": true,
|
||||
"solid_reactive_cross": true,
|
||||
"solid_reactive_multicross": true,
|
||||
"solid_reactive_nexus": true,
|
||||
"solid_reactive_multinexus": true,
|
||||
"splash": true,
|
||||
"multisplash": true,
|
||||
"solid_splash": true,
|
||||
"solid_multisplash": true
|
||||
},
|
||||
"layout": [
|
||||
{ "flags": 4, "matrix": [0, 0], "x": 6, "y": 8 },
|
||||
{ "flags": 4, "matrix": [0, 1], "x": 21, "y": 8 },
|
||||
{ "flags": 4, "matrix": [0, 2], "x": 33, "y": 8 },
|
||||
{ "flags": 4, "matrix": [0, 3], "x": 45, "y": 8 },
|
||||
{ "flags": 4, "matrix": [0, 4], "x": 57, "y": 8 },
|
||||
{ "flags": 4, "matrix": [0, 5], "x": 74, "y": 8 },
|
||||
{ "flags": 4, "matrix": [0, 6], "x": 86, "y": 8 },
|
||||
{ "flags": 4, "matrix": [0, 7], "x": 98, "y": 8 },
|
||||
{ "flags": 4, "matrix": [0, 8], "x": 110, "y": 8 },
|
||||
{ "flags": 4, "matrix": [0, 9], "x": 125, "y": 8 },
|
||||
{ "flags": 4, "matrix": [0, 10], "x": 137, "y": 8 },
|
||||
{ "flags": 4, "matrix": [0, 11], "x": 150, "y": 8 },
|
||||
{ "flags": 4, "matrix": [0, 12], "x": 161, "y": 8 },
|
||||
{ "flags": 4, "matrix": [0, 13], "x": 176, "y": 8 },
|
||||
{ "flags": 4, "matrix": [0, 14], "x": 192, "y": 8 },
|
||||
{ "flags": 4, "matrix": [0, 15], "x": 204, "y": 8 },
|
||||
|
||||
{ "flags": 4, "matrix": [1, 0], "x": 6, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 1], "x": 18, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 2], "x": 37, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 3], "x": 43, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 4], "x": 55, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 5], "x": 67, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 6], "x": 79, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 7], "x": 92, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 8], "x": 104, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 9], "x": 116, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 10], "x": 128, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 11], "x": 141, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 12], "x": 153, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 13], "x": 171, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 14], "x": 192, "y": 21 },
|
||||
{ "flags": 4, "matrix": [1, 15], "x": 204, "y": 21 },
|
||||
|
||||
{ "flags": 4, "matrix": [2, 0], "x": 9, "y": 31 },
|
||||
{ "flags": 4, "matrix": [2, 1], "x": 24, "y": 31 },
|
||||
{ "flags": 4, "matrix": [2, 2], "x": 36, "y": 31 },
|
||||
{ "flags": 4, "matrix": [2, 3], "x": 48, "y": 31 },
|
||||
{ "flags": 4, "matrix": [2, 4], "x": 61, "y": 31 },
|
||||
{ "flags": 4, "matrix": [2, 5], "x": 73, "y": 31 },
|
||||
{ "flags": 4, "matrix": [2, 6], "x": 86, "y": 31 },
|
||||
{ "flags": 4, "matrix": [2, 7], "x": 98, "y": 31 },
|
||||
{ "flags": 4, "matrix": [2, 8], "x": 110, "y": 31 },
|
||||
{ "flags": 4, "matrix": [2, 9], "x": 122, "y": 31 },
|
||||
{ "flags": 4, "matrix": [2, 10], "x": 134, "y": 31 },
|
||||
{ "flags": 4, "matrix": [2, 11], "x": 146, "y": 31 },
|
||||
{ "flags": 4, "matrix": [2, 12], "x": 159, "y": 31 },
|
||||
{ "flags": 4, "matrix": [2, 13], "x": 174, "y": 31 },
|
||||
{ "flags": 4, "matrix": [2, 14], "x": 192, "y": 31 },
|
||||
{ "flags": 4, "matrix": [2, 15], "x": 204, "y": 31 },
|
||||
|
||||
{ "flags": 4, "matrix": [3, 0], "x": 11, "y": 41 },
|
||||
{ "flags": 4, "matrix": [3, 1], "x": 27, "y": 41 },
|
||||
{ "flags": 4, "matrix": [3, 2], "x": 40, "y": 41 },
|
||||
{ "flags": 4, "matrix": [3, 3], "x": 52, "y": 41 },
|
||||
{ "flags": 4, "matrix": [3, 4], "x": 64, "y": 41 },
|
||||
{ "flags": 4, "matrix": [3, 5], "x": 76, "y": 41 },
|
||||
{ "flags": 4, "matrix": [3, 6], "x": 88, "y": 41 },
|
||||
{ "flags": 4, "matrix": [3, 7], "x": 100, "y": 41 },
|
||||
{ "flags": 4, "matrix": [3, 8], "x": 113, "y": 41 },
|
||||
{ "flags": 4, "matrix": [3, 9], "x": 124, "y": 41 },
|
||||
{ "flags": 4, "matrix": [3, 10], "x": 137, "y": 41 },
|
||||
{ "flags": 4, "matrix": [3, 11], "x": 150, "y": 41 },
|
||||
{ "flags": 4, "matrix": [3, 12], "x": 170, "y": 41 },
|
||||
{ "flags": 4, "matrix": [0, 16], "x": 217, "y": 8 },
|
||||
{ "flags": 4, "matrix": [1, 16], "x": 217, "y": 21 },
|
||||
{ "flags": 4, "matrix": [2, 16], "x": 217, "y": 31 },
|
||||
|
||||
{ "flags": 4, "matrix": [4, 0], "x": 13, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 1], "x": 34, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 2], "x": 45, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 3], "x": 58, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 4], "x": 70, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 5], "x": 82, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 6], "x": 94, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 7], "x": 107, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 8], "x": 119, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 9], "x": 131, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 10], "x": 143, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 12], "x": 166, "y": 51 },
|
||||
{ "flags": 4, "matrix": [4, 15], "x": 204, "y": 51 },
|
||||
|
||||
{ "flags": 4, "matrix": [5, 0], "x": 8, "y": 61 },
|
||||
{ "flags": 4, "matrix": [5, 1], "x": 23, "y": 61 },
|
||||
{ "flags": 4, "matrix": [5, 2], "x": 38, "y": 61 },
|
||||
{ "flags": 4, "matrix": [5, 6], "x": 84, "y": 61 },
|
||||
{ "flags": 4, "matrix": [5, 10], "x": 129, "y": 61 },
|
||||
{ "flags": 4, "matrix": [5, 11], "x": 144, "y": 61 },
|
||||
{ "flags": 4, "matrix": [5, 12], "x": 160, "y": 61 },
|
||||
{ "flags": 4, "matrix": [5, 13], "x": 175, "y": 61 },
|
||||
{ "flags": 4, "matrix": [5, 14], "x": 192, "y": 61 },
|
||||
{ "flags": 4, "matrix": [5, 15], "x": 204, "y": 61 },
|
||||
{ "flags": 4, "matrix": [5, 16], "x": 217, "y": 61 }
|
||||
]
|
||||
}
|
||||
}
|
||||
38
keyboards/drop/cstm80/keymaps/default/keymap.c
Normal file
38
keyboards/drop/cstm80/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,38 @@
|
||||
// Copyright 2023 Massdrop, Inc.
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
||||
* ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐
|
||||
* │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││F13││PSc│Scr│Pse│
|
||||
* └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐
|
||||
* │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp││Ins│Hom│PgU│
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤
|
||||
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ ││Del│End│PgD│
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘
|
||||
* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐
|
||||
* │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │
|
||||
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐
|
||||
* │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl││ ← │ ↓ │ → │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘
|
||||
*/
|
||||
[0] = LAYOUT_tkl_f13_ansi(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_tkl_f13_ansi(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______,
|
||||
_______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,_______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
5
keyboards/drop/cstm80/keymaps/via/config.h
Normal file
5
keyboards/drop/cstm80/keymaps/via/config.h
Normal file
@@ -0,0 +1,5 @@
|
||||
// Copyright 2023 Massdrop, Inc.
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once
|
||||
|
||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 8
|
||||
38
keyboards/drop/cstm80/keymaps/via/keymap.c
Normal file
38
keyboards/drop/cstm80/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,38 @@
|
||||
// Copyright 2023 Massdrop, Inc.
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/*
|
||||
* ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┬───┬───┐
|
||||
* │Esc││F1 │F2 │F3 │F4 ││F5 │F6 │F7 │F8 ││F9 │F10│F11│F12││F13││PSc│Scr│Pse│
|
||||
* └───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┴───┴───┴───┘└───┘└───┴───┴───┘
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐┌───┬───┬───┐
|
||||
* │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp││Ins│Hom│PgU│
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┼───┼───┤
|
||||
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ ││Del│End│PgD│
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘
|
||||
* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐
|
||||
* │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │ │ ↑ │
|
||||
* ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤┌───┼───┼───┐
|
||||
* │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl││ ← │ ↓ │ → │
|
||||
* └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘
|
||||
*/
|
||||
[0] = LAYOUT_tkl_f13_ansi(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
[1] = LAYOUT_tkl_f13_ansi(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______,
|
||||
_______, RGB_TOG, RGB_VAI, RGB_SPI, RGB_HUI, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_MOD, RGB_VAD, RGB_SPD, RGB_HUD, RGB_SAD, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW,_______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, EE_CLR, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
1
keyboards/drop/cstm80/keymaps/via/rules.mk
Normal file
1
keyboards/drop/cstm80/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
||||
14
keyboards/drop/cstm80/mcuconf.h
Normal file
14
keyboards/drop/cstm80/mcuconf.h
Normal file
@@ -0,0 +1,14 @@
|
||||
// Copyright 2023 Massdrop, Inc.
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef STM32_PLLM_VALUE
|
||||
#define STM32_PLLM_VALUE 16
|
||||
|
||||
#undef STM32_PREDIV_VALUE
|
||||
#define STM32_PREDIV_VALUE 2
|
||||
|
||||
#undef STM32_I2C_USE_I2C1
|
||||
#define STM32_I2C_USE_I2C1 TRUE
|
||||
24
keyboards/drop/cstm80/readme.md
Normal file
24
keyboards/drop/cstm80/readme.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# CSTM80
|
||||
|
||||
The CSTM80 is a tenkeyless keyboard with customizable switch plates and weights, as well as a magnetically attached top case.
|
||||
|
||||
* Keyboard Maintainer: [zvecr](https://github.com/zvecr)
|
||||
* Hardware Availability: [Drop CSTM80 Mechanical Keyboard](https://drop.com/buy/drop-cstm80-mechanical-keyboard)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make drop/cstm80:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make drop/cstm80: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**: Quickly double tap the button located under the spacebar
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
||||
4
keyboards/drop/cstm80/rules.mk
Normal file
4
keyboards/drop/cstm80/rules.mk
Normal file
@@ -0,0 +1,4 @@
|
||||
UF2_DEVICE_TYPE_ID = 0x8bfa7750
|
||||
UF2CONV_ARGS = --device-type $(UF2_DEVICE_TYPE_ID)
|
||||
|
||||
SRC += lib/common.c
|
||||
@@ -21,7 +21,6 @@
|
||||
#define ISSI_PWM_FREQUENCY 0b010 // 26k
|
||||
|
||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||
#define RGB_MATRIX_DEFAULT_VAL 100
|
||||
#define RGB_MATRIX_KEYPRESSES
|
||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
|
||||
|
||||
@@ -125,6 +125,7 @@
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"driver": "is31fl3733",
|
||||
"max_brightness": 191,
|
||||
"animations": {
|
||||
"alphas_mods": true,
|
||||
"gradient_up_down": true,
|
||||
|
||||
@@ -5,17 +5,15 @@
|
||||
# include "quantum.h"
|
||||
# include "rgb_matrix.h"
|
||||
|
||||
# define LED_FLAG_ANY_SWITCH (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR)
|
||||
|
||||
# ifdef RGB_MATRIX_CAPS_LOCK_INDEX
|
||||
bool rgb_matrix_indicators_kb(void) {
|
||||
if (!rgb_matrix_indicators_user()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (host_keyboard_led_state().caps_lock) {
|
||||
if (host_keyboard_led_state().caps_lock && (rgb_matrix_get_flags() != LED_FLAG_NONE)) {
|
||||
rgb_matrix_set_color(RGB_MATRIX_CAPS_LOCK_INDEX, RGB_WHITE);
|
||||
} else if ((rgb_matrix_get_flags() & LED_FLAG_ANY_SWITCH) == 0) {
|
||||
} else if (rgb_matrix_get_flags() == LED_FLAG_UNDERGLOW) {
|
||||
rgb_matrix_set_color(RGB_MATRIX_CAPS_LOCK_INDEX, RGB_OFF);
|
||||
}
|
||||
return true;
|
||||
@@ -33,9 +31,9 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||
case RGB_TOG:
|
||||
switch (rgb_matrix_get_flags()) {
|
||||
case LED_FLAG_ALL:
|
||||
rgb_matrix_set_flags(LED_FLAG_ANY_SWITCH);
|
||||
rgb_matrix_set_flags(LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR);
|
||||
break;
|
||||
case LED_FLAG_ANY_SWITCH:
|
||||
case (LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER | LED_FLAG_INDICATOR):
|
||||
rgb_matrix_set_flags(LED_FLAG_UNDERGLOW);
|
||||
break;
|
||||
case LED_FLAG_UNDERGLOW:
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
#define ISSI_PWM_FREQUENCY 0b010 // 26k
|
||||
|
||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||
#define RGB_MATRIX_DEFAULT_VAL 100
|
||||
#define RGB_MATRIX_KEYPRESSES
|
||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
|
||||
|
||||
@@ -133,6 +133,7 @@
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"driver": "is31fl3733",
|
||||
"max_brightness": 191,
|
||||
"animations": {
|
||||
"alphas_mods": true,
|
||||
"gradient_up_down": true,
|
||||
|
||||
@@ -21,9 +21,7 @@
|
||||
#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_B
|
||||
|
||||
/* RGB Matrix */
|
||||
#define WS2812_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the WS2812 implementation uses the PIO0 peripheral
|
||||
#define RGB_MATRIX_DEFAULT_VAL 60
|
||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
#define RGB_MATRIX_KEYPRESSES
|
||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT
|
||||
21
keyboards/era/sirind/klein_hs/config.h
Normal file
21
keyboards/era/sirind/klein_hs/config.h
Normal file
@@ -0,0 +1,21 @@
|
||||
/* Copyright 2023 eerraa
|
||||
*
|
||||
* 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
|
||||
|
||||
/* BACKLIGHT PWM */
|
||||
#define BACKLIGHT_PWM_DRIVER PWMD7
|
||||
#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_B
|
||||
21
keyboards/era/sirind/klein_hs/halconf.h
Normal file
21
keyboards/era/sirind/klein_hs/halconf.h
Normal file
@@ -0,0 +1,21 @@
|
||||
/* Copyright 2023 eerraa
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_PWM TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
467
keyboards/era/sirind/klein_hs/info.json
Normal file
467
keyboards/era/sirind/klein_hs/info.json
Normal file
@@ -0,0 +1,467 @@
|
||||
{
|
||||
"manufacturer": "SIRIND",
|
||||
"keyboard_name": "Klein_HS",
|
||||
"maintainer": "eerraa",
|
||||
"backlight": {
|
||||
"levels": 5,
|
||||
"pin": "GP15"
|
||||
},
|
||||
"bootloader": "rp2040",
|
||||
"build": {
|
||||
"debounce_type": "sym_defer_pk"
|
||||
},
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"backlight": true,
|
||||
"bootmagic": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "GP16",
|
||||
"on_state": 0,
|
||||
"scroll_lock": "GP17"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP22", "GP23", "GP24", "GP25", "GP26", "GP27", "GP28", "GP29", "GP11", "GP10", "GP9", "GP8", "GP7", "GP1", "GP2", "GP3"],
|
||||
"rows": ["GP18", "GP19", "GP20", "GP21", "GP14", "GP5", "GP6", "GP4", "GP13", "GP12"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"url": "",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0004",
|
||||
"vid": "0x4552"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1.5, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.5, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4.5, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5.5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6.5, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"matrix": [5, 8], "x": 10.75, "y": 0},
|
||||
{"matrix": [5, 9], "x": 11.75, "y": 0},
|
||||
{"matrix": [5, 10], "x": 12.75, "y": 0},
|
||||
{"matrix": [5, 11], "x": 13.75, "y": 0},
|
||||
{"matrix": [5, 12], "x": 14.75, "y": 0},
|
||||
{"matrix": [5, 13], "x": 15.75, "y": 0},
|
||||
{"matrix": [5, 14], "x": 16.75, "y": 0},
|
||||
{"matrix": [5, 15], "x": 17.75, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 3, "y": 1},
|
||||
{"matrix": [1, 3], "x": 4, "y": 1},
|
||||
{"matrix": [1, 4], "x": 5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 6, "y": 1},
|
||||
{"matrix": [1, 6], "x": 7, "y": 1},
|
||||
{"matrix": [1, 7], "x": 8, "y": 1},
|
||||
{"matrix": [6, 8], "x": 10.25, "y": 1},
|
||||
{"matrix": [6, 9], "x": 11.25, "y": 1},
|
||||
{"matrix": [6, 10], "x": 12.25, "y": 1},
|
||||
{"matrix": [6, 11], "x": 13.25, "y": 1},
|
||||
{"matrix": [6, 12], "x": 14.25, "y": 1},
|
||||
{"matrix": [6, 13], "x": 15.25, "y": 1},
|
||||
{"matrix": [6, 14], "x": 16.25, "y": 1},
|
||||
{"matrix": [6, 15], "x": 17.25, "y": 1, "w": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 3.25, "y": 2},
|
||||
{"matrix": [2, 3], "x": 4.25, "y": 2},
|
||||
{"matrix": [2, 4], "x": 5.25, "y": 2},
|
||||
{"matrix": [2, 5], "x": 6.25, "y": 2},
|
||||
{"matrix": [2, 6], "x": 7.25, "y": 2},
|
||||
{"matrix": [7, 8], "x": 10.5, "y": 2},
|
||||
{"matrix": [7, 9], "x": 11.5, "y": 2},
|
||||
{"matrix": [7, 10], "x": 12.5, "y": 2},
|
||||
{"matrix": [7, 11], "x": 13.5, "y": 2},
|
||||
{"matrix": [7, 12], "x": 14.5, "y": 2},
|
||||
{"matrix": [7, 13], "x": 15.5, "y": 2},
|
||||
{"matrix": [7, 15], "x": 16.5, "y": 2, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 3.75, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.75, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.75, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.75, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.75, "y": 3},
|
||||
{"matrix": [8, 8], "x": 10, "y": 3},
|
||||
{"matrix": [8, 9], "x": 11, "y": 3},
|
||||
{"matrix": [8, 10], "x": 12, "y": 3},
|
||||
{"matrix": [8, 11], "x": 13, "y": 3},
|
||||
{"matrix": [8, 12], "x": 14, "y": 3},
|
||||
{"matrix": [8, 13], "x": 15, "y": 3},
|
||||
{"matrix": [8, 14], "x": 16, "y": 3, "w": 1.75},
|
||||
{"matrix": [8, 15], "x": 17.75, "y": 3},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 5], "x": 6, "y": 4, "w": 2.25},
|
||||
{"matrix": [4, 6], "x": 8.25, "y": 4},
|
||||
{"matrix": [9, 9], "x": 10, "y": 4, "w": 2.75},
|
||||
{"matrix": [9, 11], "x": 12.75, "y": 4, "w": 1.5},
|
||||
{"matrix": [9, 13], "x": 15, "y": 4},
|
||||
{"matrix": [9, 14], "x": 16, "y": 4},
|
||||
{"matrix": [9, 15], "x": 17, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_ansi": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1.5, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.5, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4.5, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5.5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6.5, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"matrix": [5, 8], "x": 10.75, "y": 0},
|
||||
{"matrix": [5, 9], "x": 11.75, "y": 0},
|
||||
{"matrix": [5, 10], "x": 12.75, "y": 0},
|
||||
{"matrix": [5, 11], "x": 13.75, "y": 0},
|
||||
{"matrix": [5, 12], "x": 14.75, "y": 0},
|
||||
{"matrix": [5, 13], "x": 15.75, "y": 0},
|
||||
{"matrix": [5, 15], "x": 16.75, "y": 0, "w": 2},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 3, "y": 1},
|
||||
{"matrix": [1, 3], "x": 4, "y": 1},
|
||||
{"matrix": [1, 4], "x": 5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 6, "y": 1},
|
||||
{"matrix": [1, 6], "x": 7, "y": 1},
|
||||
{"matrix": [1, 7], "x": 8, "y": 1},
|
||||
{"matrix": [6, 8], "x": 10.25, "y": 1},
|
||||
{"matrix": [6, 9], "x": 11.25, "y": 1},
|
||||
{"matrix": [6, 10], "x": 12.25, "y": 1},
|
||||
{"matrix": [6, 11], "x": 13.25, "y": 1},
|
||||
{"matrix": [6, 12], "x": 14.25, "y": 1},
|
||||
{"matrix": [6, 13], "x": 15.25, "y": 1},
|
||||
{"matrix": [6, 14], "x": 16.25, "y": 1},
|
||||
{"matrix": [6, 15], "x": 17.25, "y": 1, "w": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 3.25, "y": 2},
|
||||
{"matrix": [2, 3], "x": 4.25, "y": 2},
|
||||
{"matrix": [2, 4], "x": 5.25, "y": 2},
|
||||
{"matrix": [2, 5], "x": 6.25, "y": 2},
|
||||
{"matrix": [2, 6], "x": 7.25, "y": 2},
|
||||
{"matrix": [7, 8], "x": 10.5, "y": 2},
|
||||
{"matrix": [7, 9], "x": 11.5, "y": 2},
|
||||
{"matrix": [7, 10], "x": 12.5, "y": 2},
|
||||
{"matrix": [7, 11], "x": 13.5, "y": 2},
|
||||
{"matrix": [7, 12], "x": 14.5, "y": 2},
|
||||
{"matrix": [7, 13], "x": 15.5, "y": 2},
|
||||
{"matrix": [7, 15], "x": 16.5, "y": 2, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 3.75, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.75, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.75, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.75, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.75, "y": 3},
|
||||
{"matrix": [8, 8], "x": 10, "y": 3},
|
||||
{"matrix": [8, 9], "x": 11, "y": 3},
|
||||
{"matrix": [8, 10], "x": 12, "y": 3},
|
||||
{"matrix": [8, 11], "x": 13, "y": 3},
|
||||
{"matrix": [8, 12], "x": 14, "y": 3},
|
||||
{"matrix": [8, 13], "x": 15, "y": 3},
|
||||
{"matrix": [8, 14], "x": 16, "y": 3, "w": 2.75},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 5], "x": 6, "y": 4, "w": 2.25},
|
||||
{"matrix": [4, 6], "x": 8.25, "y": 4},
|
||||
{"matrix": [9, 9], "x": 10, "y": 4, "w": 2.75},
|
||||
{"matrix": [9, 11], "x": 12.75, "y": 4, "w": 1.5},
|
||||
{"matrix": [9, 15], "x": 17.25, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_ansi_arrow": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1.5, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.5, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4.5, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5.5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6.5, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"matrix": [5, 8], "x": 10.75, "y": 0},
|
||||
{"matrix": [5, 9], "x": 11.75, "y": 0},
|
||||
{"matrix": [5, 10], "x": 12.75, "y": 0},
|
||||
{"matrix": [5, 11], "x": 13.75, "y": 0},
|
||||
{"matrix": [5, 12], "x": 14.75, "y": 0},
|
||||
{"matrix": [5, 13], "x": 15.75, "y": 0},
|
||||
{"matrix": [5, 15], "x": 16.75, "y": 0, "w": 2},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 3, "y": 1},
|
||||
{"matrix": [1, 3], "x": 4, "y": 1},
|
||||
{"matrix": [1, 4], "x": 5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 6, "y": 1},
|
||||
{"matrix": [1, 6], "x": 7, "y": 1},
|
||||
{"matrix": [1, 7], "x": 8, "y": 1},
|
||||
{"matrix": [6, 8], "x": 10.25, "y": 1},
|
||||
{"matrix": [6, 9], "x": 11.25, "y": 1},
|
||||
{"matrix": [6, 10], "x": 12.25, "y": 1},
|
||||
{"matrix": [6, 11], "x": 13.25, "y": 1},
|
||||
{"matrix": [6, 12], "x": 14.25, "y": 1},
|
||||
{"matrix": [6, 13], "x": 15.25, "y": 1},
|
||||
{"matrix": [6, 14], "x": 16.25, "y": 1},
|
||||
{"matrix": [6, 15], "x": 17.25, "y": 1, "w": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 3.25, "y": 2},
|
||||
{"matrix": [2, 3], "x": 4.25, "y": 2},
|
||||
{"matrix": [2, 4], "x": 5.25, "y": 2},
|
||||
{"matrix": [2, 5], "x": 6.25, "y": 2},
|
||||
{"matrix": [2, 6], "x": 7.25, "y": 2},
|
||||
{"matrix": [7, 8], "x": 10.5, "y": 2},
|
||||
{"matrix": [7, 9], "x": 11.5, "y": 2},
|
||||
{"matrix": [7, 10], "x": 12.5, "y": 2},
|
||||
{"matrix": [7, 11], "x": 13.5, "y": 2},
|
||||
{"matrix": [7, 12], "x": 14.5, "y": 2},
|
||||
{"matrix": [7, 13], "x": 15.5, "y": 2},
|
||||
{"matrix": [7, 15], "x": 16.5, "y": 2, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 3.75, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.75, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.75, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.75, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.75, "y": 3},
|
||||
{"matrix": [8, 8], "x": 10, "y": 3},
|
||||
{"matrix": [8, 9], "x": 11, "y": 3},
|
||||
{"matrix": [8, 10], "x": 12, "y": 3},
|
||||
{"matrix": [8, 11], "x": 13, "y": 3},
|
||||
{"matrix": [8, 12], "x": 14, "y": 3},
|
||||
{"matrix": [8, 13], "x": 15, "y": 3},
|
||||
{"matrix": [8, 14], "x": 16, "y": 3},
|
||||
{"matrix": [8, 15], "x": 17, "y": 3, "w": 1.75},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 5], "x": 6, "y": 4, "w": 2.25},
|
||||
{"matrix": [4, 6], "x": 8.25, "y": 4},
|
||||
{"matrix": [9, 9], "x": 10, "y": 4, "w": 2.75},
|
||||
{"matrix": [9, 11], "x": 12.75, "y": 4, "w": 1.5},
|
||||
{"matrix": [9, 13], "x": 15, "y": 4},
|
||||
{"matrix": [9, 14], "x": 16, "y": 4},
|
||||
{"matrix": [9, 15], "x": 17, "y": 4}
|
||||
]
|
||||
},
|
||||
"LAYOUT_ansi_split_bs": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1.5, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.5, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4.5, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5.5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6.5, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"matrix": [5, 8], "x": 10.75, "y": 0},
|
||||
{"matrix": [5, 9], "x": 11.75, "y": 0},
|
||||
{"matrix": [5, 10], "x": 12.75, "y": 0},
|
||||
{"matrix": [5, 11], "x": 13.75, "y": 0},
|
||||
{"matrix": [5, 12], "x": 14.75, "y": 0},
|
||||
{"matrix": [5, 13], "x": 15.75, "y": 0},
|
||||
{"matrix": [5, 14], "x": 16.75, "y": 0},
|
||||
{"matrix": [5, 15], "x": 17.75, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 3, "y": 1},
|
||||
{"matrix": [1, 3], "x": 4, "y": 1},
|
||||
{"matrix": [1, 4], "x": 5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 6, "y": 1},
|
||||
{"matrix": [1, 6], "x": 7, "y": 1},
|
||||
{"matrix": [1, 7], "x": 8, "y": 1},
|
||||
{"matrix": [6, 8], "x": 10.25, "y": 1},
|
||||
{"matrix": [6, 9], "x": 11.25, "y": 1},
|
||||
{"matrix": [6, 10], "x": 12.25, "y": 1},
|
||||
{"matrix": [6, 11], "x": 13.25, "y": 1},
|
||||
{"matrix": [6, 12], "x": 14.25, "y": 1},
|
||||
{"matrix": [6, 13], "x": 15.25, "y": 1},
|
||||
{"matrix": [6, 14], "x": 16.25, "y": 1},
|
||||
{"matrix": [6, 15], "x": 17.25, "y": 1, "w": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 3.25, "y": 2},
|
||||
{"matrix": [2, 3], "x": 4.25, "y": 2},
|
||||
{"matrix": [2, 4], "x": 5.25, "y": 2},
|
||||
{"matrix": [2, 5], "x": 6.25, "y": 2},
|
||||
{"matrix": [2, 6], "x": 7.25, "y": 2},
|
||||
{"matrix": [7, 8], "x": 10.5, "y": 2},
|
||||
{"matrix": [7, 9], "x": 11.5, "y": 2},
|
||||
{"matrix": [7, 10], "x": 12.5, "y": 2},
|
||||
{"matrix": [7, 11], "x": 13.5, "y": 2},
|
||||
{"matrix": [7, 12], "x": 14.5, "y": 2},
|
||||
{"matrix": [7, 13], "x": 15.5, "y": 2},
|
||||
{"matrix": [7, 15], "x": 16.5, "y": 2, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 3.75, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.75, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.75, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.75, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.75, "y": 3},
|
||||
{"matrix": [8, 8], "x": 10, "y": 3},
|
||||
{"matrix": [8, 9], "x": 11, "y": 3},
|
||||
{"matrix": [8, 10], "x": 12, "y": 3},
|
||||
{"matrix": [8, 11], "x": 13, "y": 3},
|
||||
{"matrix": [8, 12], "x": 14, "y": 3},
|
||||
{"matrix": [8, 13], "x": 15, "y": 3},
|
||||
{"matrix": [8, 14], "x": 16, "y": 3, "w": 2.75},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 5], "x": 6, "y": 4, "w": 2.25},
|
||||
{"matrix": [4, 6], "x": 8.25, "y": 4},
|
||||
{"matrix": [9, 9], "x": 10, "y": 4, "w": 2.75},
|
||||
{"matrix": [9, 11], "x": 12.75, "y": 4, "w": 1.5},
|
||||
{"matrix": [9, 15], "x": 17.25, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_ansi_split_bs_rsft": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1.5, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.5, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4.5, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5.5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6.5, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"matrix": [5, 8], "x": 10.75, "y": 0},
|
||||
{"matrix": [5, 9], "x": 11.75, "y": 0},
|
||||
{"matrix": [5, 10], "x": 12.75, "y": 0},
|
||||
{"matrix": [5, 11], "x": 13.75, "y": 0},
|
||||
{"matrix": [5, 12], "x": 14.75, "y": 0},
|
||||
{"matrix": [5, 13], "x": 15.75, "y": 0},
|
||||
{"matrix": [5, 14], "x": 16.75, "y": 0},
|
||||
{"matrix": [5, 15], "x": 17.75, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 3, "y": 1},
|
||||
{"matrix": [1, 3], "x": 4, "y": 1},
|
||||
{"matrix": [1, 4], "x": 5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 6, "y": 1},
|
||||
{"matrix": [1, 6], "x": 7, "y": 1},
|
||||
{"matrix": [1, 7], "x": 8, "y": 1},
|
||||
{"matrix": [6, 8], "x": 10.25, "y": 1},
|
||||
{"matrix": [6, 9], "x": 11.25, "y": 1},
|
||||
{"matrix": [6, 10], "x": 12.25, "y": 1},
|
||||
{"matrix": [6, 11], "x": 13.25, "y": 1},
|
||||
{"matrix": [6, 12], "x": 14.25, "y": 1},
|
||||
{"matrix": [6, 13], "x": 15.25, "y": 1},
|
||||
{"matrix": [6, 14], "x": 16.25, "y": 1},
|
||||
{"matrix": [6, 15], "x": 17.25, "y": 1, "w": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 3.25, "y": 2},
|
||||
{"matrix": [2, 3], "x": 4.25, "y": 2},
|
||||
{"matrix": [2, 4], "x": 5.25, "y": 2},
|
||||
{"matrix": [2, 5], "x": 6.25, "y": 2},
|
||||
{"matrix": [2, 6], "x": 7.25, "y": 2},
|
||||
{"matrix": [7, 8], "x": 10.5, "y": 2},
|
||||
{"matrix": [7, 9], "x": 11.5, "y": 2},
|
||||
{"matrix": [7, 10], "x": 12.5, "y": 2},
|
||||
{"matrix": [7, 11], "x": 13.5, "y": 2},
|
||||
{"matrix": [7, 12], "x": 14.5, "y": 2},
|
||||
{"matrix": [7, 13], "x": 15.5, "y": 2},
|
||||
{"matrix": [7, 15], "x": 16.5, "y": 2, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 3.75, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.75, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.75, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.75, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.75, "y": 3},
|
||||
{"matrix": [8, 8], "x": 10, "y": 3},
|
||||
{"matrix": [8, 9], "x": 11, "y": 3},
|
||||
{"matrix": [8, 10], "x": 12, "y": 3},
|
||||
{"matrix": [8, 11], "x": 13, "y": 3},
|
||||
{"matrix": [8, 12], "x": 14, "y": 3},
|
||||
{"matrix": [8, 13], "x": 15, "y": 3},
|
||||
{"matrix": [8, 14], "x": 16, "y": 3, "w": 1.75},
|
||||
{"matrix": [8, 15], "x": 17.75, "y": 3},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 5], "x": 6, "y": 4, "w": 2.25},
|
||||
{"matrix": [4, 6], "x": 8.25, "y": 4},
|
||||
{"matrix": [9, 9], "x": 10, "y": 4, "w": 2.75},
|
||||
{"matrix": [9, 11], "x": 12.75, "y": 4, "w": 1.5},
|
||||
{"matrix": [9, 15], "x": 17.25, "y": 4, "w": 1.5}
|
||||
]
|
||||
},
|
||||
"LAYOUT_arrow_split_bs": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"matrix": [0, 1], "x": 1.5, "y": 0},
|
||||
{"matrix": [0, 2], "x": 2.5, "y": 0},
|
||||
{"matrix": [0, 3], "x": 3.5, "y": 0},
|
||||
{"matrix": [0, 4], "x": 4.5, "y": 0},
|
||||
{"matrix": [0, 5], "x": 5.5, "y": 0},
|
||||
{"matrix": [0, 6], "x": 6.5, "y": 0},
|
||||
{"matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"matrix": [5, 8], "x": 10.75, "y": 0},
|
||||
{"matrix": [5, 9], "x": 11.75, "y": 0},
|
||||
{"matrix": [5, 10], "x": 12.75, "y": 0},
|
||||
{"matrix": [5, 11], "x": 13.75, "y": 0},
|
||||
{"matrix": [5, 12], "x": 14.75, "y": 0},
|
||||
{"matrix": [5, 13], "x": 15.75, "y": 0},
|
||||
{"matrix": [5, 14], "x": 16.75, "y": 0},
|
||||
{"matrix": [5, 15], "x": 17.75, "y": 0},
|
||||
{"matrix": [1, 0], "x": 0, "y": 1},
|
||||
{"matrix": [1, 1], "x": 1.5, "y": 1, "w": 1.5},
|
||||
{"matrix": [1, 2], "x": 3, "y": 1},
|
||||
{"matrix": [1, 3], "x": 4, "y": 1},
|
||||
{"matrix": [1, 4], "x": 5, "y": 1},
|
||||
{"matrix": [1, 5], "x": 6, "y": 1},
|
||||
{"matrix": [1, 6], "x": 7, "y": 1},
|
||||
{"matrix": [1, 7], "x": 8, "y": 1},
|
||||
{"matrix": [6, 8], "x": 10.25, "y": 1},
|
||||
{"matrix": [6, 9], "x": 11.25, "y": 1},
|
||||
{"matrix": [6, 10], "x": 12.25, "y": 1},
|
||||
{"matrix": [6, 11], "x": 13.25, "y": 1},
|
||||
{"matrix": [6, 12], "x": 14.25, "y": 1},
|
||||
{"matrix": [6, 13], "x": 15.25, "y": 1},
|
||||
{"matrix": [6, 14], "x": 16.25, "y": 1},
|
||||
{"matrix": [6, 15], "x": 17.25, "y": 1, "w": 1.5},
|
||||
{"matrix": [2, 0], "x": 0, "y": 2},
|
||||
{"matrix": [2, 1], "x": 1.5, "y": 2, "w": 1.75},
|
||||
{"matrix": [2, 2], "x": 3.25, "y": 2},
|
||||
{"matrix": [2, 3], "x": 4.25, "y": 2},
|
||||
{"matrix": [2, 4], "x": 5.25, "y": 2},
|
||||
{"matrix": [2, 5], "x": 6.25, "y": 2},
|
||||
{"matrix": [2, 6], "x": 7.25, "y": 2},
|
||||
{"matrix": [7, 8], "x": 10.5, "y": 2},
|
||||
{"matrix": [7, 9], "x": 11.5, "y": 2},
|
||||
{"matrix": [7, 10], "x": 12.5, "y": 2},
|
||||
{"matrix": [7, 11], "x": 13.5, "y": 2},
|
||||
{"matrix": [7, 12], "x": 14.5, "y": 2},
|
||||
{"matrix": [7, 13], "x": 15.5, "y": 2},
|
||||
{"matrix": [7, 15], "x": 16.5, "y": 2, "w": 2.25},
|
||||
{"matrix": [3, 1], "x": 1.5, "y": 3, "w": 2.25},
|
||||
{"matrix": [3, 2], "x": 3.75, "y": 3},
|
||||
{"matrix": [3, 3], "x": 4.75, "y": 3},
|
||||
{"matrix": [3, 4], "x": 5.75, "y": 3},
|
||||
{"matrix": [3, 5], "x": 6.75, "y": 3},
|
||||
{"matrix": [3, 6], "x": 7.75, "y": 3},
|
||||
{"matrix": [8, 8], "x": 10, "y": 3},
|
||||
{"matrix": [8, 9], "x": 11, "y": 3},
|
||||
{"matrix": [8, 10], "x": 12, "y": 3},
|
||||
{"matrix": [8, 11], "x": 13, "y": 3},
|
||||
{"matrix": [8, 12], "x": 14, "y": 3},
|
||||
{"matrix": [8, 13], "x": 15, "y": 3},
|
||||
{"matrix": [8, 14], "x": 16, "y": 3},
|
||||
{"matrix": [8, 15], "x": 17, "y": 3, "w": 1.75},
|
||||
{"matrix": [4, 1], "x": 1.5, "y": 4},
|
||||
{"matrix": [4, 3], "x": 4.5, "y": 4, "w": 1.5},
|
||||
{"matrix": [4, 5], "x": 6, "y": 4, "w": 2.25},
|
||||
{"matrix": [4, 6], "x": 8.25, "y": 4},
|
||||
{"matrix": [9, 9], "x": 10, "y": 4, "w": 2.75},
|
||||
{"matrix": [9, 11], "x": 12.75, "y": 4, "w": 1.5},
|
||||
{"matrix": [9, 13], "x": 15, "y": 4},
|
||||
{"matrix": [9, 14], "x": 16, "y": 4},
|
||||
{"matrix": [9, 15], "x": 17, "y": 4}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
23
keyboards/era/sirind/klein_hs/keymaps/default/keymap.c
Normal file
23
keyboards/era/sirind/klein_hs/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,23 @@
|
||||
// Copyright 2018-2022 QMK (@qmk)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#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_BSPC, KC_BSPC,
|
||||
KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, 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_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, 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_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
23
keyboards/era/sirind/klein_hs/keymaps/via/keymap.c
Normal file
23
keyboards/era/sirind/klein_hs/keymaps/via/keymap.c
Normal file
@@ -0,0 +1,23 @@
|
||||
// Copyright 2018-2022 QMK (@qmk)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#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_BSPC, KC_BSPC,
|
||||
KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, 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_LALT, KC_SPC, MO(1), KC_SPC, KC_RALT, KC_LEFT, KC_DOWN, 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_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
||||
1
keyboards/era/sirind/klein_hs/keymaps/via/rules.mk
Normal file
1
keyboards/era/sirind/klein_hs/keymaps/via/rules.mk
Normal file
@@ -0,0 +1 @@
|
||||
VIA_ENABLE = yes
|
||||
22
keyboards/era/sirind/klein_hs/mcuconf.h
Normal file
22
keyboards/era/sirind/klein_hs/mcuconf.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/* Copyright 2023 eerraa
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef RP_PWM_USE_PWM7
|
||||
#define RP_PWM_USE_PWM7 TRUE
|
||||
23
keyboards/era/sirind/klein_hs/readme.md
Normal file
23
keyboards/era/sirind/klein_hs/readme.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# Mont Cervin Klein
|
||||
|
||||
* Keyboard Maintainer: [ERA](https://github.com/eerraa)
|
||||
* Hardware supported: SIRIND Klein_HS
|
||||
* Hardware availability: [Syryan](https://srind.mysoho.com/)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make era/sirind/klein_hs:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make era/sirind/klein_hs: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 ESC(0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
|
||||
* **Physical reset button**: Briefly short the `RESET` and `GND` pads on the SWD header twice, or short the `BOOT` header and plug in keyboard
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
||||
0
keyboards/era/sirind/klein_hs/rules.mk
Normal file
0
keyboards/era/sirind/klein_hs/rules.mk
Normal file
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user