1
0

Compare commits

...

50 Commits

Author SHA1 Message Date
Michael Büchler
4d994458f0 Document the RP2040-specific PS/2 implementation (#22079)
Co-authored-by: Dasky <32983009+daskygit@users.noreply.github.com>
2023-09-25 13:00:13 +10:00
Andrew Kannan
c10a46aa43 Add is0gr to QMK (#22024)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
2023-09-25 12:59:38 +10:00
Duncan Sutherland
e3cbd8a965 amend 75_(ansi|iso) community_layouts in keyboards/ (#21837) 2023-09-25 12:57:18 +10:00
Duncan Sutherland
2181da4b72 amend split_* community_layouts in keyboards (#21847) 2023-09-25 12:56:33 +10:00
plaublin
131bc92b77 Fix variable misspelling (#21774) 2023-09-25 12:32:50 +10:00
Ben Cooper
4ebb065f94 Fix combo_ref_from_layer respect different default layer [#21780] (#21781) 2023-09-25 12:32:20 +10:00
DeskDaily
9d3c0018c1 Added Wyvern Hotswap by BredWorks (#21141)
Co-authored-by: Neil Brian Ramirez <nightlykeyboards@gmail.com>
Co-authored-by: Neil Brian Ramirez <nightlyboards@gmail.com>
2023-09-25 12:28:48 +10:00
T.A
133be8759a included keyboard.h. To use is_keyboard_master with a split with an i… (#21571)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: tokky <tokky@localhost-live.attlocal.net>
2023-09-25 12:24:57 +10:00
Nick Brassel
9b429bd12d Revert "Update feature_rgblight.md" (#22132) 2023-09-25 11:50:35 +10:00
Tom singleton
ee4e22d5ea Update feature_rgblight.md (#21483) 2023-09-25 11:43:55 +10:00
James Young
f8884640b0 YMDK Melody96 Matrix Touch-Up (#22113)
* Correct layout/matrix diagram

Correct swapped designations for ANSI Backslash and ANSI Enter keys.

[docs]

* Correct matrix data

Correct the matrix data for:

  - `LAYOUT_all`
  - `LAYOUT_96_ansi`
  - `LAYOUT_96_ansi_splitbs`

which all had the matrix positions for ANSI Backslash and ANSI Enter swapped.

[bugfix]

* Implement `LAYOUT_hotswap` directly

Implement `LAYOUT_hotswap` as its own layout, instead of aliasing it to
`LAYOUT_96_ansi`.

[bugfix]

* Specify primary support for Soldered PCBs

Current version of codebase primarily supports Soldered PCBs.

[enhancement] [docs]
2023-09-24 00:57:08 -07:00
Shandon Anderson
26b2288bde [Keyboard] Enable RGB_TEST animation on riot_pad (#22118)
Co-authored-by: ShandonCodes <shandon@shandon.codes>
2023-09-23 13:22:44 -07:00
Ethan Perry
c0d7a43637 Add Jank RP2040 Dactyl (#21973)
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-09-23 01:34:22 -07:00
lendunistus
bd2a33fe77 Add reminder about format-json to PR Checklist (#22055) 2023-09-23 01:18:11 -07:00
James Young
9a5b631ed6 GMMK2 96% ISO: Correct layout data (#22101) 2023-09-22 23:17:15 -07:00
era
7f2f15bc1a [Keyboard] Add SIRIND Klein (#21951)
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: jack <0x6a73@protonmail.com>
2023-09-22 22:46:13 -07:00
Daniel Osipishin
4590b808da add subrezon/lancer keyboard (#20792)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Daniel Osipishin <danielos@retarus.de>
2023-09-22 22:10:35 -07:00
Duncan Sutherland
ef214e6a3c Add 'dactyl_tracer' keyboard (#20993)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-22 21:45:34 -07:00
Nick Brassel
73ffa4594d Fix up qmk mass-compile makefile indenting. (#22115) 2023-09-23 13:07:38 +10:00
James Young
e001c3349b Shoc: physically arrange keymaps/layout macro (#22100) 2023-09-22 19:55:25 -07:00
Ryan Neff
d49edbcf14 Added OLED SSD1306 128x64 to the verified working table (#22112) 2023-09-23 12:18:37 +10:00
James Young
5cc5270aaf Royal Kludge RK G68 Community Layout Support (#22103)
* Rename `LAYOUT` to `LAYOUT_65_ansi`

[refactor]

* Enable Community Layout support

[enhancement]

* Touch-up keymaps

- fix keycode grid alignment

[style]

* Touch-up readme

- link to maintainer's GitHub profile
- specify codebase is for RGB version of RK G68
- update Hardware Availability links

[docs]
2023-09-22 15:59:41 -07:00
Nick Brassel
abd432fd7a Allow for qmk compile -kb all. (#22022) 2023-09-22 12:12:20 +10:00
Apteryks
a26e1c8b63 keymaps: Fix hacker_dvorak build. (#22102) 2023-09-21 11:17:38 -06:00
dztech
8c52bab930 add odinmini layout (#21983)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-20 23:01:55 -07:00
dztech
dc2315ad85 add dz60v2 keyboard (#21862)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-20 23:01:38 -07:00
lalalademaxiya1
363dee82d8 Keychron q9 plus (#21399)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
2023-09-20 22:45:36 -07:00
Charles Strahan
5858efd6c9 kimiko: mirror encoder pins between halves (#21728) 2023-09-21 06:23:18 +01:00
James Young
e91bf4583f Quarkeys Studio Z67 Hotswap Community Layout Support (#22096) 2023-09-20 22:16:22 -07:00
James Young
f543a44836 Quarkeys Studio Z67 Solder Community Layout Support (#22095) 2023-09-20 22:15:45 -07:00
Poring
4ec3e239ba [Keyboard] Add QCK-75 (#21180)
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
2023-09-20 20:45:29 -07:00
Duncan Sutherland
e56ea60058 amend 68_(ansi|iso) community_layouts in keyboards/ (#21835) 2023-09-20 20:02:32 -07:00
Joy Lee
4520a584e4 [Keyboard] Add rpk-001 keyboard (#21042)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: Joy <chang.li@westberrytech.com>
2023-09-20 19:38:20 -07:00
temp4gh
b5b900200f Add funtions of Encoder and VIA for redragon/k667 (#21917)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
Co-authored-by: jack <0x6a73@protonmail.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: syc <squall_sha@163.com>
2023-09-20 19:36:40 -07:00
Joe Scotto
3d1b9e98a4 Add ScottoLong Keyboard (#20938)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-20 19:34:16 -07:00
Joe Scotto
e55220dbe0 Add ScottoMacrodeck Macropad (#20946)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-20 19:33:57 -07:00
Joe Scotto
9b69921491 Add ScottoFly Keyboard (#20939)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-20 19:33:27 -07:00
Joe Scotto
1c62cb7b42 Add ScottoMouse Handwired Macropad (#21074)
Co-authored-by: Joel Challis <git@zvecr.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>
2023-09-20 19:32:45 -07:00
Joe Scotto
4629d6a671 Add ScottoSlant Keyboard (#20942)
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-20 19:31:16 -07:00
Duncan Sutherland
6dc482b197 apply 66_(ansi|iso) to keyboards (#21834) 2023-09-20 19:14:00 -07:00
Dan Ford
22c576b40b [Keyboard] add Quokka keyboard (#20979)
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
2023-09-20 19:11:24 -07:00
peepeetee
fffea62005 [Keyboard] Momokai Aurora (#20419)
Co-authored-by: Albert Y <76888457+filterpaper@users.noreply.github.com>
Co-authored-by: Ryan <fauxpark@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: Joel Challis <git@zvecr.com>
2023-09-20 19:03:32 -07:00
Joel Challis
cdff9b8da7 Restrict "feature" and "animation" keys (#21895) 2023-09-20 14:13:51 +01:00
Duncan Sutherland
16ad362e67 amend 96_(ansi|iso) community_layouts in keyboards/ (#22066) 2023-09-20 03:38:36 -07:00
James Young
05dfe9f9c5 Alchemist Keyboards OGRN Layout Addition (#22080)
* Add layout/matrix diagram

[docs]

* Friendly-format `info.json`

[style]

* Add `LAYOUT_ortho_5x4`

[enhancement]

* Touch-up keymaps

- update grid-alignment (layer-to-layer consistency)
- fix box drawings

[style]

* Extend Community Layout support

Add `ortho_5x4` to supported Community Layouts.

[enhancement]
2023-09-19 23:35:37 -07:00
James Young
2742935c54 SapuSeven MacroPad12: rename LAYOUT to LAYOUT_ortho_3x4 (#22081) 2023-09-20 00:42:12 +01:00
Deddia Permana
8c92c0a59d Add OLED logo DP3000 macropad (#21936) 2023-09-19 17:08:58 -06:00
James Young
4ce3a1c1e9 Ubest VN Community Layout Support (#22070)
* Add layout/matrix diagram

[docs]

* Rename `LAYOUT` to `LAYOUT_all`

[refactor]

* Add `LAYOUT_65_ansi_split_bs`

[enhancement]

* Add `LAYOUT_65_ansi`

[enhancement]

* Add `LAYOUT_65_iso_split_bs`

[enhancement]

* Add `LAYOUT_65_iso`

[enhancement]

* Enable Community Layout support

[enhancement]

* Touch-up keymaps

- apply four-space indent
- grid-align keycodes

[style]
2023-09-19 15:08:09 -07:00
James Young
56a87efbac DZTech Pluto Community Layout support (#22069)
* Add layout/matrix diagram

[docs]

* Friendly-format `info.json`

- apply four-space indent
- sort JSON keys in layout objects

[style]

* Correct `LAYOUT_all` data

Correct key sizes/positions of:

- ANSI Backslash [1, 13]
- ANSI Enter [1, 14]
- Fn [3, 13]

[chore]

* Correct `LAYOUT_iso` data

Correct position of Fn key [3, 13].

[chore]

* Add `LAYOUT_tkl_nofrow_ansi_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi_tsangan_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi_tsangan`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi_wkl_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_ansi_wkl`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso_tsangan_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso_tsangan`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso_wkl_split_bs_rshift`

[enhancement]

* Add `LAYOUT_tkl_nofrow_iso_wkl`

[enhancement]

* Enable Community Layout support

[enhancement]

* Touch-up keymaps

Update keycode grid alignment.

[style]
2023-09-19 14:32:16 -07:00
Shandon Anderson
ef31109ad2 [Keyboard] Add riot pad (#22060)
Co-authored-by: ShandonCodes <shandon@shandon.codes>
2023-09-18 18:00:11 -07:00
230 changed files with 13013 additions and 715 deletions

View File

@@ -29,6 +29,10 @@
"minLength": 1,
"maxLength": 250
},
"snake_case": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]*$"
},
"layout_macro": {
"oneOf": [
{

View File

@@ -256,7 +256,11 @@
"enabled": {"type": "boolean"}
}
},
"features": {"$ref": "qmk.definitions.v1#/boolean_array"},
"features": {
"$ref": "qmk.definitions.v1#/boolean_array",
"propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" }
},
"indicators": {
"type": "object",
"properties": {
@@ -370,6 +374,7 @@
"properties": {
"animations": {
"type": "object",
"propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" }
"additionalProperties": {
"type": "boolean"
}
@@ -419,6 +424,7 @@
"properties": {
"animations": {
"type": "object",
"propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" }
"additionalProperties": {
"type": "boolean"
}
@@ -471,6 +477,7 @@
"properties": {
"animations": {
"type": "object",
"propertyNames": { "$ref": "qmk.definitions.v1#/snake_case" }
"additionalProperties": {
"type": "boolean"
}

View File

@@ -10,6 +10,7 @@ Tested combinations:
|SSD1306 |128x32 |AVR |Primary support |
|SSD1306 |128x64 |AVR |Verified working |
|SSD1306 |128x32 |Arm | |
|SSD1306 |128x64 |Arm |Verified working |
|SH1106 |128x64 |AVR |No scrolling |
|SH1107 |64x128 |AVR |No scrolling |
|SH1107 |64x128 |Arm |No scrolling |

View File

@@ -155,6 +155,29 @@ In your keyboard config.h:
#endif
```
### RP2040 PIO Version :id=rp2040-pio-version
The `PIO` subsystem is a Raspberry Pi RP2040 specific implementation, using the integrated PIO peripheral and is therefore only available on this MCU.
There are strict requirements for pin ordering but any pair of GPIO pins can be used. The GPIO used for clock must be directly after data, see the included info.json snippet for an example of correct order.
You may optionally switch the PIO peripheral used with the following define in config.h:
```c
#define PS2_PIO_USE_PIO1 // Force the usage of PIO1 peripheral, by default the PS2 implementation uses the PIO0 peripheral
```
Example info.json content:
```json
"ps2": {
"clock_pin": "GP1",
"data_pin": "GP0",
"driver": "vendor",
"enabled": true,
"mouse_enabled": true
}
```
## Additional Settings :id=additional-settings
### PS/2 Mouse Features :id=ps2-mouse-features

View File

@@ -80,6 +80,7 @@ https://github.com/qmk/qmk_firmware/pulls?q=is%3Apr+is%3Aclosed+label%3Akeyboard
- Encoder Configuration
- Bootmagic Configuration
- LED Indicator Configuration
- Run `qmk format-json` on this file before submitting your PR. Be sure to append the `-i` flag to directly modify the file, or paste the outputted code into the file.
- `readme.md`
- must follow the [template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md)
- flash command is present, and has `:flash` at end

View File

@@ -19,6 +19,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# include "spi_master.h"
#elif defined(OLED_TRANSPORT_I2C)
# include "i2c_master.h"
# if defined(USE_I2C) && defined(SPLIT_KEYBOARD)
# include "keyboard.h"
# endif
#endif
#include "oled_driver.h"
#include OLED_FONT_H

View File

@@ -30,29 +30,62 @@
"pid": "0x4F4E",
"vid": "0x414B"
},
"community_layouts": [
"numpad_5x4"
],
"community_layouts": [
"ortho_5x4",
"numpad_5x4"
],
"layouts": {
"LAYOUT_ortho_5x4": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [3, 3], "x": 3, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4},
{"matrix": [4, 1], "x": 1, "y": 4},
{"matrix": [4, 2], "x": 2, "y": 4},
{"matrix": [4, 3], "x": 3, "y": 4}
]
},
"LAYOUT_numpad_5x4": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"h": 2, "matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1, "h": 2},
{"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [4, 0], "w": 2, "x": 0, "y": 4},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 2},
{"matrix": [4, 2], "x": 2, "y": 4},
{"h": 2, "matrix": [3, 3], "x": 3, "y": 3}
{"matrix": [3, 3], "x": 3, "y": 3, "h": 2}
]
}
}

View File

@@ -6,7 +6,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* ┌───┬───┬───┬───┐
* │TG1│ / │ * │ - │
* │NUM│ / │ * │ - │
* ├───┼───┼───┼───┤
* │ 7 │ 8 │ 9 │ │
* ├───┼───┼───┤ + │
@@ -22,21 +22,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_P7, KC_P8, KC_P9,
KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_P1, KC_P2, KC_P3,
KC_P0, KC_PDOT, KC_PENT
KC_P0, KC_PDOT, KC_PENT
),
/*
* ┌───┬───┬───┬───┐
* │TG1│ / │ * │ - │
* ────────────┤
* │NUM│ / │ * │ - │
* ────────────┤
* │Hom│ ↑ │PgU│ │
* ├───┼───┼───┤ + │
* │ ← │ │ → │ │
* ├───┼───┼──────┤
* ├───┼───┼──────┤
* │End│ ↓ │PgD│ │
* ├───┴───┼───┤Ent│
* │Insert │Del│ │
* └───────┴──────┘
* └───────┴──────┘
*/
[1] = LAYOUT_numpad_5x4(
_______, _______, _______, _______,

View File

@@ -22,21 +22,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_P7, KC_P8, KC_P9,
KC_P4, KC_P5, KC_P6, KC_PPLS,
KC_P1, KC_P2, KC_P3,
KC_P0, KC_PDOT, KC_PENT
KC_P0, KC_PDOT, KC_PENT
),
/*
* ┌───┬───┬───┬───┐
* │ │ / │ * │ - │
* ────────────┤
* │NUM│ / │ * │ - │
* ────────────┤
* │Hom│ ↑ │PgU│ │
* ├───┼───┼───┤ + │
* │ ← │ │ → │ │
* ├───┼───┼──────┤
* ├───┼───┼──────┤
* │End│ ↓ │PgD│ │
* ├───┴───┼───┤Ent│
* │Insert │Del│ │
* └───────┴──────┘
* └───────┴──────┘
*/
[1] = LAYOUT_numpad_5x4(
_______, _______, _______, _______,

View File

@@ -0,0 +1,18 @@
# Matrix Diagram for Alchemist Keyboards OGRN
```
┌───┬───┬───┬───┐
│00 │01 │02 │03 │
┌───┐ ├───┼───┼───┼───┤ ┌───┐
│ │ │10 │11 │12 │13 │ │ │
│10 │ ├───┼───┼───┼───┤ │13 │ 2u Numpad Plus
│ │ │20 │21 │22 │23 │ │ │
├───┤ ├───┼───┼───┼───┤ ├───┤
│ │ │30 │31 │32 │33 │ │ │
│30 │ ├───┼───┼───┼───┤ │33 │ 2u Numpad Enter
│ │ │40 │41 │42 │43 │ │ │
└───┘ └───┴───┴───┴───┘ └───┘
┌───────┬───────┐
│41 │42 │
└───────┴───────┘
```

View File

@@ -23,6 +23,7 @@
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
},
"community_layouts": ["75_ansi", "75_iso"],
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -118,6 +119,99 @@
{"matrix": [5, 14], "x": 15, "y": 5}
]
},
"LAYOUT_75_ansi": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [5, 8], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [1, 5], "x": 5, "y": 1},
{"matrix": [1, 6], "x": 6, "y": 1},
{"matrix": [1, 7], "x": 7, "y": 1},
{"matrix": [1, 8], "x": 8, "y": 1},
{"matrix": [1, 9], "x": 9, "y": 1},
{"matrix": [1, 10], "x": 10, "y": 1},
{"matrix": [1, 11], "x": 11, "y": 1},
{"matrix": [1, 12], "x": 12, "y": 1},
{"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
{"matrix": [1, 14], "x": 15, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 2},
{"matrix": [2, 2], "x": 2.5, "y": 2},
{"matrix": [2, 3], "x": 3.5, "y": 2},
{"matrix": [2, 4], "x": 4.5, "y": 2},
{"matrix": [2, 5], "x": 5.5, "y": 2},
{"matrix": [2, 6], "x": 6.5, "y": 2},
{"matrix": [2, 7], "x": 7.5, "y": 2},
{"matrix": [2, 8], "x": 8.5, "y": 2},
{"matrix": [2, 9], "x": 9.5, "y": 2},
{"matrix": [2, 10], "x": 10.5, "y": 2},
{"matrix": [2, 11], "x": 11.5, "y": 2},
{"matrix": [2, 12], "x": 12.5, "y": 2},
{"matrix": [2, 13], "x": 13.5, "y": 2, "w": 1.5},
{"matrix": [2, 14], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 3},
{"matrix": [3, 2], "x": 2.75, "y": 3},
{"matrix": [3, 3], "x": 3.75, "y": 3},
{"matrix": [3, 4], "x": 4.75, "y": 3},
{"matrix": [3, 5], "x": 5.75, "y": 3},
{"matrix": [3, 6], "x": 6.75, "y": 3},
{"matrix": [3, 7], "x": 7.75, "y": 3},
{"matrix": [3, 8], "x": 8.75, "y": 3},
{"matrix": [3, 9], "x": 9.75, "y": 3},
{"matrix": [3, 10], "x": 10.75, "y": 3},
{"matrix": [3, 11], "x": 11.75, "y": 3},
{"matrix": [3, 13], "x": 12.75, "y": 3, "w": 2.25},
{"matrix": [3, 14], "x": 15, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 2.25},
{"matrix": [4, 2], "x": 2.25, "y": 4},
{"matrix": [4, 3], "x": 3.25, "y": 4},
{"matrix": [4, 4], "x": 4.25, "y": 4},
{"matrix": [4, 5], "x": 5.25, "y": 4},
{"matrix": [4, 6], "x": 6.25, "y": 4},
{"matrix": [4, 7], "x": 7.25, "y": 4},
{"matrix": [4, 8], "x": 8.25, "y": 4},
{"matrix": [4, 9], "x": 9.25, "y": 4},
{"matrix": [4, 10], "x": 10.25, "y": 4},
{"matrix": [4, 11], "x": 11.25, "y": 4},
{"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75},
{"matrix": [4, 13], "x": 14, "y": 4},
{"matrix": [4, 14], "x": 15, "y": 4},
{"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
{"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25},
{"matrix": [5, 9], "x": 10, "y": 5},
{"matrix": [5, 10], "x": 11, "y": 5},
{"matrix": [5, 11], "x": 12, "y": 5},
{"matrix": [5, 12], "x": 13, "y": 5},
{"matrix": [5, 13], "x": 14, "y": 5},
{"matrix": [5, 14], "x": 15, "y": 5}
]
},
"LAYOUT_75_ansi_rwkl": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
@@ -210,6 +304,100 @@
{"matrix": [5, 14], "x": 15, "y": 5}
]
},
"LAYOUT_75_iso": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [5, 8], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [1, 5], "x": 5, "y": 1},
{"matrix": [1, 6], "x": 6, "y": 1},
{"matrix": [1, 7], "x": 7, "y": 1},
{"matrix": [1, 8], "x": 8, "y": 1},
{"matrix": [1, 9], "x": 9, "y": 1},
{"matrix": [1, 10], "x": 10, "y": 1},
{"matrix": [1, 11], "x": 11, "y": 1},
{"matrix": [1, 12], "x": 12, "y": 1},
{"matrix": [1, 13], "x": 13, "y": 1, "w": 2},
{"matrix": [1, 14], "x": 15, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 2},
{"matrix": [2, 2], "x": 2.5, "y": 2},
{"matrix": [2, 3], "x": 3.5, "y": 2},
{"matrix": [2, 4], "x": 4.5, "y": 2},
{"matrix": [2, 5], "x": 5.5, "y": 2},
{"matrix": [2, 6], "x": 6.5, "y": 2},
{"matrix": [2, 7], "x": 7.5, "y": 2},
{"matrix": [2, 8], "x": 8.5, "y": 2},
{"matrix": [2, 9], "x": 9.5, "y": 2},
{"matrix": [2, 10], "x": 10.5, "y": 2},
{"matrix": [2, 11], "x": 11.5, "y": 2},
{"matrix": [2, 12], "x": 12.5, "y": 2},
{"matrix": [2, 14], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 3},
{"matrix": [3, 2], "x": 2.75, "y": 3},
{"matrix": [3, 3], "x": 3.75, "y": 3},
{"matrix": [3, 4], "x": 4.75, "y": 3},
{"matrix": [3, 5], "x": 5.75, "y": 3},
{"matrix": [3, 6], "x": 6.75, "y": 3},
{"matrix": [3, 7], "x": 7.75, "y": 3},
{"matrix": [3, 8], "x": 8.75, "y": 3},
{"matrix": [3, 9], "x": 9.75, "y": 3},
{"matrix": [3, 10], "x": 10.75, "y": 3},
{"matrix": [3, 11], "x": 11.75, "y": 3},
{"matrix": [3, 12], "x": 12.75, "y": 3},
{"matrix": [3, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2},
{"matrix": [3, 14], "x": 15, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4},
{"matrix": [4, 2], "x": 2.25, "y": 4},
{"matrix": [4, 3], "x": 3.25, "y": 4},
{"matrix": [4, 4], "x": 4.25, "y": 4},
{"matrix": [4, 5], "x": 5.25, "y": 4},
{"matrix": [4, 6], "x": 6.25, "y": 4},
{"matrix": [4, 7], "x": 7.25, "y": 4},
{"matrix": [4, 8], "x": 8.25, "y": 4},
{"matrix": [4, 9], "x": 9.25, "y": 4},
{"matrix": [4, 10], "x": 10.25, "y": 4},
{"matrix": [4, 11], "x": 11.25, "y": 4},
{"matrix": [4, 12], "x": 12.25, "y": 4, "w": 1.75},
{"matrix": [4, 13], "x": 14, "y": 4},
{"matrix": [4, 14], "x": 15, "y": 4},
{"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
{"matrix": [5, 5], "x": 3.75, "y": 5, "w": 6.25},
{"matrix": [5, 9], "x": 10, "y": 5},
{"matrix": [5, 10], "x": 11, "y": 5},
{"matrix": [5, 11], "x": 12, "y": 5},
{"matrix": [5, 12], "x": 13, "y": 5},
{"matrix": [5, 13], "x": 14, "y": 5},
{"matrix": [5, 14], "x": 15, "y": 5}
]
},
"LAYOUT_75_iso_rwkl": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},

View File

@@ -0,0 +1,308 @@
{
"manufacturer": "Bred Works",
"keyboard_name": "Wyvern HS",
"maintainer": "DeskDaily",
"bootloader": "atmel-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["B3", "B2", "B1", "B0", "F7", "D5", "D3", "D2", "D1", "D0", "E6", "F0", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4"],
"rows": ["B7", "F1", "F6", "F5", "F4"]
},
"processor": "atmega32u4",
"url": "https://bredworks.com/products/wyvern-hotswap-pcb",
"usb": {
"device_version": "0.0.1",
"pid": "0x0001",
"vid": "0x0571"
},
"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.25, "y": 0},
{"matrix": [0, 5], "x": 5.25, "y": 0},
{"matrix": [0, 6], "x": 6.25, "y": 0},
{"matrix": [0, 7], "x": 7.25, "y": 0},
{"matrix": [0, 8], "x": 8.25, "y": 0},
{"matrix": [0, 9], "x": 9.25, "y": 0},
{"matrix": [0, 10], "x": 10.25, "y": 0},
{"matrix": [0, 11], "x": 11.25, "y": 0},
{"matrix": [0, 12], "x": 12.25, "y": 0},
{"matrix": [0, 13], "x": 13.25, "y": 0},
{"matrix": [0, 14], "x": 14.25, "y": 0},
{"matrix": [0, 15], "x": 15.25, "y": 0},
{"matrix": [0, 16], "x": 16.25, "y": 0},
{"matrix": [0, 17], "x": 17.25, "y": 0},
{"matrix": [0, 19], "x": 19.75, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4.25, "y": 1, "w": 1.5},
{"matrix": [1, 5], "x": 5.75, "y": 1},
{"matrix": [1, 6], "x": 6.75, "y": 1},
{"matrix": [1, 7], "x": 7.75, "y": 1},
{"matrix": [1, 8], "x": 8.75, "y": 1},
{"matrix": [1, 9], "x": 9.75, "y": 1},
{"matrix": [1, 10], "x": 10.75, "y": 1},
{"matrix": [1, 11], "x": 11.75, "y": 1},
{"matrix": [1, 12], "x": 12.75, "y": 1},
{"matrix": [1, 13], "x": 13.75, "y": 1},
{"matrix": [1, 14], "x": 14.75, "y": 1},
{"matrix": [1, 15], "x": 15.75, "y": 1},
{"matrix": [1, 16], "x": 16.75, "y": 1},
{"matrix": [1, 17], "x": 17.75, "y": 1, "w": 1.5},
{"matrix": [1, 19], "x": 19.75, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4.25, "y": 2, "w": 1.75},
{"matrix": [2, 5], "x": 6, "y": 2},
{"matrix": [2, 6], "x": 7, "y": 2},
{"matrix": [2, 7], "x": 8, "y": 2},
{"matrix": [2, 8], "x": 9, "y": 2},
{"matrix": [2, 9], "x": 10, "y": 2},
{"matrix": [2, 10], "x": 11, "y": 2},
{"matrix": [2, 11], "x": 12, "y": 2},
{"matrix": [2, 12], "x": 13, "y": 2},
{"matrix": [2, 13], "x": 14, "y": 2},
{"matrix": [2, 14], "x": 15, "y": 2},
{"matrix": [2, 15], "x": 16, "y": 2},
{"matrix": [2, 16], "x": 17, "y": 2, "w": 2.25},
{"matrix": [2, 19], "x": 19.75, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "h": 2},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [3, 3], "x": 3, "y": 3, "h": 2},
{"matrix": [3, 4], "x": 4.25, "y": 3, "w": 1.25},
{"matrix": [3, 5], "x": 5.5, "y": 3},
{"matrix": [3, 6], "x": 6.5, "y": 3},
{"matrix": [3, 7], "x": 7.5, "y": 3},
{"matrix": [3, 8], "x": 8.5, "y": 3},
{"matrix": [3, 9], "x": 9.5, "y": 3},
{"matrix": [3, 10], "x": 10.5, "y": 3},
{"matrix": [3, 11], "x": 11.5, "y": 3},
{"matrix": [3, 12], "x": 12.5, "y": 3},
{"matrix": [3, 13], "x": 13.5, "y": 3},
{"matrix": [3, 14], "x": 14.5, "y": 3},
{"matrix": [3, 15], "x": 15.5, "y": 3},
{"matrix": [3, 16], "x": 16.5, "y": 3, "w": 1.75},
{"matrix": [3, 19], "x": 19.75, "y": 3},
{"matrix": [3, 17], "x": 18.5, "y": 3.25},
{"matrix": [4, 1], "x": 1, "y": 4},
{"matrix": [4, 2], "x": 2, "y": 4},
{"matrix": [4, 4], "x": 4.25, "y": 4, "w": 1.25},
{"matrix": [4, 5], "x": 5.5, "y": 4, "w": 1.25},
{"matrix": [4, 6], "x": 6.75, "y": 4, "w": 1.25},
{"matrix": [4, 8], "x": 8, "y": 4, "w": 2.25},
{"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.25},
{"matrix": [4, 12], "x": 11.5, "y": 4, "w": 2.75},
{"matrix": [4, 13], "x": 14.25, "y": 4},
{"matrix": [4, 14], "x": 15.25, "y": 4},
{"matrix": [4, 15], "x": 16.25, "y": 4},
{"matrix": [4, 16], "x": 17.5, "y": 4.25},
{"matrix": [4, 17], "x": 18.5, "y": 4.25},
{"matrix": [4, 18], "x": 19.5, "y": 4.25},
{"matrix": [0, 18], "x": 18.25, "y": 0}
]
},
"LAYOUT_mirrored_numpad": {
"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.25, "y": 0},
{"matrix": [0, 5], "x": 5.25, "y": 0},
{"matrix": [0, 6], "x": 6.25, "y": 0},
{"matrix": [0, 7], "x": 7.25, "y": 0},
{"matrix": [0, 8], "x": 8.25, "y": 0},
{"matrix": [0, 9], "x": 9.25, "y": 0},
{"matrix": [0, 10], "x": 10.25, "y": 0},
{"matrix": [0, 11], "x": 11.25, "y": 0},
{"matrix": [0, 12], "x": 12.25, "y": 0},
{"matrix": [0, 13], "x": 13.25, "y": 0},
{"matrix": [0, 14], "x": 14.25, "y": 0},
{"matrix": [0, 15], "x": 15.25, "y": 0},
{"matrix": [0, 16], "x": 16.25, "y": 0},
{"matrix": [0, 17], "x": 17.25, "y": 0},
{"matrix": [0, 19], "x": 19.75, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "h": 2},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4.25, "y": 1, "w": 1.5},
{"matrix": [1, 5], "x": 5.75, "y": 1},
{"matrix": [1, 6], "x": 6.75, "y": 1},
{"matrix": [1, 7], "x": 7.75, "y": 1},
{"matrix": [1, 8], "x": 8.75, "y": 1},
{"matrix": [1, 9], "x": 9.75, "y": 1},
{"matrix": [1, 10], "x": 10.75, "y": 1},
{"matrix": [1, 11], "x": 11.75, "y": 1},
{"matrix": [1, 12], "x": 12.75, "y": 1},
{"matrix": [1, 13], "x": 13.75, "y": 1},
{"matrix": [1, 14], "x": 14.75, "y": 1},
{"matrix": [1, 15], "x": 15.75, "y": 1},
{"matrix": [1, 16], "x": 16.75, "y": 1},
{"matrix": [1, 17], "x": 17.75, "y": 1, "w": 1.5},
{"matrix": [1, 19], "x": 19.75, "y": 1},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4.25, "y": 2, "w": 1.75},
{"matrix": [2, 5], "x": 6, "y": 2},
{"matrix": [2, 6], "x": 7, "y": 2},
{"matrix": [2, 7], "x": 8, "y": 2},
{"matrix": [2, 8], "x": 9, "y": 2},
{"matrix": [2, 9], "x": 10, "y": 2},
{"matrix": [2, 10], "x": 11, "y": 2},
{"matrix": [2, 11], "x": 12, "y": 2},
{"matrix": [2, 12], "x": 13, "y": 2},
{"matrix": [2, 13], "x": 14, "y": 2},
{"matrix": [2, 14], "x": 15, "y": 2},
{"matrix": [2, 15], "x": 16, "y": 2},
{"matrix": [2, 16], "x": 17, "y": 2, "w": 2.25},
{"matrix": [2, 19], "x": 19.75, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "h": 2},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [3, 3], "x": 3, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3, "w": 1.25},
{"matrix": [3, 5], "x": 5.5, "y": 3},
{"matrix": [3, 6], "x": 6.5, "y": 3},
{"matrix": [3, 7], "x": 7.5, "y": 3},
{"matrix": [3, 8], "x": 8.5, "y": 3},
{"matrix": [3, 9], "x": 9.5, "y": 3},
{"matrix": [3, 10], "x": 10.5, "y": 3},
{"matrix": [3, 11], "x": 11.5, "y": 3},
{"matrix": [3, 12], "x": 12.5, "y": 3},
{"matrix": [3, 13], "x": 13.5, "y": 3},
{"matrix": [3, 14], "x": 14.5, "y": 3},
{"matrix": [3, 15], "x": 15.5, "y": 3},
{"matrix": [3, 16], "x": 16.5, "y": 3, "w": 1.75},
{"matrix": [3, 19], "x": 19.75, "y": 3},
{"matrix": [3, 17], "x": 18.5, "y": 3.25},
{"matrix": [4, 1], "x": 1, "y": 4},
{"matrix": [4, 2], "x": 2, "y": 4, "w": 2},
{"matrix": [4, 4], "x": 4.25, "y": 4, "w": 1.25},
{"matrix": [4, 5], "x": 5.5, "y": 4, "w": 1.25},
{"matrix": [4, 6], "x": 6.75, "y": 4, "w": 1.25},
{"matrix": [4, 8], "x": 8, "y": 4, "w": 2.25},
{"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.25},
{"matrix": [4, 12], "x": 11.5, "y": 4, "w": 2.75},
{"matrix": [4, 13], "x": 14.25, "y": 4},
{"matrix": [4, 14], "x": 15.25, "y": 4},
{"matrix": [4, 15], "x": 16.25, "y": 4},
{"matrix": [4, 16], "x": 17.5, "y": 4.25},
{"matrix": [4, 17], "x": 18.5, "y": 4.25},
{"matrix": [4, 18], "x": 19.5, "y": 4.25},
{"matrix": [0, 18], "x": 18.25, "y": 0}
]
},
"LAYOUT_regular_numpad": {
"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.25, "y": 0},
{"matrix": [0, 5], "x": 5.25, "y": 0},
{"matrix": [0, 6], "x": 6.25, "y": 0},
{"matrix": [0, 7], "x": 7.25, "y": 0},
{"matrix": [0, 8], "x": 8.25, "y": 0},
{"matrix": [0, 9], "x": 9.25, "y": 0},
{"matrix": [0, 10], "x": 10.25, "y": 0},
{"matrix": [0, 11], "x": 11.25, "y": 0},
{"matrix": [0, 12], "x": 12.25, "y": 0},
{"matrix": [0, 13], "x": 13.25, "y": 0},
{"matrix": [0, 14], "x": 14.25, "y": 0},
{"matrix": [0, 15], "x": 15.25, "y": 0},
{"matrix": [0, 16], "x": 16.25, "y": 0},
{"matrix": [0, 17], "x": 17.25, "y": 0},
{"matrix": [0, 19], "x": 19.75, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1, "h": 2},
{"matrix": [1, 4], "x": 4.25, "y": 1, "w": 1.5},
{"matrix": [1, 5], "x": 5.75, "y": 1},
{"matrix": [1, 6], "x": 6.75, "y": 1},
{"matrix": [1, 7], "x": 7.75, "y": 1},
{"matrix": [1, 8], "x": 8.75, "y": 1},
{"matrix": [1, 9], "x": 9.75, "y": 1},
{"matrix": [1, 10], "x": 10.75, "y": 1},
{"matrix": [1, 11], "x": 11.75, "y": 1},
{"matrix": [1, 12], "x": 12.75, "y": 1},
{"matrix": [1, 13], "x": 13.75, "y": 1},
{"matrix": [1, 14], "x": 14.75, "y": 1},
{"matrix": [1, 15], "x": 15.75, "y": 1},
{"matrix": [1, 16], "x": 16.75, "y": 1},
{"matrix": [1, 17], "x": 17.75, "y": 1, "w": 1.5},
{"matrix": [1, 19], "x": 19.75, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 4], "x": 4.25, "y": 2, "w": 1.75},
{"matrix": [2, 5], "x": 6, "y": 2},
{"matrix": [2, 6], "x": 7, "y": 2},
{"matrix": [2, 7], "x": 8, "y": 2},
{"matrix": [2, 8], "x": 9, "y": 2},
{"matrix": [2, 9], "x": 10, "y": 2},
{"matrix": [2, 10], "x": 11, "y": 2},
{"matrix": [2, 11], "x": 12, "y": 2},
{"matrix": [2, 12], "x": 13, "y": 2},
{"matrix": [2, 13], "x": 14, "y": 2},
{"matrix": [2, 14], "x": 15, "y": 2},
{"matrix": [2, 15], "x": 16, "y": 2},
{"matrix": [2, 16], "x": 17, "y": 2, "w": 2.25},
{"matrix": [2, 19], "x": 19.75, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [3, 3], "x": 3, "y": 3, "h": 2},
{"matrix": [3, 4], "x": 4.25, "y": 3, "w": 1.25},
{"matrix": [3, 5], "x": 5.5, "y": 3},
{"matrix": [3, 6], "x": 6.5, "y": 3},
{"matrix": [3, 7], "x": 7.5, "y": 3},
{"matrix": [3, 8], "x": 8.5, "y": 3},
{"matrix": [3, 9], "x": 9.5, "y": 3},
{"matrix": [3, 10], "x": 10.5, "y": 3},
{"matrix": [3, 11], "x": 11.5, "y": 3},
{"matrix": [3, 12], "x": 12.5, "y": 3},
{"matrix": [3, 13], "x": 13.5, "y": 3},
{"matrix": [3, 14], "x": 14.5, "y": 3},
{"matrix": [3, 15], "x": 15.5, "y": 3},
{"matrix": [3, 16], "x": 16.5, "y": 3, "w": 1.75},
{"matrix": [3, 19], "x": 19.75, "y": 3},
{"matrix": [3, 17], "x": 18.5, "y": 3.25},
{"matrix": [4, 1], "x": 0, "y": 4, "w": 2},
{"matrix": [4, 2], "x": 2, "y": 4},
{"matrix": [4, 4], "x": 4.25, "y": 4, "w": 1.25},
{"matrix": [4, 5], "x": 5.5, "y": 4, "w": 1.25},
{"matrix": [4, 6], "x": 6.75, "y": 4, "w": 1.25},
{"matrix": [4, 8], "x": 8, "y": 4, "w": 2.25},
{"matrix": [4, 10], "x": 10.25, "y": 4, "w": 1.25},
{"matrix": [4, 12], "x": 11.5, "y": 4, "w": 2.75},
{"matrix": [4, 13], "x": 14.25, "y": 4},
{"matrix": [4, 14], "x": 15.25, "y": 4},
{"matrix": [4, 15], "x": 16.25, "y": 4},
{"matrix": [4, 16], "x": 17.5, "y": 4.25},
{"matrix": [4, 17], "x": 18.5, "y": 4.25},
{"matrix": [4, 18], "x": 19.5, "y": 4.25},
{"matrix": [0, 18], "x": 18.25, "y": 0}
]
}
}
}

View File

@@ -0,0 +1,33 @@
/* Copyright 2023 DeskDaily
*
* 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_mirrored_numpad(
KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_DEL,
KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
KC_ENT, KC_P1, KC_P2, KC_P3, 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_LSFT, MO(1), KC_UP,
KC_DEL, KC_P0, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC
),
[1] = LAYOUT_mirrored_numpad(
_______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

@@ -0,0 +1,33 @@
/* Copyright 2023 DeskDaily
*
* 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_regular_numpad(
KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_DEL,
KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
KC_P1, KC_P2, KC_P3, 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_LSFT, MO(1), KC_UP,
KC_P0, KC_DEL, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC
),
[1] = LAYOUT_regular_numpad(
_______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

@@ -0,0 +1,33 @@
/* Copyright 2023 DeskDaily
*
* 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_all(
KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, 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_DEL,
KC_PPLS, KC_P7, KC_P8, KC_P9, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
KC_PPLS, KC_P4, KC_P5, KC_P6, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
KC_ENT, KC_P1, KC_P2, KC_P3, 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_LSFT, MO(1), KC_UP,
KC_DEL, KC_P0, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC
),
[1] = LAYOUT_all(
_______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

@@ -0,0 +1,2 @@
VIA_ENABLE = yes
LTO_ENABLE = yes

View File

@@ -0,0 +1,23 @@
# Bredworks Wyvern HS
* Keyboard Maintainer: [DeskDaily](https://github.com/DeskDaily)
* Hardware Supported: Atmega32u4
* Hardware Availability: [BredWorks](https://bredworks.com/products/wyvern-hotswap-pcb)
Make example for this keyboard (after setting up your build environment):
make bredworks/wyvern_hs:default
Flashing example for this keyboard:
make bredworks/wyvern_hs:default:flash
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the upper left key/esc) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
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).

View File

@@ -0,0 +1 @@
# This file intentionally left blank

View File

@@ -38,6 +38,7 @@
}
}
},
"community_layouts": ["split_3x5_2"],
"layouts": {
"LAYOUT_split_3x5_2": {
"layout": [

View File

@@ -0,0 +1,32 @@
{
"manufacturer": "CannonKeys",
"keyboard_name": "is0GR",
"maintainer": "awkannan",
"bootloader": "stm32-dfu",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["B3"],
"rows": ["A15"]
},
"processor": "STM32F072",
"url": "https://cannonkeys.com",
"usb": {
"device_version": "0.0.1",
"pid": "0xCA04",
"vid": "0x0028"
},
"community_layouts": ["ortho_1x1"],
"layouts": {
"LAYOUT_ortho_1x1": {
"layout": [
{"matrix": [0, 0], "x": 0.25, "y": 0, "w": 1.25, "h": 2}
]
}
}
}

View File

@@ -0,0 +1,10 @@
// Copyright 2023 Andrew Kannan
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ortho_1x1(
KC_ENT
),
};

View File

@@ -0,0 +1,11 @@
// Copyright 2023 Andrew Kannan
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ortho_1x1(
KC_ENT
),
};

View File

@@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@@ -0,0 +1,24 @@
# Alchemist Keyboards is0GR
is0GR Keyboard
Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
Hardware Supported: STM32F072CBT6 or equivalent
Make example for this keyboard (after setting up your build environment):
make cannonkeys/is0gr:default
Flashing example for this keyboard:
make cannonkeys/is0gr: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 (on this board - it's the only key) and plug in the keyboard
* **Physical reset button**: Bridge the two pads labeled "RESET" on the top of the PCB using some tweezers, and hold the tweezers there until the board enters the bootloader mode
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available (it isn't by default)

View File

@@ -0,0 +1,2 @@
# Wildcard to allow APM32 MCU
DFU_SUFFIX_ARGS = -v FFFF -p FFFF

View File

@@ -10,7 +10,7 @@
},
"processor": "atmega32u4",
"bootloader": "caterina",
"community_layouts": ["split_3x5_3" "split_3x6_3"],
"community_layouts": ["split_3x5_3", "split_3x6_3"],
"layout_aliases": {
"LAYOUT": "LAYOUT_split_3x6_3"
},

View File

@@ -28,7 +28,7 @@
"pid": "0x2391",
"vid": "0xC1ED"
},
"community_layouts": [],
"community_layouts": ["66_ansi"],
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
},

View File

@@ -27,8 +27,12 @@
},
"processor": "atmega32u4",
"bootloader": "caterina",
"layout_aliases": {
"LAYOUT_split_3x6_3_2": "LAYOUT_split_3x6_3"
},
"community_layouts": ["split_3x6_3"],
"layouts": {
"LAYOUT_split_3x6_3_2": {
"LAYOUT_split_3x6_3": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.875},
{"matrix": [0, 1], "x": 1, "y": 0.625},

View File

@@ -31,7 +31,7 @@ enum layer_number {
#define KC_A_DEL ALT_T(KC_DEL)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_split_3x6_3_2(
[_QWERTY] = LAYOUT_split_3x6_3(
//,--------+--------+--------+--------+--------+--------. ,--------+---------+--------+---------+--------+--------.
KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS,
//|--------+--------+--------+--------+--------+--------| |--------+---------+--------+---------+--------+--------|
@@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// `+--------+--------+--------' `--------+---------+--------+'
),
[_RAISE] = LAYOUT_split_3x6_3_2(
[_RAISE] = LAYOUT_split_3x6_3(
//,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------.
_______, KC_BSLS, KC_CIRC, KC_EXLM, KC_AMPR, KC_PIPE, KC_AT , KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
@@ -55,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// `+--------+--------+--------' `--------+-------+--------+'
),
[_LOWER] = LAYOUT_split_3x6_3_2(
[_LOWER] = LAYOUT_split_3x6_3(
//,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------.
KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______, KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
@@ -67,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// `+--------+--------+--------' `--------+--------+--------+'
),
[_ADJUST] = LAYOUT_split_3x6_3_2(
[_ADJUST] = LAYOUT_split_3x6_3(
//,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------.
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|

View File

@@ -31,7 +31,7 @@ enum layer_number {
#define KC_A_DEL ALT_T(KC_DEL)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_split_3x6_3_2(
[_QWERTY] = LAYOUT_split_3x6_3(
//,--------+--------+--------+--------+--------+--------. ,--------+---------+--------+---------+--------+--------.
KC_ESC , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_MINS,
//|--------+--------+--------+--------+--------+--------| |--------+---------+--------+---------+--------+--------|
@@ -43,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// `+--------+--------+--------' `--------+---------+--------+'
),
[_RAISE] = LAYOUT_split_3x6_3_2(
[_RAISE] = LAYOUT_split_3x6_3(
//,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------.
_______, KC_BSLS, KC_CIRC, KC_EXLM, KC_AMPR, KC_PIPE, KC_AT , KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
@@ -55,7 +55,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// `+--------+--------+--------' `--------+-------+--------+'
),
[_LOWER] = LAYOUT_split_3x6_3_2(
[_LOWER] = LAYOUT_split_3x6_3(
//,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------.
KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , _______, KC_EQL , KC_PLUS, KC_ASTR, KC_PERC, KC_MINS,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|
@@ -67,7 +67,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// `+--------+--------+--------' `--------+--------+--------+'
),
[_ADJUST] = LAYOUT_split_3x6_3_2(
[_ADJUST] = LAYOUT_split_3x6_3(
//,--------+--------+--------+--------+--------+--------. ,--------+--------+--------+--------+--------+--------.
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------|

View File

@@ -40,6 +40,7 @@
},
"processor": "atmega32a",
"bootloader": "bootloadhid",
"community_layouts": ["96_ansi", "96_iso"],
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -156,6 +157,225 @@
]
},
"LAYOUT_96_ansi": {
"layout": [
{"matrix": [5, 0], "x": 0, "y": 0},
{"matrix": [5, 2], "x": 1, "y": 0},
{"matrix": [5, 3], "x": 2, "y": 0},
{"matrix": [5, 4], "x": 3, "y": 0},
{"matrix": [5, 5], "x": 4, "y": 0},
{"matrix": [6, 0], "x": 5, "y": 0},
{"matrix": [6, 10], "x": 6, "y": 0},
{"matrix": [7, 10], "x": 7, "y": 0},
{"matrix": [7, 0], "x": 8, "y": 0},
{"matrix": [5, 11], "x": 9, "y": 0},
{"matrix": [5, 12], "x": 10, "y": 0},
{"matrix": [5, 13], "x": 11, "y": 0},
{"matrix": [5, 14], "x": 12, "y": 0},
{"matrix": [1, 13], "x": 13, "y": 0},
{"matrix": [2, 14], "x": 14, "y": 0},
{"matrix": [0, 13], "x": 15, "y": 0},
{"matrix": [7, 6], "x": 16, "y": 0},
{"matrix": [7, 8], "x": 17, "y": 0},
{"matrix": [7, 9], "x": 18, "y": 0},
{"matrix": [4, 0], "x": 0, "y": 1},
{"matrix": [4, 1], "x": 1, "y": 1},
{"matrix": [4, 2], "x": 2, "y": 1},
{"matrix": [4, 3], "x": 3, "y": 1},
{"matrix": [4, 4], "x": 4, "y": 1},
{"matrix": [4, 5], "x": 5, "y": 1},
{"matrix": [6, 1], "x": 6, "y": 1},
{"matrix": [6, 11], "x": 7, "y": 1},
{"matrix": [7, 11], "x": 8, "y": 1},
{"matrix": [7, 1], "x": 9, "y": 1},
{"matrix": [4, 10], "x": 10, "y": 1},
{"matrix": [4, 11], "x": 11, "y": 1},
{"matrix": [4, 12], "x": 12, "y": 1},
{"matrix": [4, 14], "x": 13, "y": 1, "w": 2},
{"matrix": [4, 6], "x": 15, "y": 1},
{"matrix": [4, 7], "x": 16, "y": 1},
{"matrix": [4, 8], "x": 17, "y": 1},
{"matrix": [4, 9], "x": 18, "y": 1},
{"matrix": [3, 0], "x": 0, "y": 2, "w": 1.5},
{"matrix": [3, 1], "x": 1.5, "y": 2},
{"matrix": [3, 2], "x": 2.5, "y": 2},
{"matrix": [3, 3], "x": 3.5, "y": 2},
{"matrix": [3, 4], "x": 4.5, "y": 2},
{"matrix": [3, 5], "x": 5.5, "y": 2},
{"matrix": [6, 2], "x": 6.5, "y": 2},
{"matrix": [6, 12], "x": 7.5, "y": 2},
{"matrix": [7, 12], "x": 8.5, "y": 2},
{"matrix": [7, 2], "x": 9.5, "y": 2},
{"matrix": [3, 10], "x": 10.5, "y": 2},
{"matrix": [3, 11], "x": 11.5, "y": 2},
{"matrix": [3, 12], "x": 12.5, "y": 2},
{"matrix": [3, 13], "x": 13.5, "y": 2, "w": 1.5},
{"matrix": [3, 6], "x": 15, "y": 2},
{"matrix": [3, 7], "x": 16, "y": 2},
{"matrix": [3, 8], "x": 17, "y": 2},
{"matrix": [3, 9], "x": 18, "y": 2, "h": 2},
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 3},
{"matrix": [2, 2], "x": 2.75, "y": 3},
{"matrix": [2, 3], "x": 3.75, "y": 3},
{"matrix": [2, 4], "x": 4.75, "y": 3},
{"matrix": [2, 5], "x": 5.75, "y": 3},
{"matrix": [6, 3], "x": 6.75, "y": 3},
{"matrix": [6, 13], "x": 7.75, "y": 3},
{"matrix": [7, 13], "x": 8.75, "y": 3},
{"matrix": [7, 3], "x": 9.75, "y": 3},
{"matrix": [2, 10], "x": 10.75, "y": 3},
{"matrix": [2, 11], "x": 11.75, "y": 3},
{"matrix": [2, 13], "x": 12.75, "y": 3, "w": 2.25},
{"matrix": [2, 6], "x": 15, "y": 3},
{"matrix": [2, 7], "x": 16, "y": 3},
{"matrix": [2, 8], "x": 17, "y": 3},
{"matrix": [1, 0], "x": 0, "y": 4, "w": 2.25},
{"matrix": [1, 1], "x": 2.25, "y": 4},
{"matrix": [1, 2], "x": 3.25, "y": 4},
{"matrix": [1, 3], "x": 4.25, "y": 4},
{"matrix": [1, 4], "x": 5.25, "y": 4},
{"matrix": [1, 5], "x": 6.25, "y": 4},
{"matrix": [6, 4], "x": 7.25, "y": 4},
{"matrix": [6, 14], "x": 8.25, "y": 4},
{"matrix": [7, 14], "x": 9.25, "y": 4},
{"matrix": [7, 4], "x": 10.25, "y": 4},
{"matrix": [1, 10], "x": 11.25, "y": 4},
{"matrix": [1, 11], "x": 12.25, "y": 4, "w": 1.75},
{"matrix": [6, 8], "x": 14, "y": 4},
{"matrix": [1, 6], "x": 15, "y": 4},
{"matrix": [1, 7], "x": 16, "y": 4},
{"matrix": [1, 8], "x": 17, "y": 4},
{"matrix": [1, 9], "x": 18, "y": 4, "h": 2},
{"matrix": [0, 0], "x": 0, "y": 5, "w": 1.25},
{"matrix": [0, 1], "x": 1.25, "y": 5, "w": 1.25},
{"matrix": [0, 2], "x": 2.5, "y": 5, "w": 1.25},
{"matrix": [6, 5], "x": 3.75, "y": 5, "w": 6.25},
{"matrix": [7, 5], "x": 10, "y": 5},
{"matrix": [0, 10], "x": 11, "y": 5},
{"matrix": [0, 11], "x": 12, "y": 5},
{"matrix": [6, 6], "x": 13, "y": 5},
{"matrix": [6, 7], "x": 14, "y": 5},
{"matrix": [6, 9], "x": 15, "y": 5},
{"matrix": [0, 6], "x": 16, "y": 5},
{"matrix": [0, 8], "x": 17, "y": 5}
]
},
"LAYOUT_96_iso": {
"layout": [
{"matrix": [5, 0], "x": 0, "y": 0},
{"matrix": [5, 2], "x": 1, "y": 0},
{"matrix": [5, 3], "x": 2, "y": 0},
{"matrix": [5, 4], "x": 3, "y": 0},
{"matrix": [5, 5], "x": 4, "y": 0},
{"matrix": [6, 0], "x": 5, "y": 0},
{"matrix": [6, 10], "x": 6, "y": 0},
{"matrix": [7, 10], "x": 7, "y": 0},
{"matrix": [7, 0], "x": 8, "y": 0},
{"matrix": [5, 11], "x": 9, "y": 0},
{"matrix": [5, 12], "x": 10, "y": 0},
{"matrix": [5, 13], "x": 11, "y": 0},
{"matrix": [5, 14], "x": 12, "y": 0},
{"matrix": [1, 13], "x": 13, "y": 0},
{"matrix": [2, 14], "x": 14, "y": 0},
{"matrix": [0, 13], "x": 15, "y": 0},
{"matrix": [7, 6], "x": 16, "y": 0},
{"matrix": [7, 8], "x": 17, "y": 0},
{"matrix": [7, 9], "x": 18, "y": 0},
{"matrix": [4, 0], "x": 0, "y": 1},
{"matrix": [4, 1], "x": 1, "y": 1},
{"matrix": [4, 2], "x": 2, "y": 1},
{"matrix": [4, 3], "x": 3, "y": 1},
{"matrix": [4, 4], "x": 4, "y": 1},
{"matrix": [4, 5], "x": 5, "y": 1},
{"matrix": [6, 1], "x": 6, "y": 1},
{"matrix": [6, 11], "x": 7, "y": 1},
{"matrix": [7, 11], "x": 8, "y": 1},
{"matrix": [7, 1], "x": 9, "y": 1},
{"matrix": [4, 10], "x": 10, "y": 1},
{"matrix": [4, 11], "x": 11, "y": 1},
{"matrix": [4, 12], "x": 12, "y": 1},
{"matrix": [4, 14], "x": 13, "y": 1, "w": 2},
{"matrix": [4, 6], "x": 15, "y": 1},
{"matrix": [4, 7], "x": 16, "y": 1},
{"matrix": [4, 8], "x": 17, "y": 1},
{"matrix": [4, 9], "x": 18, "y": 1},
{"matrix": [3, 0], "x": 0, "y": 2, "w": 1.5},
{"matrix": [3, 1], "x": 1.5, "y": 2},
{"matrix": [3, 2], "x": 2.5, "y": 2},
{"matrix": [3, 3], "x": 3.5, "y": 2},
{"matrix": [3, 4], "x": 4.5, "y": 2},
{"matrix": [3, 5], "x": 5.5, "y": 2},
{"matrix": [6, 2], "x": 6.5, "y": 2},
{"matrix": [6, 12], "x": 7.5, "y": 2},
{"matrix": [7, 12], "x": 8.5, "y": 2},
{"matrix": [7, 2], "x": 9.5, "y": 2},
{"matrix": [3, 10], "x": 10.5, "y": 2},
{"matrix": [3, 11], "x": 11.5, "y": 2},
{"matrix": [3, 12], "x": 12.5, "y": 2},
{"matrix": [3, 6], "x": 15, "y": 2},
{"matrix": [3, 7], "x": 16, "y": 2},
{"matrix": [3, 8], "x": 17, "y": 2},
{"matrix": [3, 9], "x": 18, "y": 2, "h": 2},
{"matrix": [2, 0], "x": 0, "y": 3, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 3},
{"matrix": [2, 2], "x": 2.75, "y": 3},
{"matrix": [2, 3], "x": 3.75, "y": 3},
{"matrix": [2, 4], "x": 4.75, "y": 3},
{"matrix": [2, 5], "x": 5.75, "y": 3},
{"matrix": [6, 3], "x": 6.75, "y": 3},
{"matrix": [6, 13], "x": 7.75, "y": 3},
{"matrix": [7, 13], "x": 8.75, "y": 3},
{"matrix": [7, 3], "x": 9.75, "y": 3},
{"matrix": [2, 10], "x": 10.75, "y": 3},
{"matrix": [2, 11], "x": 11.75, "y": 3},
{"matrix": [2, 12], "x": 12.75, "y": 3},
{"matrix": [2, 13], "x": 13.75, "y": 2, "w": 1.25, "h": 2},
{"matrix": [2, 6], "x": 15, "y": 3},
{"matrix": [2, 7], "x": 16, "y": 3},
{"matrix": [2, 8], "x": 17, "y": 3},
{"matrix": [1, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [0, 3], "x": 1.25, "y": 4},
{"matrix": [1, 1], "x": 2.25, "y": 4},
{"matrix": [1, 2], "x": 3.25, "y": 4},
{"matrix": [1, 3], "x": 4.25, "y": 4},
{"matrix": [1, 4], "x": 5.25, "y": 4},
{"matrix": [1, 5], "x": 6.25, "y": 4},
{"matrix": [6, 4], "x": 7.25, "y": 4},
{"matrix": [6, 14], "x": 8.25, "y": 4},
{"matrix": [7, 14], "x": 9.25, "y": 4},
{"matrix": [7, 4], "x": 10.25, "y": 4},
{"matrix": [1, 10], "x": 11.25, "y": 4},
{"matrix": [1, 11], "x": 12.25, "y": 4, "w": 1.75},
{"matrix": [6, 8], "x": 14, "y": 4},
{"matrix": [1, 6], "x": 15, "y": 4},
{"matrix": [1, 7], "x": 16, "y": 4},
{"matrix": [1, 8], "x": 17, "y": 4},
{"matrix": [1, 9], "x": 18, "y": 4, "h": 2},
{"matrix": [0, 0], "x": 0, "y": 5, "w": 1.25},
{"matrix": [0, 1], "x": 1.25, "y": 5, "w": 1.25},
{"matrix": [0, 2], "x": 2.5, "y": 5, "w": 1.25},
{"matrix": [6, 5], "x": 3.75, "y": 5, "w": 6.25},
{"matrix": [7, 5], "x": 10, "y": 5},
{"matrix": [0, 10], "x": 11, "y": 5},
{"matrix": [0, 11], "x": 12, "y": 5},
{"matrix": [6, 6], "x": 13, "y": 5},
{"matrix": [6, 7], "x": 14, "y": 5},
{"matrix": [6, 9], "x": 15, "y": 5},
{"matrix": [0, 6], "x": 16, "y": 5},
{"matrix": [0, 8], "x": 17, "y": 5}
]
},
"LAYOUT_96_ansi_2_right_mod": {
"layout": [
{"matrix": [5, 0], "x": 0, "y": 0},
{"matrix": [5, 2], "x": 1, "y": 0},
@@ -249,6 +469,7 @@
{"matrix": [1, 6], "x": 15, "y": 4},
{"matrix": [1, 7], "x": 16, "y": 4},
{"matrix": [1, 8], "x": 17, "y": 4},
{"matrix": [1, 9], "x": 18, "y": 4, "h": 2},
{"matrix": [0, 0], "x": 0, "y": 5, "w": 1.25},
{"matrix": [0, 1], "x": 1.25, "y": 5, "w": 1.25},
@@ -260,8 +481,7 @@
{"matrix": [6, 7], "x": 14, "y": 5},
{"matrix": [6, 9], "x": 15, "y": 5},
{"matrix": [0, 6], "x": 16, "y": 5},
{"matrix": [0, 8], "x": 17, "y": 5},
{"matrix": [0, 9], "x": 18, "y": 4, "h": 2}
{"matrix": [0, 8], "x": 17, "y": 5}
]
}
}

View File

@@ -16,7 +16,7 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_96_ansi(
[0] = LAYOUT_96_ansi_2_right_mod(
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_NUM, KC_INS, KC_HOME, KC_PGUP, KC_PSLS,
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_END, KC_PGDN, KC_PSLS, KC_PAST,
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_P7, KC_P8, KC_P9, KC_PMNS,
@@ -24,21 +24,13 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT, KC_PENT),
[1] = LAYOUT_96_ansi(
QK_BOOT, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
BL_TOGG, BL_STEP, BL_ON, BL_OFF, BL_UP, BL_DOWN, BL_BRTG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, 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_RMOD, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[2] = LAYOUT_96_ansi(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
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] = LAYOUT_96_ansi_2_right_mod(
QK_BOOT, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_TOGG, BL_STEP, BL_ON, BL_OFF, BL_UP, BL_DOWN, BL_BRTG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
};

View File

@@ -45,7 +45,7 @@ enum custom_keycodes {
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Base */
[_BASE] = LAYOUT_96_ansi(
[_BASE] = LAYOUT_96_ansi_2_right_mod(
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_HOME, KC_INS, KC_END, KC_MPRV, KC_MPLY, KC_MNXT,
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_PSCR, KC_PSLS, KC_PAST,
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_P7, KC_P8, KC_P9, KC_PMNS,
@@ -54,29 +54,29 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, MO(2), KC_RALT, KC_SPC, KC_CALC, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT),
/* (1) Bmode layer */
[_B] = LAYOUT_96_ansi(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, B, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[_B] = LAYOUT_96_ansi_2_right_mod(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, B, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
/* (2) Fn 1 */
[_FN1] = LAYOUT_96_ansi(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, TG(1), KC_PGUP, KC_VOLD, KC_MUTE, KC_VOLU,
ALT0, KC_TRNS, KC_TRNS, ALT1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, ALT2, KC_TRNS, KC_TRNS, KC_NUM, KC_TRNS, KC_TRNS,
KC_TRNS, CD, KC_TRNS, KC_TRNS, KC_TRNS, ALT3, KC_TRNS, KC_TRNS, KC_TRNS, ALT4, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, AES, xkcd, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_CAPS, KC_TRNS, X, KC_TRNS, img, B, KC_TRNS, ALT7, ALT5, ALT6, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[_FN1] = LAYOUT_96_ansi_2_right_mod(
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, TG(1), KC_PGUP, KC_VOLD, KC_MUTE, KC_VOLU,
ALT0, _______, _______, ALT1, _______, _______, _______, _______, _______, _______, _______, _______, ALT2, _______, _______, KC_NUM, _______, _______,
_______, CD, _______, _______, _______, ALT3, _______, _______, _______, ALT4, _______, _______, _______, _______, _______, _______, _______, _______,
_______, AES, xkcd, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_CAPS, _______, X, _______, img, B, _______, ALT7, ALT5, ALT6, _______, _______, _______, _______, _______, _______,
_______, _______, KC_LALT, _______, _______, _______, _______, _______, _______, _______, _______, _______),
/* (3) Fn 2 */
[_FN2] = LAYOUT_96_ansi(
[_FN2] = LAYOUT_96_ansi_2_right_mod(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, UC_WINC, EE_CLR, QK_BOOT,
VK_TOGG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_TRNS, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
_______, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO),

View File

@@ -16,7 +16,7 @@
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_96_ansi(
[0] = LAYOUT_96_ansi_2_right_mod(
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_NUM, KC_INS, KC_HOME, KC_PGUP, KC_PSLS,
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_END, KC_PGDN, KC_PSLS, KC_PAST,
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_P7, KC_P8, KC_P9, KC_PMNS,
@@ -24,19 +24,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT, KC_PENT),
[1] = LAYOUT_96_ansi(
QK_BOOT, EE_CLR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
BL_TOGG, BL_STEP, BL_ON, BL_OFF, BL_UP, BL_DOWN, BL_BRTG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, 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_RMOD, 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
[2] = LAYOUT_96_ansi(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
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] = LAYOUT_96_ansi_2_right_mod(
QK_BOOT, EE_CLR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
BL_TOGG, BL_STEP, BL_ON, BL_OFF, BL_UP, BL_DOWN, BL_BRTG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
};

View File

@@ -0,0 +1,23 @@
# Matrix Diagram for Donutcables Budget96
```
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
│50 │52 │53 │54 │55 │6A │7A │70 │5B │5C │5C │5D │5E │1D │2E │0D │76 │78 │79 │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ ┌───────┐
│40 │41 │42 │43 │44 │45 │61 │6B │7B │71 │4A │4B │4C │4D │4E │46 │47 │48 │49 │ │4D │ 2u Backpsace
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┼───┼───┼───┤ └─┬─────┤ ┌───┐
│30 │31 │32 │33 │34 │35 │62 │6C │7C │72 │3A │3B │3C │3D │36 │37 │38 │39 │ │ │ │ │
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┼───┤ ┌──┴┐2D │ ISO Enter │39 │ Numpad "+" 2u
│20 │21 │22 │23 │24 │25 │63 │6D │7D │73 │2A │2B │2C │26 │27 │28 │29 │ │2C │ │ │ │
├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┼───┼───┼───┤ └───┴────┘ ├───┤
│10 │03 │11 │12 │13 │14 │15 │64 │6E │7E │74 │1A │1B │68 │16 │17 │18 │19 │ │ │
├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┼───┼───┼───┤ ┌───────┐ │19 │ Numpad Enter 2U
│00 │01 │02 │65 │75 │0A │0B │66 │67 │69 │06 │08 │09 │ Numpad 0 2u │06 │ │ │
└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ └───────┘ └───┘
┌────────┐ ┌──────────┐
│10 │ 2.25u LShift 2.75u RShift │1B │
└────────┘ └──────────┘
┌────┬────┬────┬────────────────────────┬─────┬─────┐
│00 │01 │02 │65 │75 │0B │ 2x1.5u Right Mod
└────┴────┴────┴────────────────────────┴─────┴─────┘
```

View File

@@ -15,20 +15,75 @@
*/
#include "quantum.h"
bool oled_task_kb(void) {
if (!oled_task_user()) {
return false;
}
#define LOGO_TIMEOUT 3000
static uint32_t logo_timer = 0;
static bool display_logo = true;
void dp3000_logo(void) {
static const char PROGMEM dp3000_logo[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0x60, 0x7c, 0x7c, 0x60, 0x60, 0x60, 0x60,
0x7c, 0x7c, 0x60, 0x60, 0x60, 0x60, 0x7c, 0x7c, 0x60, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x86, 0x86, 0x86, 0xff, 0xff, 0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0xf0, 0xe0,
0x00, 0x00, 0xf8, 0xf8, 0x18, 0x18, 0xf8, 0xf0, 0x00, 0x00, 0xff, 0xff, 0x86, 0x86, 0x86, 0x00,
0x00, 0x00, 0x00, 0x18, 0x18, 0x98, 0x98, 0xf8, 0xf0, 0x00, 0xf0, 0xf8, 0x18, 0x18, 0xf8, 0xf0,
0x00, 0xf0, 0xf8, 0x18, 0x18, 0xf8, 0xf0, 0x00, 0xf0, 0xf8, 0x18, 0x18, 0xf8, 0xf0, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x61, 0x61, 0x61, 0xff, 0xff, 0x00, 0x00, 0x1f, 0x1f, 0x18, 0x18, 0x0f, 0x07,
0x00, 0x00, 0x1f, 0x1f, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0xff, 0xff, 0x61, 0x61, 0x61, 0x00,
0x00, 0x00, 0x00, 0x18, 0x18, 0x19, 0x19, 0x1f, 0x0f, 0x00, 0x0f, 0x1f, 0x18, 0x18, 0x1f, 0x0f,
0x00, 0x0f, 0x1f, 0x18, 0x18, 0x1f, 0x0f, 0x00, 0x0f, 0x1f, 0x18, 0x18, 0x1f, 0x0f, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x06, 0x3e, 0x3e, 0x06, 0x06, 0x06, 0x06,
0x3e, 0x3e, 0x06, 0x06, 0x06, 0x06, 0x3e, 0x3e, 0x06, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
oled_write_raw_P(dp3000_logo, sizeof(dp3000_logo));
}
void default_status(void) {
oled_set_cursor(0, 0);
oled_write_P(PSTR("LAYER: "), false);
oled_write_char('0' + get_highest_layer(layer_state), false);
oled_advance_page(true);
oled_write_P(PSTR("LOCK: "), false);
led_t led_state = host_keyboard_led_state();
oled_set_cursor(0, 1);
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
oled_set_cursor(0, 2);
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
oled_set_cursor(0, 3);
oled_write_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
}
bool oled_task_kb(void) {
if (!oled_task_user()) {
return false;
}
if (display_logo && timer_elapsed32(logo_timer) > LOGO_TIMEOUT) {
display_logo = false;
oled_clear();
logo_timer = 0;
}
if (display_logo) {
dp3000_logo();
} else {
default_status();
}
return false;
}

View File

@@ -0,0 +1,22 @@
/*
* Copyright 2023 deddia permana (@depermana12)
*
* 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
#if !defined(OLED_TIMEOUT)
# define OLED_TIMEOUT 30000
#endif

View File

@@ -35,9 +35,12 @@
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"community_layouts": ["75_ansi"],
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
},
"community_layouts": ["75_ansi", "75_iso"],
"layouts": {
"LAYOUT": {
"LAYOUT_all": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
@@ -223,7 +226,101 @@
{"matrix": [5, 13], "x": 13, "y": 5},
{"matrix": [5, 14], "x": 14, "y": 5},
{"matrix": [5, 15], "x": 15, "y": 5}
]
]
},
"LAYOUT_75_iso": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [0, 13], "x": 13, "y": 0},
{"matrix": [0, 14], "x": 14, "y": 0},
{"matrix": [0, 16], "x": 15, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [1, 5], "x": 5, "y": 1},
{"matrix": [1, 6], "x": 6, "y": 1},
{"matrix": [1, 7], "x": 7, "y": 1},
{"matrix": [1, 8], "x": 8, "y": 1},
{"matrix": [1, 9], "x": 9, "y": 1},
{"matrix": [1, 10], "x": 10, "y": 1},
{"matrix": [1, 11], "x": 11, "y": 1},
{"matrix": [1, 12], "x": 12, "y": 1},
{"matrix": [1, 14], "x": 13, "y": 1, "w": 2},
{"matrix": [1, 15], "x": 15, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.5},
{"matrix": [2, 1], "x": 1.5, "y": 2},
{"matrix": [2, 2], "x": 2.5, "y": 2},
{"matrix": [2, 3], "x": 3.5, "y": 2},
{"matrix": [2, 4], "x": 4.5, "y": 2},
{"matrix": [2, 5], "x": 5.5, "y": 2},
{"matrix": [2, 6], "x": 6.5, "y": 2},
{"matrix": [2, 7], "x": 7.5, "y": 2},
{"matrix": [2, 8], "x": 8.5, "y": 2},
{"matrix": [2, 9], "x": 9.5, "y": 2},
{"matrix": [2, 10], "x": 10.5, "y": 2},
{"matrix": [2, 11], "x": 11.5, "y": 2},
{"matrix": [2, 12], "x": 12.5, "y": 2},
{"matrix": [2, 15], "x": 15, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.75},
{"matrix": [3, 1], "x": 1.75, "y": 3},
{"matrix": [3, 2], "x": 2.75, "y": 3},
{"matrix": [3, 3], "x": 3.75, "y": 3},
{"matrix": [3, 4], "x": 4.75, "y": 3},
{"matrix": [3, 5], "x": 5.75, "y": 3},
{"matrix": [3, 6], "x": 6.75, "y": 3},
{"matrix": [3, 7], "x": 7.75, "y": 3},
{"matrix": [3, 8], "x": 8.75, "y": 3},
{"matrix": [3, 9], "x": 9.75, "y": 3},
{"matrix": [3, 10], "x": 10.75, "y": 3},
{"matrix": [3, 11], "x": 11.75, "y": 3},
{"matrix": [3, 12], "x": 12.75, "y": 3},
{"matrix": [3, 14], "x": 13.75, "y": 2, "w": 1.25, "h": 2},
{"matrix": [3, 15], "x": 15, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
{"matrix": [4, 1], "x": 1.25, "y": 4},
{"matrix": [4, 2], "x": 2.25, "y": 4},
{"matrix": [4, 3], "x": 3.25, "y": 4},
{"matrix": [4, 4], "x": 4.25, "y": 4},
{"matrix": [4, 5], "x": 5.25, "y": 4},
{"matrix": [4, 6], "x": 6.25, "y": 4},
{"matrix": [4, 7], "x": 7.25, "y": 4},
{"matrix": [4, 8], "x": 8.25, "y": 4},
{"matrix": [4, 9], "x": 9.25, "y": 4},
{"matrix": [4, 10], "x": 10.25, "y": 4},
{"matrix": [4, 12], "x": 11.25, "y": 4},
{"matrix": [4, 13], "x": 12.25, "y": 4, "w": 1.75},
{"matrix": [4, 14], "x": 14, "y": 4},
{"matrix": [4, 15], "x": 15, "y": 4},
{"matrix": [5, 0], "x": 0, "y": 5, "w": 1.25},
{"matrix": [5, 1], "x": 1.25, "y": 5, "w": 1.25},
{"matrix": [5, 2], "x": 2.5, "y": 5, "w": 1.25},
{"matrix": [5, 8], "x": 3.75, "y": 5, "w": 6.25},
{"matrix": [5, 10], "x": 10, "y": 5},
{"matrix": [5, 11], "x": 11, "y": 5},
{"matrix": [5, 12], "x": 12, "y": 5},
{"matrix": [5, 13], "x": 13, "y": 5},
{"matrix": [5, 14], "x": 14, "y": 5},
{"matrix": [5, 15], "x": 15, "y": 5}
]
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,34 @@
/* Copyright 2023 dztech
*
* 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] = {
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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
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, _______, _______,
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, QK_BOOT,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, BL_DOWN, BL_TOGG, BL_UP, BL_STEP, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

@@ -0,0 +1,34 @@
/* Copyright 2023 dztech
*
* 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] = {
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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1),
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
),
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, _______, _______,
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, QK_BOOT,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, BL_DOWN, BL_TOGG, BL_UP, BL_STEP, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
)
};

View File

@@ -0,0 +1,2 @@
LTO_ENABLE = yes
VIA_ENABLE = yes

View File

@@ -0,0 +1,26 @@
# DZ60 60% Mechanical Keyboard PCB
## A Customizable 60% Mechanical Keyboard PCB
* Keyboard Maintainer: QMK Community
* Hardware Supported: DZ60 60% Mechanical Keyboard PCB
* Hardware Availability: [KBDfans](https://kbdfans.com/collections/60/products/dz60-60-pcb)
There are two versions of the DZ60 PCB. Please use the appropriate firmware for your board.
* V1: 1.6mm thickness PCB;
* V2: 1.2mm thickness PCB
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix
* **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
Make example for this keyboard (after setting up your build environment):
make dztech/dz60v2:default
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).

View File

@@ -0,0 +1 @@
# This file intentionally left blank

View File

@@ -25,8 +25,13 @@
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layout_aliases": {
"LAYOUT_default": "LAYOUT_96_ansi",
"LAYOUT_iso": "LAYOUT_96_iso"
},
"community_layouts": ["96_ansi", "96_iso"],
"layouts": {
"LAYOUT_default": {
"LAYOUT_96_ansi": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
@@ -357,7 +362,7 @@
{"matrix": [5, 12], "x": 18, "y": 5}
]
},
"LAYOUT_iso": {
"LAYOUT_96_iso": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@@ -0,0 +1,23 @@
# Matrix Diagram for Dztech Dz96
```
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
│00 │01 │02 │03 │04 │60 │61 │62 │63 │05 │06 │07 │08 │72 │09 │0A │0B │0C │7C │
├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ ┌───────┐
│10 │11 │12 │13 │14 │64 │65 │66 │67 │15 │16 │17 │18 │70 │71 │19 │1A │1B │1C │ │71 │ 2u BackSpace
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┼───┼───┼───┤ └─┬─────┤ ┌───┐
│20 │21 │22 │23 │24 │68 │69 │6A │6B │25 │26 │27 │28 │73 │29 │2A │2B │2C │ │ │ │ │
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┼───┼───┼───┤ ┌──┴┐38 │ ISO Enter │2C │ Numpad "+" 2u
│30 │31 │32 │33 │34 │6C │75 │76 │77 │35 │36 │37 │38 │39 │3A │3B │3C │ │73 │ │ │ │
├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┼───┼───┼───┤ └───┴────┘ ├───┤
│40 │41 │42 │43 │44 │78 │79 │7A │7B │45 │46 │47 │48 │74 │49 │4A │4B │4C │ │ │
├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬┴──┬───┼───┼───┼───┼───┼───┤ │4C │ Numpad Enter 2U
│50 │51 │52 │59 │55 │56 │57 │58 │53 │54 │5A │5B │5C │ │ │
└────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┘ └───┘
┌────────┐
│40 │ 2.25u LShift
└────────┘
┌─────┬─────┬───────────────────────────┬─────┬─────┐
│50 │51 │59 │55 │57 │ 2 Mod
└─────┴─────┴───────────────────────────┴─────┴─────┘
```

File diff suppressed because it is too large Load Diff

View File

@@ -18,10 +18,10 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_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_NUHS, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_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_NUHS, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
)
};

View File

@@ -18,10 +18,10 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_all(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_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_NUHS, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_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_NUHS, 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_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
)
};

View File

@@ -0,0 +1,24 @@
# Matrix Diagram for DZTECH PLUTO
```
┌───────┐
2u Backspace │0D │
└───────┘
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┬───┐
│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E ││0F │2C │2D │
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┼───┤ ┌─────┐
│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D ││1F │2E │2F │ │ │
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┴───┘ ┌──┴┐1E │ ISO Enter
│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │1E │ │1D │ │
├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ └───┴────┘
│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ │3E │
├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤┌───┼───┼───┐
│40 │41 │42 │47 │4A │4B │4C │4D ││3F │4E │4F │
└────┴────┴────┴────────────────────────┴────┴────┴────┴────┘└───┴───┴───┘
┌────────┐ ┌──────────┐
│30 │ 2.25u LShift 2.75u RShift │3C │
└────────┘ └──────────┘
┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
│40 │41 │42 │47 │4B │4C │4D │ Tsangan/WKL
└─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
```

View File

@@ -41,54 +41,5 @@
},
"processor": "atmega32u4",
"bootloader": "qmk-dfu",
"community_layouts": ["split_3x5_3"],
"layouts": {
"LAYOUT_split_3x5_3": {
"layout": [
{"x": 0, "y": 0.88},
{"x": 1, "y": 0.38},
{"x": 2, "y": 0},
{"x": 3, "y": 0.38},
{"x": 4, "y": 0.5},
{"x": 6, "y": 0.5},
{"x": 7, "y": 0.38},
{"x": 8, "y": 0},
{"x": 9, "y": 0.38},
{"x": 10, "y": 0.88},
{"x": 0, "y": 1.88},
{"x": 1, "y": 1.38},
{"x": 2, "y": 1},
{"x": 3, "y": 1.38},
{"x": 4, "y": 1.5},
{"x": 6, "y": 1.5},
{"x": 7, "y": 1.38},
{"x": 8, "y": 1},
{"x": 9, "y": 1.38},
{"x": 10, "y": 1.88},
{"x": 0, "y": 2.88},
{"x": 1, "y": 2.38},
{"x": 2, "y": 2},
{"x": 3, "y": 2.38},
{"x": 4, "y": 2.5},
{"x": 6, "y": 2.5},
{"x": 7, "y": 2.38},
{"x": 8, "y": 2},
{"x": 9, "y": 2.38},
{"x": 10, "y": 2.88},
{"x": 2, "y": 3.25},
{"x": 3, "y": 3.38},
{"x": 4, "y": 3.5},
{"x": 6, "y": 3.5},
{"x": 7, "y": 3.38},
{"x": 8, "y": 3.25}
]
}
}
"community_layouts": ["split_3x5_3"]
}

View File

@@ -0,0 +1,29 @@
/* 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
/* 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

View 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>

View File

@@ -0,0 +1,590 @@
{
"manufacturer": "SIRIND",
"keyboard_name": "Klein",
"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,
"rgb_matrix": true
},
"indicators": {
"caps_lock": "GP16",
"on_state": 0,
"scroll_lock": "GP17"
},
"matrix_pins": {
"cols": ["GP22", "GP23", "GP24", "GP25", "GP26", "GP27", "GP28", "GP29", "GP11", "GP10", "GP8", "GP7", "GP1", "GP2", "GP3", "GP4"],
"rows": ["GP18", "GP19", "GP20", "GP21", "GP14", "GP5", "GP6", "GP9", "GP13", "GP12"]
},
"processor": "RP2040",
"rgb_matrix": {
"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,
"rainbow_moving_chevron": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"dual_beacon": true,
"rainbow_beacon": true,
"rainbow_pinwheels": true,
"raindrops": true,
"jellybean_raindrops": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"pixel_rain": true,
"pixel_flow": true,
"pixel_fractal": 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
},
"driver": "ws2812",
"layout": [
{"matrix": [0, 7], "x": 4, "y": 0, "flags": 1},
{"matrix": [0, 6], "x": 20, "y": 2, "flags": 4},
{"matrix": [0, 5], "x": 32, "y": 2, "flags": 4},
{"matrix": [0, 4], "x": 45, "y": 1, "flags": 4},
{"matrix": [0, 3], "x": 58, "y": 3, "flags": 4},
{"matrix": [0, 2], "x": 71, "y": 5, "flags": 4},
{"matrix": [0, 1], "x": 83, "y": 8, "flags": 4},
{"matrix": [0, 0], "x": 96, "y": 10, "flags": 4},
{"matrix": [1, 0], "x": 129, "y": 9, "flags": 4},
{"matrix": [1, 1], "x": 141, "y": 7, "flags": 4},
{"matrix": [1, 2], "x": 154, "y": 4, "flags": 4},
{"matrix": [1, 3], "x": 166, "y": 2, "flags": 4},
{"matrix": [1, 4], "x": 179, "y": 1, "flags": 4},
{"matrix": [1, 5], "x": 192, "y": 2, "flags": 4},
{"matrix": [1, 6], "x": 211, "y": 2, "flags": 1},
{"matrix": [1, 7], "x": 1, "y": 13, "flags": 1},
{"matrix": [2, 6], "x": 21, "y": 15, "flags": 1},
{"matrix": [2, 5], "x": 36, "y": 15, "flags": 4},
{"matrix": [2, 4], "x": 50, "y": 15, "flags": 4},
{"matrix": [2, 3], "x": 62, "y": 17, "flags": 4},
{"matrix": [2, 2], "x": 75, "y": 20, "flags": 4},
{"matrix": [2, 1], "x": 87, "y": 22, "flags": 4},
{"matrix": [2, 0], "x": 100, "y": 24, "flags": 4},
{"matrix": [3, 1], "x": 125, "y": 23, "flags": 4},
{"matrix": [3, 2], "x": 137, "y": 21, "flags": 4},
{"matrix": [3, 3], "x": 150, "y": 18, "flags": 4},
{"matrix": [3, 4], "x": 162, "y": 16, "flags": 4},
{"matrix": [3, 5], "x": 175, "y": 15, "flags": 4},
{"matrix": [3, 6], "x": 188, "y": 15, "flags": 4},
{"matrix": [4, 6], "x": 201, "y": 15, "flags": 4},
{"matrix": [4, 5], "x": 217, "y": 15, "flags": 4},
{"matrix": [4, 3], "x": 0, "y": 27, "flags": 1},
{"matrix": [4, 1], "x": 18, "y": 29, "flags": 1},
{"matrix": [0, 8], "x": 38, "y": 29, "flags": 4},
{"matrix": [0, 9], "x": 51, "y": 29, "flags": 4},
{"matrix": [0, 10], "x": 64, "y": 31, "flags": 4},
{"matrix": [0, 11], "x": 76, "y": 33, "flags": 4},
{"matrix": [0, 12], "x": 89, "y": 36, "flags": 4},
{"matrix": [0, 13], "x": 129, "y": 36, "flags": 4},
{"matrix": [0, 15], "x": 142, "y": 33, "flags": 4},
{"matrix": [1, 15], "x": 154, "y": 31, "flags": 4},
{"matrix": [1, 14], "x": 167, "y": 29, "flags": 4},
{"matrix": [1, 13], "x": 180, "y": 29, "flags": 4},
{"matrix": [1, 12], "x": 193, "y": 29, "flags": 4},
{"matrix": [1, 11], "x": 213, "y": 29, "flags": 1},
{"matrix": [1, 10], "x": 21, "y": 42, "flags": 1},
{"matrix": [1, 9], "x": 42, "y": 42, "flags": 4},
{"matrix": [1, 8], "x": 60, "y": 57, "flags": 4},
{"matrix": [2, 8], "x": 67, "y": 45, "flags": 4},
{"matrix": [2, 9], "x": 80, "y": 47, "flags": 4},
{"matrix": [2, 10], "x": 92, "y": 50, "flags": 4},
{"matrix": [2, 11], "x": 126, "y": 50, "flags": 4},
{"matrix": [2, 12], "x": 138, "y": 48, "flags": 4},
{"matrix": [2, 13], "x": 151, "y": 45, "flags": 4},
{"matrix": [2, 15], "x": 163, "y": 43, "flags": 4},
{"matrix": [3, 14], "x": 177, "y": 42, "flags": 4},
{"matrix": [3, 13], "x": 189, "y": 42, "flags": 4},
{"matrix": [3, 12], "x": 213, "y": 42, "flags": 1},
{"matrix": [3, 11], "x": 16, "y": 55, "flags": 1},
{"matrix": [3, 10], "x": 55, "y": 43, "flags": 1},
{"matrix": [3, 9], "x": 76, "y": 60, "flags": 4},
{"matrix": [3, 8], "x": 96, "y": 64, "flags": 1},
{"matrix": [4, 9], "x": 139, "y": 61, "flags": 4},
{"matrix": [4, 11], "x": 166, "y": 57, "flags": 1},
{"matrix": [4, 13], "x": 189, "y": 55, "flags": 1},
{"matrix": [4, 14], "x": 202, "y": 55, "flags": 1},
{"matrix": [4, 15], "x": 221, "y": 55, "flags": 1}
],
"led_count": 67
},
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x0003",
"vid": "0x4552"
},
"ws2812": {
"driver": "vendor",
"pin": "GP0"
},
"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, 0], "x": 10.75, "y": 0},
{"matrix": [5, 1], "x": 11.75, "y": 0},
{"matrix": [5, 2], "x": 12.75, "y": 0},
{"matrix": [5, 3], "x": 13.75, "y": 0},
{"matrix": [5, 4], "x": 14.75, "y": 0},
{"matrix": [5, 5], "x": 15.75, "y": 0},
{"matrix": [5, 6], "x": 16.75, "y": 0},
{"matrix": [5, 7], "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, 0], "x": 10.25, "y": 1},
{"matrix": [6, 1], "x": 11.25, "y": 1},
{"matrix": [6, 2], "x": 12.25, "y": 1},
{"matrix": [6, 3], "x": 13.25, "y": 1},
{"matrix": [6, 4], "x": 14.25, "y": 1},
{"matrix": [6, 5], "x": 15.25, "y": 1},
{"matrix": [6, 6], "x": 16.25, "y": 1},
{"matrix": [6, 7], "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, 0], "x": 10.5, "y": 2},
{"matrix": [7, 1], "x": 11.5, "y": 2},
{"matrix": [7, 2], "x": 12.5, "y": 2},
{"matrix": [7, 3], "x": 13.5, "y": 2},
{"matrix": [7, 4], "x": 14.5, "y": 2},
{"matrix": [7, 5], "x": 15.5, "y": 2},
{"matrix": [7, 7], "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, 0], "x": 10, "y": 3},
{"matrix": [8, 1], "x": 11, "y": 3},
{"matrix": [8, 2], "x": 12, "y": 3},
{"matrix": [8, 3], "x": 13, "y": 3},
{"matrix": [8, 4], "x": 14, "y": 3},
{"matrix": [8, 5], "x": 15, "y": 3},
{"matrix": [8, 6], "x": 16, "y": 3, "w": 1.75},
{"matrix": [8, 7], "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, 4], "x": 6, "y": 4, "w": 2.25},
{"matrix": [4, 5], "x": 8.25, "y": 4},
{"matrix": [9, 1], "x": 10, "y": 4, "w": 2.75},
{"matrix": [9, 3], "x": 12.75, "y": 4, "w": 1.5},
{"matrix": [9, 5], "x": 15, "y": 4},
{"matrix": [9, 6], "x": 16, "y": 4},
{"matrix": [9, 7], "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, 0], "x": 10.75, "y": 0},
{"matrix": [5, 1], "x": 11.75, "y": 0},
{"matrix": [5, 2], "x": 12.75, "y": 0},
{"matrix": [5, 3], "x": 13.75, "y": 0},
{"matrix": [5, 4], "x": 14.75, "y": 0},
{"matrix": [5, 5], "x": 15.75, "y": 0},
{"matrix": [5, 7], "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, 0], "x": 10.25, "y": 1},
{"matrix": [6, 1], "x": 11.25, "y": 1},
{"matrix": [6, 2], "x": 12.25, "y": 1},
{"matrix": [6, 3], "x": 13.25, "y": 1},
{"matrix": [6, 4], "x": 14.25, "y": 1},
{"matrix": [6, 5], "x": 15.25, "y": 1},
{"matrix": [6, 6], "x": 16.25, "y": 1},
{"matrix": [6, 7], "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, 0], "x": 10.5, "y": 2},
{"matrix": [7, 1], "x": 11.5, "y": 2},
{"matrix": [7, 2], "x": 12.5, "y": 2},
{"matrix": [7, 3], "x": 13.5, "y": 2},
{"matrix": [7, 4], "x": 14.5, "y": 2},
{"matrix": [7, 5], "x": 15.5, "y": 2},
{"matrix": [7, 7], "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, 0], "x": 10, "y": 3},
{"matrix": [8, 1], "x": 11, "y": 3},
{"matrix": [8, 2], "x": 12, "y": 3},
{"matrix": [8, 3], "x": 13, "y": 3},
{"matrix": [8, 4], "x": 14, "y": 3},
{"matrix": [8, 5], "x": 15, "y": 3},
{"matrix": [8, 6], "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, 4], "x": 6, "y": 4, "w": 2.25},
{"matrix": [4, 5], "x": 8.25, "y": 4},
{"matrix": [9, 1], "x": 10, "y": 4, "w": 2.75},
{"matrix": [9, 3], "x": 12.75, "y": 4, "w": 1.5},
{"matrix": [9, 7], "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, 0], "x": 10.75, "y": 0},
{"matrix": [5, 1], "x": 11.75, "y": 0},
{"matrix": [5, 2], "x": 12.75, "y": 0},
{"matrix": [5, 3], "x": 13.75, "y": 0},
{"matrix": [5, 4], "x": 14.75, "y": 0},
{"matrix": [5, 5], "x": 15.75, "y": 0},
{"matrix": [5, 7], "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, 0], "x": 10.25, "y": 1},
{"matrix": [6, 1], "x": 11.25, "y": 1},
{"matrix": [6, 2], "x": 12.25, "y": 1},
{"matrix": [6, 3], "x": 13.25, "y": 1},
{"matrix": [6, 4], "x": 14.25, "y": 1},
{"matrix": [6, 5], "x": 15.25, "y": 1},
{"matrix": [6, 6], "x": 16.25, "y": 1},
{"matrix": [6, 7], "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, 0], "x": 10.5, "y": 2},
{"matrix": [7, 1], "x": 11.5, "y": 2},
{"matrix": [7, 2], "x": 12.5, "y": 2},
{"matrix": [7, 3], "x": 13.5, "y": 2},
{"matrix": [7, 4], "x": 14.5, "y": 2},
{"matrix": [7, 5], "x": 15.5, "y": 2},
{"matrix": [7, 7], "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, 0], "x": 10, "y": 3},
{"matrix": [8, 1], "x": 11, "y": 3},
{"matrix": [8, 2], "x": 12, "y": 3},
{"matrix": [8, 3], "x": 13, "y": 3},
{"matrix": [8, 4], "x": 14, "y": 3},
{"matrix": [8, 5], "x": 15, "y": 3},
{"matrix": [8, 6], "x": 16, "y": 3},
{"matrix": [8, 7], "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, 4], "x": 6, "y": 4, "w": 2.25},
{"matrix": [4, 5], "x": 8.25, "y": 4},
{"matrix": [9, 1], "x": 10, "y": 4, "w": 2.75},
{"matrix": [9, 3], "x": 12.75, "y": 4, "w": 1.5},
{"matrix": [9, 5], "x": 15, "y": 4},
{"matrix": [9, 6], "x": 16, "y": 4},
{"matrix": [9, 7], "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, 0], "x": 10.75, "y": 0},
{"matrix": [5, 1], "x": 11.75, "y": 0},
{"matrix": [5, 2], "x": 12.75, "y": 0},
{"matrix": [5, 3], "x": 13.75, "y": 0},
{"matrix": [5, 4], "x": 14.75, "y": 0},
{"matrix": [5, 5], "x": 15.75, "y": 0},
{"matrix": [5, 6], "x": 16.75, "y": 0},
{"matrix": [5, 7], "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, 0], "x": 10.25, "y": 1},
{"matrix": [6, 1], "x": 11.25, "y": 1},
{"matrix": [6, 2], "x": 12.25, "y": 1},
{"matrix": [6, 3], "x": 13.25, "y": 1},
{"matrix": [6, 4], "x": 14.25, "y": 1},
{"matrix": [6, 5], "x": 15.25, "y": 1},
{"matrix": [6, 6], "x": 16.25, "y": 1},
{"matrix": [6, 7], "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, 0], "x": 10.5, "y": 2},
{"matrix": [7, 1], "x": 11.5, "y": 2},
{"matrix": [7, 2], "x": 12.5, "y": 2},
{"matrix": [7, 3], "x": 13.5, "y": 2},
{"matrix": [7, 4], "x": 14.5, "y": 2},
{"matrix": [7, 5], "x": 15.5, "y": 2},
{"matrix": [7, 7], "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, 0], "x": 10, "y": 3},
{"matrix": [8, 1], "x": 11, "y": 3},
{"matrix": [8, 2], "x": 12, "y": 3},
{"matrix": [8, 3], "x": 13, "y": 3},
{"matrix": [8, 4], "x": 14, "y": 3},
{"matrix": [8, 5], "x": 15, "y": 3},
{"matrix": [8, 6], "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, 4], "x": 6, "y": 4, "w": 2.25},
{"matrix": [4, 5], "x": 8.25, "y": 4},
{"matrix": [9, 1], "x": 10, "y": 4, "w": 2.75},
{"matrix": [9, 3], "x": 12.75, "y": 4, "w": 1.5},
{"matrix": [9, 7], "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, 0], "x": 10.75, "y": 0},
{"matrix": [5, 1], "x": 11.75, "y": 0},
{"matrix": [5, 2], "x": 12.75, "y": 0},
{"matrix": [5, 3], "x": 13.75, "y": 0},
{"matrix": [5, 4], "x": 14.75, "y": 0},
{"matrix": [5, 5], "x": 15.75, "y": 0},
{"matrix": [5, 6], "x": 16.75, "y": 0},
{"matrix": [5, 7], "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, 0], "x": 10.25, "y": 1},
{"matrix": [6, 1], "x": 11.25, "y": 1},
{"matrix": [6, 2], "x": 12.25, "y": 1},
{"matrix": [6, 3], "x": 13.25, "y": 1},
{"matrix": [6, 4], "x": 14.25, "y": 1},
{"matrix": [6, 5], "x": 15.25, "y": 1},
{"matrix": [6, 6], "x": 16.25, "y": 1},
{"matrix": [6, 7], "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, 0], "x": 10.5, "y": 2},
{"matrix": [7, 1], "x": 11.5, "y": 2},
{"matrix": [7, 2], "x": 12.5, "y": 2},
{"matrix": [7, 3], "x": 13.5, "y": 2},
{"matrix": [7, 4], "x": 14.5, "y": 2},
{"matrix": [7, 5], "x": 15.5, "y": 2},
{"matrix": [7, 7], "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, 0], "x": 10, "y": 3},
{"matrix": [8, 1], "x": 11, "y": 3},
{"matrix": [8, 2], "x": 12, "y": 3},
{"matrix": [8, 3], "x": 13, "y": 3},
{"matrix": [8, 4], "x": 14, "y": 3},
{"matrix": [8, 5], "x": 15, "y": 3},
{"matrix": [8, 6], "x": 16, "y": 3, "w": 1.75},
{"matrix": [8, 7], "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, 4], "x": 6, "y": 4, "w": 2.25},
{"matrix": [4, 5], "x": 8.25, "y": 4},
{"matrix": [9, 1], "x": 10, "y": 4, "w": 2.75},
{"matrix": [9, 3], "x": 12.75, "y": 4, "w": 1.5},
{"matrix": [9, 7], "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, 0], "x": 10.75, "y": 0},
{"matrix": [5, 1], "x": 11.75, "y": 0},
{"matrix": [5, 2], "x": 12.75, "y": 0},
{"matrix": [5, 3], "x": 13.75, "y": 0},
{"matrix": [5, 4], "x": 14.75, "y": 0},
{"matrix": [5, 5], "x": 15.75, "y": 0},
{"matrix": [5, 6], "x": 16.75, "y": 0},
{"matrix": [5, 7], "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, 0], "x": 10.25, "y": 1},
{"matrix": [6, 1], "x": 11.25, "y": 1},
{"matrix": [6, 2], "x": 12.25, "y": 1},
{"matrix": [6, 3], "x": 13.25, "y": 1},
{"matrix": [6, 4], "x": 14.25, "y": 1},
{"matrix": [6, 5], "x": 15.25, "y": 1},
{"matrix": [6, 6], "x": 16.25, "y": 1},
{"matrix": [6, 7], "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, 0], "x": 10.5, "y": 2},
{"matrix": [7, 1], "x": 11.5, "y": 2},
{"matrix": [7, 2], "x": 12.5, "y": 2},
{"matrix": [7, 3], "x": 13.5, "y": 2},
{"matrix": [7, 4], "x": 14.5, "y": 2},
{"matrix": [7, 5], "x": 15.5, "y": 2},
{"matrix": [7, 7], "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, 0], "x": 10, "y": 3},
{"matrix": [8, 1], "x": 11, "y": 3},
{"matrix": [8, 2], "x": 12, "y": 3},
{"matrix": [8, 3], "x": 13, "y": 3},
{"matrix": [8, 4], "x": 14, "y": 3},
{"matrix": [8, 5], "x": 15, "y": 3},
{"matrix": [8, 6], "x": 16, "y": 3},
{"matrix": [8, 7], "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, 4], "x": 6, "y": 4, "w": 2.25},
{"matrix": [4, 5], "x": 8.25, "y": 4},
{"matrix": [9, 1], "x": 10, "y": 4, "w": 2.75},
{"matrix": [9, 3], "x": 12.75, "y": 4, "w": 1.5},
{"matrix": [9, 5], "x": 15, "y": 4},
{"matrix": [9, 6], "x": 16, "y": 4},
{"matrix": [9, 7], "x": 17, "y": 4}
]
}
}
}

View 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
)
};

View 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
)
};

View File

@@ -0,0 +1 @@
VIA_ENABLE = yes

View 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

View File

@@ -0,0 +1,23 @@
# MontK Cervin Klein
* Keyboard Maintainer: [ERA](https://github.com/eerraa)
* Hardware supported: SIRIND Klein
* Hardware availability: [Syryan](https://srind.mysoho.com/)
Make example for this keyboard (after setting up your build environment):
make era/klein:default
Flashing example for this keyboard:
make era/klein: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

View File

View File

@@ -4,7 +4,7 @@ layer_state_t layer_state_set_user(layer_state_t state) {
switch (layer) {
case DVORAK:
rgblight_sethsv_noeeprom(GREEN);
rgblight_sethsv_noeeprom(HSV_GREEN);
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
if (PLOVER_MODE) {

View File

@@ -15,6 +15,7 @@
"diode_direction": "COL2ROW",
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"community_layouts": ["68_ansi", "68_iso"],
"layouts": {
"LAYOUT_all": {
"layout": [
@@ -261,6 +262,88 @@
{"matrix": [4, 15], "x": 16.25, "y": 4}
]
},
"LAYOUT_68_ansi_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [2, 14], "x": 13, "y": 0},
{"matrix": [0, 13], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5},
{"matrix": [1, 14], "x": 15.25, "y": 1},
{"matrix": [1, 15], "x": 16.25, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 14, "y": 3},
{"matrix": [3, 14], "x": 15.25, "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": 14.25, "y": 4},
{"matrix": [4, 14], "x": 15.25, "y": 4},
{"matrix": [4, 15], "x": 16.25, "y": 4}
]
},
"LAYOUT_68_ansi_split_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
@@ -342,6 +425,89 @@
{"matrix": [4, 15], "x": 16.25, "y": 4}
]
},
"LAYOUT_68_iso_split_bs_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
{"matrix": [0, 2], "x": 2, "y": 0},
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [0, 5], "x": 5, "y": 0},
{"matrix": [0, 6], "x": 6, "y": 0},
{"matrix": [0, 7], "x": 7, "y": 0},
{"matrix": [0, 8], "x": 8, "y": 0},
{"matrix": [0, 9], "x": 9, "y": 0},
{"matrix": [0, 10], "x": 10, "y": 0},
{"matrix": [0, 11], "x": 11, "y": 0},
{"matrix": [0, 12], "x": 12, "y": 0},
{"matrix": [2, 14], "x": 13, "y": 0},
{"matrix": [0, 13], "x": 14, "y": 0},
{"matrix": [0, 14], "x": 15.25, "y": 0},
{"matrix": [0, 15], "x": 16.25, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
{"matrix": [1, 1], "x": 1.5, "y": 1},
{"matrix": [1, 2], "x": 2.5, "y": 1},
{"matrix": [1, 3], "x": 3.5, "y": 1},
{"matrix": [1, 4], "x": 4.5, "y": 1},
{"matrix": [1, 5], "x": 5.5, "y": 1},
{"matrix": [1, 6], "x": 6.5, "y": 1},
{"matrix": [1, 7], "x": 7.5, "y": 1},
{"matrix": [1, 8], "x": 8.5, "y": 1},
{"matrix": [1, 9], "x": 9.5, "y": 1},
{"matrix": [1, 10], "x": 10.5, "y": 1},
{"matrix": [1, 11], "x": 11.5, "y": 1},
{"matrix": [1, 12], "x": 12.5, "y": 1},
{"matrix": [1, 14], "x": 15.25, "y": 1},
{"matrix": [1, 15], "x": 16.25, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
{"matrix": [2, 1], "x": 1.75, "y": 2},
{"matrix": [2, 2], "x": 2.75, "y": 2},
{"matrix": [2, 3], "x": 3.75, "y": 2},
{"matrix": [2, 4], "x": 4.75, "y": 2},
{"matrix": [2, 5], "x": 5.75, "y": 2},
{"matrix": [2, 6], "x": 6.75, "y": 2},
{"matrix": [2, 7], "x": 7.75, "y": 2},
{"matrix": [2, 8], "x": 8.75, "y": 2},
{"matrix": [2, 9], "x": 9.75, "y": 2},
{"matrix": [2, 10], "x": 10.75, "y": 2},
{"matrix": [2, 11], "x": 11.75, "y": 2},
{"matrix": [2, 12], "x": 12.75, "y": 2},
{"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2},
{"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
{"matrix": [3, 1], "x": 1.25, "y": 3},
{"matrix": [3, 2], "x": 2.25, "y": 3},
{"matrix": [3, 3], "x": 3.25, "y": 3},
{"matrix": [3, 4], "x": 4.25, "y": 3},
{"matrix": [3, 5], "x": 5.25, "y": 3},
{"matrix": [3, 6], "x": 6.25, "y": 3},
{"matrix": [3, 7], "x": 7.25, "y": 3},
{"matrix": [3, 8], "x": 8.25, "y": 3},
{"matrix": [3, 9], "x": 9.25, "y": 3},
{"matrix": [3, 10], "x": 10.25, "y": 3},
{"matrix": [3, 11], "x": 11.25, "y": 3},
{"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
{"matrix": [3, 13], "x": 14, "y": 3},
{"matrix": [3, 14], "x": 15.25, "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": 14.25, "y": 4},
{"matrix": [4, 14], "x": 15.25, "y": 4},
{"matrix": [4, 15], "x": 16.25, "y": 4}
]
},
"LAYOUT_68_iso_split_rshift": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},

View File

@@ -0,0 +1,18 @@
# Matrix diagram for Evyd13 solheim68
```
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐┌───┬───┐ ┌───────┐
│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │2E │0D ││0E │0F │ │0D │ 2u Backspace
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤├───┼───┤ └─┬─────┤
│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D ││1E │1F │ │ │
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┴───┘ ┌──┴┐2D │ ISO Enter
│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │
├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤┌───┐ └───┴────┘
│30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D ││3E │
├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴┬──┴┼───┼───┐
│40 │41 │42 │46 │4A │4B │4C │ │4D │4E │4F │
└────┴────┴────┴────────────────────────┴────┴────┴────┘ └───┴───┴───┘
┌────────┐ ┌──────────┐
│30 │ 2.25u LShift 2.75u RShift │3C │
└────────┘ └──────────┘
```

View File

@@ -43,104 +43,104 @@
{"matrix": [13, 0], "x": 14, "y": 0},
{"matrix": [0, 6], "x": 15.5, "y": 0},
{"matrix": [1, 6], "x": 16.5, "y": 0},
{"matrix": [2, 6], "x": 17.5, "y": 0},
{"matrix": [3, 6], "x": 18.5, "y": 0},
{"matrix": [0, 6], "x": 15.25, "y": 0},
{"matrix": [1, 6], "x": 16.25, "y": 0},
{"matrix": [2, 6], "x": 17.25, "y": 0},
{"matrix": [3, 6], "x": 18.25, "y": 0},
{"matrix": [0, 1], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [2, 1], "x": 2, "y": 1},
{"matrix": [3, 1], "x": 3, "y": 1},
{"matrix": [4, 1], "x": 4, "y": 1},
{"matrix": [5, 1], "x": 5, "y": 1},
{"matrix": [6, 1], "x": 6, "y": 1},
{"matrix": [7, 1], "x": 7, "y": 1},
{"matrix": [8, 1], "x": 8, "y": 1},
{"matrix": [9, 1], "x": 9, "y": 1},
{"matrix": [10, 1], "x": 10, "y": 1},
{"matrix": [11, 1], "x": 11, "y": 1},
{"matrix": [12, 1], "x": 12, "y": 1},
{"matrix": [13, 1], "x": 13, "y": 1, "w": 2},
{"matrix": [0, 1], "x": 0, "y": 1.125},
{"matrix": [1, 1], "x": 1, "y": 1.125},
{"matrix": [2, 1], "x": 2, "y": 1.125},
{"matrix": [3, 1], "x": 3, "y": 1.125},
{"matrix": [4, 1], "x": 4, "y": 1.125},
{"matrix": [5, 1], "x": 5, "y": 1.125},
{"matrix": [6, 1], "x": 6, "y": 1.125},
{"matrix": [7, 1], "x": 7, "y": 1.125},
{"matrix": [8, 1], "x": 8, "y": 1.125},
{"matrix": [9, 1], "x": 9, "y": 1.125},
{"matrix": [10, 1], "x": 10, "y": 1.125},
{"matrix": [11, 1], "x": 11, "y": 1.125},
{"matrix": [12, 1], "x": 12, "y": 1.125},
{"matrix": [13, 1], "x": 13, "y": 1.125, "w": 2},
{"matrix": [4, 6], "x": 15.5, "y": 1},
{"matrix": [5, 6], "x": 16.5, "y": 1},
{"matrix": [6, 6], "x": 17.5, "y": 1},
{"matrix": [7, 6], "x": 18.5, "y": 1},
{"matrix": [4, 6], "x": 15.25, "y": 1.125},
{"matrix": [5, 6], "x": 16.25, "y": 1.125},
{"matrix": [6, 6], "x": 17.25, "y": 1.125},
{"matrix": [7, 6], "x": 18.25, "y": 1.125},
{"matrix": [0, 2], "x": 0, "y": 2, "w": 1.5},
{"matrix": [1, 2], "x": 1.5, "y": 2},
{"matrix": [2, 2], "x": 2.5, "y": 2},
{"matrix": [3, 2], "x": 3.5, "y": 2},
{"matrix": [4, 2], "x": 4.5, "y": 2},
{"matrix": [5, 2], "x": 5.5, "y": 2},
{"matrix": [6, 2], "x": 6.5, "y": 2},
{"matrix": [7, 2], "x": 7.5, "y": 2},
{"matrix": [8, 2], "x": 8.5, "y": 2},
{"matrix": [9, 2], "x": 9.5, "y": 2},
{"matrix": [10, 2], "x": 10.5, "y": 2},
{"matrix": [11, 2], "x": 11.5, "y": 2},
{"matrix": [12, 2], "x": 12.5, "y": 2},
{"matrix": [13, 3], "x": 13.5, "y": 2, "w": 1.25, "h": 2},
{"matrix": [0, 2], "x": 0, "y": 2.125, "w": 1.5},
{"matrix": [1, 2], "x": 1.5, "y": 2.125},
{"matrix": [2, 2], "x": 2.5, "y": 2.125},
{"matrix": [3, 2], "x": 3.5, "y": 2.125},
{"matrix": [4, 2], "x": 4.5, "y": 2.125},
{"matrix": [5, 2], "x": 5.5, "y": 2.125},
{"matrix": [6, 2], "x": 6.5, "y": 2.125},
{"matrix": [7, 2], "x": 7.5, "y": 2.125},
{"matrix": [8, 2], "x": 8.5, "y": 2.125},
{"matrix": [9, 2], "x": 9.5, "y": 2.125},
{"matrix": [10, 2], "x": 10.5, "y": 2.125},
{"matrix": [11, 2], "x": 11.5, "y": 2.125},
{"matrix": [12, 2], "x": 12.5, "y": 2.125},
{"matrix": [13, 3], "x": 13.75, "y": 2.125, "w": 1.25, "h": 2},
{"matrix": [8, 6], "x": 15.5, "y": 2},
{"matrix": [9, 6], "x": 16.5, "y": 2},
{"matrix": [10, 6], "x": 17.5, "y": 2, "w": 1.5},
{"matrix": [11, 6], "x": 18.5, "y": 2, "h": 2},
{"matrix": [8, 6], "x": 15.25, "y": 2.125},
{"matrix": [9, 6], "x": 16.25, "y": 2.125},
{"matrix": [10, 6], "x": 17.25, "y": 2.125},
{"matrix": [11, 6], "x": 18.25, "y": 2.125, "h": 2},
{"matrix": [0, 3], "x": 0, "y": 3, "w": 1.75},
{"matrix": [1, 3], "x": 1.75, "y": 3},
{"matrix": [2, 3], "x": 2.75, "y": 3},
{"matrix": [3, 3], "x": 3.75, "y": 3},
{"matrix": [4, 3], "x": 4.75, "y": 3},
{"matrix": [5, 3], "x": 5.75, "y": 3},
{"matrix": [6, 3], "x": 6.75, "y": 3},
{"matrix": [7, 3], "x": 7.75, "y": 3},
{"matrix": [8, 3], "x": 8.75, "y": 3},
{"matrix": [9, 3], "x": 9.75, "y": 3},
{"matrix": [10, 3], "x": 10.75, "y": 3},
{"matrix": [11, 3], "x": 11.75, "y": 3},
{"matrix": [12, 3], "x": 12.75, "y": 3},
{"matrix": [0, 3], "x": 0, "y": 3.125, "w": 1.75},
{"matrix": [1, 3], "x": 1.75, "y": 3.125},
{"matrix": [2, 3], "x": 2.75, "y": 3.125},
{"matrix": [3, 3], "x": 3.75, "y": 3.125},
{"matrix": [4, 3], "x": 4.75, "y": 3.125},
{"matrix": [5, 3], "x": 5.75, "y": 3.125},
{"matrix": [6, 3], "x": 6.75, "y": 3.125},
{"matrix": [7, 3], "x": 7.75, "y": 3.125},
{"matrix": [8, 3], "x": 8.75, "y": 3.125},
{"matrix": [9, 3], "x": 9.75, "y": 3.125},
{"matrix": [10, 3], "x": 10.75, "y": 3.125},
{"matrix": [11, 3], "x": 11.75, "y": 3.125},
{"matrix": [12, 3], "x": 12.75, "y": 3.125},
{"matrix": [10, 7], "x": 15.5, "y": 3},
{"matrix": [11, 7], "x": 16.5, "y": 3},
{"matrix": [12, 7], "x": 17.5, "y": 3},
{"matrix": [10, 7], "x": 15.25, "y": 3.125},
{"matrix": [11, 7], "x": 16.25, "y": 3.125},
{"matrix": [12, 7], "x": 17.25, "y": 3.125},
{"matrix": [0, 4], "x": 0, "y": 4, "w": 1.25},
{"matrix": [1, 4], "x": 1.25, "y": 4},
{"matrix": [2, 4], "x": 2.25, "y": 4},
{"matrix": [3, 4], "x": 3.25, "y": 4},
{"matrix": [4, 4], "x": 4.25, "y": 4},
{"matrix": [5, 4], "x": 5.25, "y": 4},
{"matrix": [6, 4], "x": 6.25, "y": 4},
{"matrix": [7, 4], "x": 7.25, "y": 4},
{"matrix": [8, 4], "x": 8.25, "y": 4},
{"matrix": [9, 4], "x": 9.25, "y": 4},
{"matrix": [10, 4], "x": 10.25, "y": 4},
{"matrix": [11, 4], "x": 11.25, "y": 4},
{"matrix": [13, 4], "x": 12.25, "y": 4, "w": 1.75},
{"matrix": [0, 4], "x": 0, "y": 4.125, "w": 1.25},
{"matrix": [1, 4], "x": 1.25, "y": 4.125},
{"matrix": [2, 4], "x": 2.25, "y": 4.125},
{"matrix": [3, 4], "x": 3.25, "y": 4.125},
{"matrix": [4, 4], "x": 4.25, "y": 4.125},
{"matrix": [5, 4], "x": 5.25, "y": 4.125},
{"matrix": [6, 4], "x": 6.25, "y": 4.125},
{"matrix": [7, 4], "x": 7.25, "y": 4.125},
{"matrix": [8, 4], "x": 8.25, "y": 4.125},
{"matrix": [9, 4], "x": 9.25, "y": 4.125},
{"matrix": [10, 4], "x": 10.25, "y": 4.125},
{"matrix": [11, 4], "x": 11.25, "y": 4.125},
{"matrix": [13, 4], "x": 12.25, "y": 4.125, "w": 1.75},
{"matrix": [1, 7], "x": 14.25, "y": 4},
{"matrix": [1, 7], "x": 14.125, "y": 4.25},
{"matrix": [6, 7], "x": 15.5, "y": 4},
{"matrix": [7, 7], "x": 16.5, "y": 4},
{"matrix": [8, 7], "x": 17.5, "y": 4},
{"matrix": [9, 7], "x": 18.5, "y": 4, "h": 2},
{"matrix": [6, 7], "x": 15.25, "y": 4.125},
{"matrix": [7, 7], "x": 16.25, "y": 4.125},
{"matrix": [8, 7], "x": 17.25, "y": 4.125},
{"matrix": [9, 7], "x": 18.25, "y": 4.125, "h": 2},
{"matrix": [0, 5], "x": 0, "y": 5, "w": 1.25},
{"matrix": [1, 5], "x": 1.25, "y": 5, "w": 1.25},
{"matrix": [2, 5], "x": 2.5, "y": 5, "w": 1.25},
{"matrix": [6, 5], "x": 3.75, "y": 5, "w": 6.25},
{"matrix": [9, 5], "x": 10, "y": 5},
{"matrix": [10, 5], "x": 11, "y": 5},
{"matrix": [12, 5], "x": 12, "y": 5},
{"matrix": [0, 5], "x": 0, "y": 5.125, "w": 1.25},
{"matrix": [1, 5], "x": 1.25, "y": 5.125, "w": 1.25},
{"matrix": [2, 5], "x": 2.5, "y": 5.125, "w": 1.25},
{"matrix": [6, 5], "x": 3.75, "y": 5.125, "w": 6.25},
{"matrix": [9, 5], "x": 10, "y": 5.125},
{"matrix": [10, 5], "x": 11, "y": 5.125},
{"matrix": [12, 5], "x": 12, "y": 5.125},
{"matrix": [0, 7], "x": 13.25, "y": 5},
{"matrix": [2, 7], "x": 14.25, "y": 5},
{"matrix": [3, 7], "x": 15.25, "y": 5},
{"matrix": [0, 7], "x": 13.125, "y": 5.25},
{"matrix": [2, 7], "x": 14.125, "y": 5.25},
{"matrix": [3, 7], "x": 15.125, "y": 5.25},
{"matrix": [4, 7], "x": 16.5, "y": 5},
{"matrix": [5, 7], "x": 17.5, "y": 5}
{"matrix": [4, 7], "x": 16.25, "y": 5.125},
{"matrix": [5, 7], "x": 17.25, "y": 5.125}
]
}
}

View File

@@ -18,6 +18,7 @@
"diode_direction": "COL2ROW",
"processor": "atmega32u4",
"bootloader": "halfkay",
"community_layouts": ["66_ansi"],
"layouts": {
"LAYOUT_66_ansi": {
"layout": [

View File

@@ -0,0 +1,92 @@
{
"keyboard_name": "Dactyl Tracer",
"manufacturer": "mjohns",
"url": "https://github.com/mjohns/tracer",
"maintainer": "mjohns",
"usb": {
"vid": "0x444E",
"pid": "0x1307",
"device_version": "1.0.0"
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"mousekey": true,
"extrakey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["C6", "D7", "E6", "B4", "B5"],
"rows": ["F7", "B1", "B3", "B2", "B6"]
},
"diode_direction": "COL2ROW",
"development_board": "promicro",
"split": {
"enabled": true,
"soft_serial_pin": "D0"
},
"layouts": {
"LAYOUT" : {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0.25},
{"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": [5, 0], "x": 9, "y": 0},
{"matrix": [5, 1], "x": 10, "y": 0},
{"matrix": [5, 2], "x": 11, "y": 0},
{"matrix": [5, 3], "x": 12, "y": 0},
{"matrix": [5, 4], "x": 13, "y": 0.25},
{"matrix": [1, 0], "x": 0, "y": 1.5},
{"matrix": [1, 1], "x": 1, "y": 1},
{"matrix": [1, 2], "x": 2, "y": 1},
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [6, 0], "x": 9, "y": 1},
{"matrix": [6, 1], "x": 10, "y": 1},
{"matrix": [6, 2], "x": 11, "y": 1},
{"matrix": [6, 3], "x": 12, "y": 1},
{"matrix": [6, 4], "x": 13, "y": 1.5},
{"matrix": [2, 0], "x": 0, "y": 2.5},
{"matrix": [2, 1], "x": 1, "y": 2},
{"matrix": [2, 2], "x": 2, "y": 2},
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2},
{"matrix": [7, 0], "x": 9, "y": 2},
{"matrix": [7, 1], "x": 10, "y": 2},
{"matrix": [7, 2], "x": 11, "y": 2},
{"matrix": [7, 3], "x": 12, "y": 2},
{"matrix": [7, 4], "x": 13, "y": 2.5},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [3, 4], "x": 5, "y": 3.25},
{"matrix": [8, 0], "x": 8, "y": 3.25},
{"matrix": [8, 2], "x": 11, "y": 3},
{"matrix": [8, 3], "x": 12, "y": 3},
{"matrix": [4, 2], "x": 3, "y": 4 },
{"matrix": [3, 3], "x": 4, "y": 4 },
{"matrix": [4, 4], "x": 5, "y": 4.25},
{"matrix": [9, 0], "x": 8, "y": 4.25},
{"matrix": [8, 1], "x": 9, "y": 4},
{"matrix": [9, 2], "x": 10, "y": 4},
{"matrix": [4, 3], "x": 4.5, "y": 5.25},
{"matrix": [9, 1], "x": 8.5, "y": 5.25}
]
}
}
}

View File

@@ -0,0 +1,23 @@
// Copyright 2022 mjohns
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* Enables This makes it easier for fast typists to use dual-function keys */
#define PERMISSIVE_HOLD
/* mouse config */
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_DELAY 0
#define MOUSEKEY_TIME_TO_MAX 60
#define MOUSEKEY_MAX_SPEED 7
#define MOUSEKEY_WHEEL_DELAY 0
#define TAPPING_TERM 200
#define MASTER_RIGHT

View File

@@ -0,0 +1,60 @@
// Copyright 2022 mjohns
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum custom_layers {
_BASE,
_RAISE,
_LOWER,
_SYS,
};
#define MG_A LGUI_T(KC_A)
#define MA_S LALT_T(KC_S)
#define MC_D LCTL_T(KC_D)
#define MS_F LSFT_T(KC_F)
#define MS_J RSFT_T(KC_J)
#define MC_K RCTL_T(KC_K)
#define MA_L LALT_T(KC_L)
#define MG_SCLN RGUI_T(KC_SCLN)
#define APP_N A(KC_TAB)
#define APP_P LSA(KC_TAB)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT(
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
MG_A, MA_S, MC_D, MS_F, KC_G, KC_H, MS_J, MC_K, MA_L, MG_SCLN,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOT,
KC_LEFT, KC_RGHT, KC_HOME, KC_END, KC_UP, KC_DOWN,
KC_TAB, KC_SPC, KC_DEL, KC_BSPC, KC_ENT, KC_ESC,
MO(1), MO(2)
),
[_RAISE] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_LBRC, KC_RBRC, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR,
KC_PIPE, KC_GRV, KC_BSLS, KC_LPRN, KC_LCBR, KC_RCBR, KC_RPRN, KC_SLSH, KC_QUES, KC_TILD,
KC_MINS, KC_PLUS, KC_NO, KC_LALT, KC_EQL, KC_UNDS,
KC_NO, KC_NO, KC_NO, KC_RCTL, KC_RSFT, KC_RGUI,
_______, MO(3)
),
[_LOWER] = LAYOUT(
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
KC_F11, KC_INS, KC_PAUS, KC_PGUP, KC_PSCR, KC_MUTE, KC_VOLU, KC_MNXT, KC_MPRV, KC_F12,
KC_SCRL, KC_NO, KC_NO, KC_PGDN, KC_NO, KC_NO, KC_VOLD, KC_MPLY, KC_MSTP, KC_NO,
KC_BRID, KC_BRIU, KC_LALT, KC_NO, APP_N, APP_P,
KC_LGUI, KC_LSFT, KC_LCTL, KC_NO, KC_NO, KC_NO,
MO(3), _______
),
[_SYS] = LAYOUT(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
_______, _______
),
};

View File

@@ -0,0 +1,15 @@
// Copyright 2022 mjohns
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/* mouse config */
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_DELAY 0
#define MOUSEKEY_TIME_TO_MAX 60
#define MOUSEKEY_MAX_SPEED 7
#define MOUSEKEY_WHEEL_DELAY 0
#define TAPPING_TERM 200
#define MASTER_RIGHT

View File

@@ -0,0 +1,60 @@
// Copyright 2022 mjohns
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum custom_layers {
_BASE,
_RAISE,
_LOWER,
_SYS,
};
#define MG_A LGUI_T(KC_A)
#define MA_S LALT_T(KC_S)
#define MC_D LCTL_T(KC_D)
#define MS_F LSFT_T(KC_F)
#define MS_J RSFT_T(KC_J)
#define MC_K RCTL_T(KC_K)
#define MA_L LALT_T(KC_L)
#define MG_SCLN RGUI_T(KC_SCLN)
#define APP_N A(KC_TAB)
#define APP_P LSA(KC_TAB)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT(
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
MG_A, MA_S, MC_D, MS_F, KC_G, KC_H, MS_J, MC_K, MA_L, MG_SCLN,
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_QUOT,
KC_LEFT, KC_RGHT, KC_HOME, KC_END, KC_UP, KC_DOWN,
KC_TAB, KC_SPC, KC_DEL, KC_BSPC, KC_ENT, KC_ESC,
MO(1), MO(2)
),
[_RAISE] = LAYOUT(
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_LBRC, KC_RBRC, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR,
KC_PIPE, KC_GRV, KC_BSLS, KC_LPRN, KC_LCBR, KC_RCBR, KC_RPRN, KC_SLSH, KC_QUES, KC_TILD,
KC_MINS, KC_PLUS, KC_NO, KC_LALT, KC_EQL, KC_UNDS,
KC_NO, KC_NO, KC_NO, KC_RCTL, KC_RSFT, KC_RGUI,
_______, MO(3)
),
[_LOWER] = LAYOUT(
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
KC_F11, KC_INS, KC_PAUS, KC_PGUP, KC_PSCR, KC_MUTE, KC_VOLU, KC_MNXT, KC_MPRV, KC_F12,
KC_SCRL, KC_NO, KC_NO, KC_PGDN, KC_NO, KC_NO, KC_VOLD, KC_MPLY, KC_MSTP, KC_NO,
KC_BRID, KC_BRIU, KC_LALT, KC_NO, APP_N, APP_P,
KC_LGUI, KC_LSFT, KC_LCTL, KC_NO, KC_NO, KC_NO,
MO(3), _______
),
[_SYS] = LAYOUT(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_SLEP, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
_______, _______
),
};

View File

@@ -0,0 +1,2 @@
VIA_ENABLE = yes
LTO_ENABLE = yes

View File

@@ -0,0 +1,27 @@
# Dactyl Tracer
![DactylTracer](https://i.imgur.com/ReCBppEh.jpeg)
The Dactyl Tracer is a handwired, split bodied, concave key-well, columnar keyboard. Case design is similar to the [Dactyl CC](/keyboards/handwired/dactyl_cc) though overall design is closer to the [Dactyl ManuForm](/keyboards/handwired/dactyl_manuform/). The `Q` and `P` keys are vertically offset, from `A` and `;` keys respectively, to allow for easier actuation by third/ring finger.
* Keyboard Maintainer: [Michael Johns](https://github.com/mjohns)
* Hardware Supported: Pro Micro controller, or clone of
* Hardware Availability: [Case Files](https://github.com/mjohns/tracer)
Make example for this keyboard (after setting up your build environment):
make handwired/dactyl_tracer:default
Flashing example for this keyboard:
make handwired/dactyl_tracer:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -0,0 +1 @@
# File intentionally blank

View File

@@ -0,0 +1,5 @@
// Copyright 2023 Ethan Perry (@wheres-perry)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
#define GRAVE_ESC_SHIFT_OVERRIDE

View File

@@ -0,0 +1,103 @@
{
"manufacturer": "Ethan Perry",
"keyboard_name": "rp2040dactyl",
"maintainer": "wheres-perry",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
"soft_serial_pin": "GP0"
},
"features": {
"extrakey": true,
"mousekey": true,
"nkro": true,
"bootmagic": true
},
"matrix_pins": {
"cols": ["GP14", "GP15", "GP16", "GP17", "GP21", "GP22"],
"rows": ["GP8", "GP9", "GP10", "GP11", "GP12"]
},
"processor": "RP2040",
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x0000",
"vid": "0xFEED"
},
"layouts": {
"LAYOUT": {
"layout":
[{"matrix": [0, 0],"label":"Esc", "x":0, "y":0},
{"matrix": [0, 1], "label":"1!", "x":1, "y":0},
{"matrix": [0, 2], "label":"2@", "x":2, "y":0},
{"matrix": [0, 3], "label":"3#", "x":3, "y":0},
{"matrix": [0, 4], "label":"4$", "x":4, "y":0},
{"matrix": [0, 5], "label":"5%", "x":5, "y":0},
{"matrix": [5, 0], "label":"6^", "x":7, "y":0},
{"matrix": [5, 1], "label":"7&", "x":8, "y":0},
{"matrix": [5, 2], "label":"8*", "x":9, "y":0},
{"matrix": [5, 3], "label":"9(", "x":10, "y":0},
{"matrix": [5, 4], "label":"0)", "x":11, "y":0},
{"matrix": [5, 5], "label":"+", "x":12, "y":0},
{"matrix": [1, 0], "label":"|", "x":0, "y":1},
{"matrix": [1, 1], "label":"B", "x":1, "y":1},
{"matrix": [1, 2], "label":"Y", "x":2, "y":1},
{"matrix": [1, 3], "label":"O", "x":3, "y":1},
{"matrix": [1, 4], "label":"U", "x":4, "y":1},
{"matrix": [1, 5], "label":"\"", "x":5, "y":1},
{"matrix": [6, 0], "label":":", "x":7, "y":1},
{"matrix": [6, 1], "label":"L", "x":8, "y":1},
{"matrix": [6, 2], "label":"D", "x":9, "y":1},
{"matrix": [6, 3], "label":"W", "x":10, "y":1},
{"matrix": [6, 4], "label":"V", "x":11, "y":1},
{"matrix": [6, 5], "label":"Z", "x":12, "y":1},
{"matrix": [2, 0], "label":"Arrows", "x":0, "y":2},
{"matrix": [2, 1], "label":"C", "x":1, "y":2},
{"matrix": [2, 2], "label":"I", "x":2, "y":2},
{"matrix": [2, 3], "label":"E", "x":3, "y":2},
{"matrix": [2, 4], "label":"A", "x":4, "y":2},
{"matrix": [2, 5], "label":"<", "x":5, "y":2},
{"matrix": [7, 0], "label":">", "x":7, "y":2},
{"matrix": [7, 1], "label":"H", "x":8, "y":2},
{"matrix": [7, 2], "label":"T", "x":9, "y":2},
{"matrix": [7, 3], "label":"S", "x":10, "y":2},
{"matrix": [7, 4], "label":"N", "x":11, "y":2},
{"matrix": [7, 5], "label":"Q", "x":12, "y":2},
{"matrix": [3, 0], "label":"Shift", "x":0, "y":3},
{"matrix": [3, 1], "label":"G", "x":1, "y":3},
{"matrix": [3, 2], "label":"X", "x":2, "y":3},
{"matrix": [3, 3], "label":"J", "x":3, "y":3},
{"matrix": [3, 4], "label":"K", "x":4, "y":3},
{"matrix": [3, 5], "label":"_", "x":5, "y":3},
{"matrix": [8, 0], "label":"?", "x":7, "y":3},
{"matrix": [8, 1], "label":"R", "x":8, "y":3},
{"matrix": [8, 2], "label":"M", "x":9, "y":3},
{"matrix": [8, 3], "label":"F", "x":10, "y":3},
{"matrix": [8, 4], "label":"P", "x":11, "y":3},
{"matrix": [8, 5], "label":"FN", "x":12, "y":3},
{"matrix": [4, 3], "label":"Del", "x":3, "y":5},
{"matrix": [4, 4], "label":"Space", "x":4, "y":5},
{"matrix": [4, 5], "label":"Backspace", "x":5, "y":5},
{"matrix": [9, 0], "label":"Enter", "x":7, "y":5},
{"matrix": [9, 3], "label":"Symbol", "x":8, "y":5},
{"matrix": [9, 2], "label":"Tab", "x":9, "y":5},
{"matrix": [4, 1], "label":"Windows", "x":4, "y":6},
{"matrix": [4, 2], "label":"Alt", "x":5, "y":6},
{"matrix": [9, 1], "label":"Ctrl", "x":7, "y":6},
{"matrix": [9, 4], "label":"Blank", "x":8, "y":6}
]
}
}
}

View File

@@ -0,0 +1,70 @@
/* Copyright 2023 Ethan Perry (@wheres-perry)
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
enum layers {
_BASELAYER,
_FUNCTIONLAYER,
_ARROWLAYER,
_SYMBOLLAYER
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASELAYER] = LAYOUT(
QK_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQUAL,
KC_BSLS,KC_B, KC_Y, KC_O, KC_U, KC_QUOT, KC_SCLN,KC_L, KC_D, KC_W, KC_V, KC_Z,
MO(_FUNCTIONLAYER), KC_C, KC_I, KC_E, KC_A, KC_COMM, KC_DOT, KC_H, KC_T, KC_S, KC_N, KC_Q,
KC_LSFT,KC_G, KC_X, KC_J, KC_K, KC_MINS, KC_SLSH,KC_R, KC_M, KC_F, KC_P, MO(_ARROWLAYER),
KC_DEL, KC_SPC,KC_BSPC, KC_ENT, MO(_SYMBOLLAYER), KC_TAB,
KC_LGUI,KC_LALT, KC_RCTL,KC_NO
),
[_ARROWLAYER] = LAYOUT(
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_UP, KC_TRNS,KC_TRNS,KC_TRNS,
MO(_FUNCTIONLAYER), KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_LEFT,KC_DOWN,KC_RGHT,KC_TRNS,KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,
KC_DEL, KC_SPC,KC_BSPC, KC_ENT, MO(_SYMBOLLAYER), KC_TAB,
KC_LGUI,KC_LALT, KC_RCTL,KC_NO
),
[_FUNCTIONLAYER] = LAYOUT(
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
KC_DEL, KC_SPC,KC_BSPC, KC_ENT, MO(_SYMBOLLAYER), KC_TAB,
KC_LGUI,KC_LALT, KC_RCTL, KC_NO
),
[_SYMBOLLAYER] = LAYOUT(
KC_TILD,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
KC_NO, KC_PIPE,KC_BSLS,KC_EQL, KC_LT, KC_GT, KC_LCBR,KC_RCBR,KC_UNDS,KC_ASTR,KC_PLUS, KC_NO,
KC_TRNS, KC_QUES,KC_QUOT,KC_DQUO,KC_COLN,KC_SCLN, KC_LPRN,KC_RPRN,KC_COMM,KC_DOT, KC_MINS,KC_NO,
KC_LSFT,KC_CIRC,KC_PERC,KC_AMPR,KC_HASH,KC_SLSH, KC_LBRC,KC_RBRC,KC_DLR, KC_AT, KC_EXLM,KC_TRNS,
KC_DEL, KC_SPC,KC_BSPC, KC_ENT, KC_TRNS, KC_TAB,
KC_LGUI,KC_LALT, KC_RCTL,KC_NO
)
};

View File

@@ -0,0 +1,26 @@
# handwired/jankrp2040dactyl
A budget Dactyl-Manuform build using Raspberry Pi Pico.
* Keyboard Maintainer: [Ethan Perry](https://github.com/wheres-perry)
* Hardware Supported: RP2040 Community Edition
* Hardware Availability: https://www.digikey.com/en/product-highlight/r/raspberry-pi/raspberry-pi-picoboard
Make example for this keyboard (after setting up your build environment):
make handwired/jankrp2040dactyl:default
Flashing example for this keyboard:
make handwired/jankrp2040dactyl:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -0,0 +1 @@
SERIAL_DRIVER = vendor

View File

@@ -0,0 +1,78 @@
{
"manufacturer": "ScottoKeebs",
"keyboard_name": "ScottoFly",
"maintainer": "joe-scotto",
"development_board": "promicro",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
// 3, 4, 5, 6, 7, 8, 9, A3, A2, A1
"cols": ["D0", "D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5", "F6"],
// 15, 14, 16, 10
"rows": ["B1", "B3", "B2", "B6"]
},
"url": "https://scottokeebs.com",
"usb": {
"device_version": "1.0.0",
"pid": "0x0009",
"vid": "0xFEED"
},
"community_layouts": ["split_3x5_3"],
"layouts": {
"LAYOUT_split_3x5_3": {
"layout": [
// Row 1
{ "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 },
// Row 2
{ "matrix": [1, 0], "x": 0, "y": 1 },
{ "matrix": [1, 1], "x": 1, "y": 1 },
{ "matrix": [1, 2], "x": 2, "y": 1 },
{ "matrix": [1, 3], "x": 3, "y": 1 },
{ "matrix": [1, 4], "x": 4, "y": 1 },
{ "matrix": [1, 5], "x": 5, "y": 1 },
{ "matrix": [1, 6], "x": 6, "y": 1 },
{ "matrix": [1, 7], "x": 7, "y": 1 },
{ "matrix": [1, 8], "x": 8, "y": 1 },
{ "matrix": [1, 9], "x": 9, "y": 1 },
// Row 3
{ "matrix": [2, 0], "x": 0, "y": 2 },
{ "matrix": [2, 1], "x": 1, "y": 2 },
{ "matrix": [2, 2], "x": 2, "y": 2 },
{ "matrix": [2, 3], "x": 3, "y": 2 },
{ "matrix": [2, 4], "x": 4, "y": 2 },
{ "matrix": [2, 5], "x": 5, "y": 2 },
{ "matrix": [2, 6], "x": 6, "y": 2 },
{ "matrix": [2, 7], "x": 7, "y": 2 },
{ "matrix": [2, 8], "x": 8, "y": 2 },
{ "matrix": [2, 9], "x": 9, "y": 2 },
// Row 4
{ "matrix": [3, 2], "x": 2, "y": 3 },
{ "matrix": [3, 3], "x": 3, "y": 3 },
{ "matrix": [3, 4], "x": 4, "y": 3 },
{ "matrix": [3, 5], "x": 5, "y": 3 },
{ "matrix": [3, 6], "x": 6, "y": 3 },
{ "matrix": [3, 7], "x": 7, "y": 3 }
]
}
}
}

View File

@@ -0,0 +1,23 @@
/*
Copyright 2022 Joe Scotto
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 options
#define TAPPING_TERM 135
#define PERMISSIVE_HOLD
#define TAPPING_TERM_PER_KEY

View File

@@ -0,0 +1,45 @@
/*
Copyright 2022 Joe Scotto
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_split_3x5_3(
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC,
LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
KC_LGUI, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), KC_ESC
),
[1] = LAYOUT_split_3x5_3(
KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[2] = LAYOUT_split_3x5_3(
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
),
[3] = LAYOUT_split_3x5_3(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
)
};

View File

@@ -0,0 +1,27 @@
# ScottoFly
![ScottoFly](https://i.imgur.com/TXuNxt7h.jpg)
A 36-key split monoblock ergonomic column-staggered ortholinear keyboard with 20° of angle on each half. Case files available [here](https://github.com/joe-scotto/scottokeebs).
* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto)
* Hardware Supported: ATmega32U4
* Hardware Availability: [Amazon](https://amazon.com)
Make example for this keyboard (after setting up your build environment):
make handwired/scottokeebs/scottofly:default
Flashing example for this keyboard:
make handwired/scottokeebs/scottofly:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -0,0 +1 @@
# This file intentionally left blank

View File

@@ -0,0 +1,72 @@
{
"manufacturer": "ScottoKeebs",
"keyboard_name": "ScottoLong",
"maintainer": "joe-scotto",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["GP6", "GP7", "GP8", "GP9", "GP10", "GP11", "GP12", "GP13", "GP14", "GP15"],
"rows": ["GP2", "GP3", "GP4", "GP5"]
},
"processor": "RP2040",
"url": "https://scottokeebs.com",
"usb": {
"device_version": "1.0.0",
"pid": "0x0011",
"vid": "0xFEED"
},
"layouts": {
"LAYOUT_ortho_3x10_3": {
"layout": [
// Row 1
{ "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 },
// Row 2
{ "matrix": [1, 0], "x": 0, "y": 1 },
{ "matrix": [1, 1], "x": 1, "y": 1 },
{ "matrix": [1, 2], "x": 2, "y": 1 },
{ "matrix": [1, 3], "x": 3, "y": 1 },
{ "matrix": [1, 4], "x": 4, "y": 1 },
{ "matrix": [1, 5], "x": 5, "y": 1 },
{ "matrix": [1, 6], "x": 6, "y": 1 },
{ "matrix": [1, 7], "x": 7, "y": 1 },
{ "matrix": [1, 8], "x": 8, "y": 1 },
{ "matrix": [1, 9], "x": 9, "y": 1 },
// Row 3
{ "matrix": [2, 0], "x": 0, "y": 2 },
{ "matrix": [2, 1], "x": 1, "y": 2 },
{ "matrix": [2, 2], "x": 2, "y": 2 },
{ "matrix": [2, 3], "x": 3, "y": 2 },
{ "matrix": [2, 4], "x": 4, "y": 2 },
{ "matrix": [2, 5], "x": 5, "y": 2 },
{ "matrix": [2, 6], "x": 6, "y": 2 },
{ "matrix": [2, 7], "x": 7, "y": 2 },
{ "matrix": [2, 8], "x": 8, "y": 2 },
{ "matrix": [2, 9], "x": 9, "y": 2 },
// Row 4
{ "matrix": [3, 0], "x": 0, "y": 3 },
{ "matrix": [3, 4], "x": 4, "y": 3 },
{ "matrix": [3, 9], "x": 9, "y": 3 }
]
}
}
}

View File

@@ -0,0 +1,23 @@
/*
Copyright 2022 Joe Scotto
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 options
#define TAPPING_TERM 135
#define PERMISSIVE_HOLD
#define TAPPING_TERM_PER_KEY

View File

@@ -0,0 +1,45 @@
/*
Copyright 2022 Joe Scotto
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_ortho_3x10_3(
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_BSPC,
LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
KC_LGUI, LT(1, KC_SPC), LT(2, KC_TAB)
),
[1] = LAYOUT_ortho_3x10_3(
KC_UNDS, KC_MINS, KC_PLUS, KC_EQL, KC_COLN, KC_GRV, KC_MRWD, KC_MPLY, KC_MFFD, KC_DEL,
KC_LCBR, KC_LPRN, KC_RPRN, KC_RCBR, KC_PIPE, KC_ESC, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT,
LSFT_T(KC_LBRC), KC_QUOT, KC_DQUO, KC_RBRC, KC_SCLN, KC_TILDE, KC_VOLD, KC_MUTE, KC_VOLU, RSFT_T(KC_BSLS),
KC_TRNS, KC_TRNS, KC_TRNS
),
[2] = LAYOUT_ortho_3x10_3(
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_CAPS, KC_BSPC,
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
KC_LSFT, KC_NO, KC_NO, KC_NO, MO(3), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
KC_TRNS, KC_TRNS, KC_TRNS
),
[3] = LAYOUT_ortho_3x10_3(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12,
KC_TRNS, KC_TRNS, KC_TRNS
)
};

View File

@@ -0,0 +1,27 @@
# ScottoLong
![ScottoLong](https://i.imgur.com/AEQWXLlh.jpeg)
A 33-key ortholinear keyboard with a 7u spacebar and two 1.5u function keys. Case files available [here](https://github.com/joe-scotto/scottokeebs).
* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto)
* Hardware Supported: RP2040
* Hardware Availability: [Amazon](https://amazon.com)
Make example for this keyboard (after setting up your build environment):
make handwired/scottokeebs/scottolong:default
Flashing example for this keyboard:
make handwired/scottokeebs/scottolong:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -0,0 +1 @@
# This file intentionally left blank

View File

@@ -0,0 +1,52 @@
{
"manufacturer": "ScottoKeebs",
"keyboard_name": "ScottoMacrodeck",
"maintainer": "joe-scotto",
"development_board": "promicro",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"build" : {
"lto": true,
},
"matrix_pins": {
"direct": [
["D3", "D2", "D1", null],
["D0", "D4", "C6", "D7"],
["E6", "B4", "B5", "F4"]
]
},
"url": "https://scottokeebs.com",
"usb": {
"device_version": "1.0.0",
"pid": "0x0015",
"vid": "0xFEED"
},
"layouts": {
"LAYOUT": {
"layout": [
// Row 1
{ "matrix": [0, 0], "x": 0, "y": 0 },
{ "matrix": [0, 1], "x": 1, "y": 0 },
{ "matrix": [0, 2], "x": 2, "y": 0 },
// Row 2
{ "matrix": [1, 0], "x": 0, "y": 1 },
{ "matrix": [1, 1], "x": 1, "y": 1 },
{ "matrix": [1, 2], "x": 2, "y": 1 },
{ "matrix": [1, 3], "x": 3, "y": 1 },
// Row 3
{ "matrix": [2, 0], "x": 0, "y": 2 },
{ "matrix": [2, 1], "x": 1, "y": 2 },
{ "matrix": [2, 2], "x": 2, "y": 2 },
{ "matrix": [2, 3], "x": 3, "y": 2 }
]
}
}
}

View File

@@ -0,0 +1,26 @@
/*
Copyright 2023 Joe Scotto
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_1, KC_2, KC_3,
KC_Q, KC_W, KC_E, KC_R,
KC_A, KC_S, KC_D, KC_F
)
};

View File

@@ -0,0 +1,29 @@
# ScottoMacrodeck
![ScottoMacrodeck](https://imgur.com/KVJuIVNh.jpeg)
An 11-key macropad designed specifically for someone who games with a single thumb, however, it can be used as a traditional macropad. Case files available [here](https://github.com/joe-scotto/scottokeebs).
* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto)
* Hardware Supported: ATmega32U4
* Hardware Availability: [Amazon](https://amazon.com)
# Compiling
Make example for this keyboard (after setting up your build environment):
make handwired/scottokeebs/scottomacrodeck:default
Flashing example for this keyboard:
make handwired/scottokeebs/scottomacrodeck:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -0,0 +1,39 @@
{
"manufacturer": "ScottoKeebs",
"keyboard_name": "ScottoMouse",
"maintainer": "joe-scotto",
"bootloader": "rp2040",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"direct": [
["GP0", "GP1", "GP2", "GP3", "GP4", "GP5"]
]
},
"processor": "RP2040",
"url": "https://scottokeebs.com",
"usb": {
"device_version": "1.0.0",
"pid": "0x0018",
"vid": "0xFEED"
},
"layouts": {
"LAYOUT": {
"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}
]
}
}
}

View File

@@ -0,0 +1,24 @@
/*
Copyright 2023 Joe Scotto
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_MS_BTN1, KC_MS_BTN2, KC_MS_LEFT, KC_MS_UP, KC_MS_DOWN, KC_MS_RIGHT
)
};

View File

@@ -0,0 +1,26 @@
/*
Copyright 2023 Joe Scotto
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
// Mouse key speed and acceleration.
#define MOUSEKEY_DELAY 0
#define MOUSEKEY_INTERVAL 16
#define MOUSEKEY_WHEEL_DELAY 0
#define MOUSEKEY_MAX_SPEED 6
#define MOUSEKEY_TIME_TO_MAX 64

View File

@@ -0,0 +1,33 @@
/*
Copyright 2023 Joe Scotto
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 scroll_down[] = {KC_MS_BTN1, KC_MS_BTN2, KC_MS_DOWN, COMBO_END};
const uint16_t PROGMEM scroll_up[] = {KC_MS_BTN1, KC_MS_BTN2, KC_MS_UP, COMBO_END};
const uint16_t PROGMEM middle_click[] = {KC_MS_BTN1, KC_MS_BTN2, COMBO_END};
combo_t key_combos[] = {
COMBO(scroll_down, KC_MS_WH_DOWN),
COMBO(scroll_up, KC_MS_WH_UP),
COMBO(middle_click, KC_MS_BTN3)
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT(
KC_MS_BTN1, KC_MS_BTN2, KC_MS_LEFT, KC_MS_UP, KC_MS_DOWN, KC_MS_RIGHT
)
};

View File

@@ -0,0 +1 @@
COMBO_ENABLE = yes

View File

@@ -0,0 +1,29 @@
# ScottoMouse
![ScottoMouse](https://i.imgur.com/yjnhyXWh.jpeg)
A 6-key macropad that utilizes [QMK mouse keys](https://github.com/qmk/qmk_firmware/blob/master/docs/feature_mouse_keys.md) to emulate a mouse, case files available [here](https://github.com/joe-scotto/scottokeebs.git).
* Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto)
* Hardware Supported: Raspberry Pi Pico
* Hardware Availability: [ScottoKeebs](https://scottokeebs.com), [Amazon](https://amazon.com), [Ali](https://amazon.com)
# Compiling
Make example for this keyboard (after setting up your build environment):
make handwired/scottokeebs/scottomouse:default
Flashing example for this keyboard:
make handwired/scottokeebs/scottomouse:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -0,0 +1 @@
# This file intentionally left blank

View File

@@ -0,0 +1,75 @@
{
"manufacturer": "ScottoKeebs",
"keyboard_name": "ScottoSlant",
"maintainer": "joe-scotto",
"development_board": "promicro",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"cols": ["D1", "D0", "D4", "C6", "D7", "E6", "B4", "B5", "F4", "F5"],
"rows": ["B1", "B3", "B2", "B6"]
},
"url": "https://scottokeebs.com",
"usb": {
"device_version": "1.0.0",
"pid": "0x0004",
"vid": "0x534B"
},
"layouts": {
"LAYOUT": {
"layout": [
// Row 1
{ "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 },
// Row 2
{ "matrix": [1, 0], "x": 0, "y": 1 },
{ "matrix": [1, 1], "x": 1, "y": 1 },
{ "matrix": [1, 2], "x": 2, "y": 1 },
{ "matrix": [1, 3], "x": 3, "y": 1 },
{ "matrix": [1, 4], "x": 4, "y": 1 },
{ "matrix": [1, 5], "x": 5, "y": 1 },
{ "matrix": [1, 6], "x": 6, "y": 1 },
{ "matrix": [1, 7], "x": 7, "y": 1 },
{ "matrix": [1, 8], "x": 8, "y": 1 },
{ "matrix": [1, 9], "x": 9, "y": 1 },
// Row 3
{ "matrix": [2, 0], "x": 0, "y": 2 },
{ "matrix": [2, 1], "x": 1, "y": 2 },
{ "matrix": [2, 2], "x": 2, "y": 2 },
{ "matrix": [2, 3], "x": 3, "y": 2 },
{ "matrix": [2, 4], "x": 4, "y": 2 },
{ "matrix": [2, 5], "x": 5, "y": 2 },
{ "matrix": [2, 6], "x": 6, "y": 2 },
{ "matrix": [2, 7], "x": 7, "y": 2 },
{ "matrix": [2, 8], "x": 8, "y": 2 },
{ "matrix": [2, 9], "x": 9, "y": 2 },
// Row 4
{ "matrix": [3, 1], "x": 1, "y": 3 },
{ "matrix": [3, 2], "x": 2, "y": 3 },
{ "matrix": [3, 3], "x": 3, "y": 3 },
{ "matrix": [3, 4], "x": 4, "y": 3 },
{ "matrix": [3, 6], "x": 6, "y": 3 },
{ "matrix": [3, 7], "x": 7, "y": 3 },
{ "matrix": [3, 8], "x": 8, "y": 3 }
]
}
}
}

Some files were not shown because too many files have changed in this diff Show More