1
0

Compare commits

..

54 Commits

Author SHA1 Message Date
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
Dasky
16f2a3e2f8 Add missing gpio include to ps2 vendor (#22063) 2023-09-18 19:55:51 +01:00
Filip Sund
48b4ce6ddb Adding support for the Pteron56 (PCB) keyboard (#21731) 2023-09-18 13:52:48 +01:00
James Young
cd095c817e Wolf Ziggurat Layout Additions (#22053)
* Add layout/matrix diagram

[docs]

* Friendly-format `info.json`

[style]

* Touch-up layout data

Move the ISO Hash key to the main key area.

[chore]

* Rename `LAYOUT` to `LAYOUT_all`

[refactor]

* Add `LAYOUT_65_xt_ansi_blocker_tsangan_split_bs`

[enhancement]

* Add `LAYOUT_65_xt_ansi_blocker_tsangan`

[enhancement]

* Add `LAYOUT_65_xt_iso_blocker_tsangan_split_bs`

[enhancement]

* Add `LAYOUT_65_xt_iso_blocker_tsangan`

[enhancement]
2023-09-17 21:57:03 -07:00
James Young
6ba53f661a Wolf Silhouette Community Layout Support (#22052)
* Add layout/matrix diagram

[docs]

* Friendly-format `info.json`

[style]

* Touch-up layout data

Move the ISO Hash key to the main key area.

[chore]

* Rename `LAYOUT` to `LAYOUT_all`

[refactor]

* 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]
2023-09-17 21:26:13 -07:00
James Young
25df4ba6bd Wolf Neely65 Touch-Up (#22045)
* Add layout/matrix diagram

[docs]

* Friendly-format `info.json`

[style]

* Touch-up keymaps

- grid-align keycodes
- use QMK-native keycode aliases

[refactor]

* Fix keymaps

Fix keycodes being assigned out of order with respect to `info.json`.

- move XT function keys to left side
- move keycodes for position [2, 14] from Home Row to Number Row

[bugfix]

* Rename `LAYOUT` to `LAYOUT_65_xt_ansi_blocker_tsangan_wkl_split_bs`

[refactor]

* Add `LAYOUT_65_xt_ansi_blocker_tsangan_wkl`

[enhancement]
2023-09-17 20:50:14 -07:00
James Young
b5181e3d06 Viktus Styrka Topre Layout Standardization and Touch-Up (#22044)
* Add layout/matrix diagram

[docs]

* Alias `LAYOUT_all` to `LAYOUT_split_6u`

`LAYOUT_all` and `LAYOUT_split_6u` represent the same matrix positions
and sequence, so implement the former as an alias.

[refactor]

* Touch-up keymaps

- grid-align keycodes
- use QMK-native keycode aliases

[chore]

* Friendly-format `info.json`

[style]

* Correct layout data

Correct key sizes/positioning on the bottom row.

[chore]

* Rename `LAYOUT_2u_6u` to `LAYOUT_65_xt_ansi_blocker`

[refactor]

* Rename `LAYOUT_2u_7u` to `LAYOUT_65_xt_ansi_blocker_tsangan`

[refactor]

* Rename `LAYOUT_split_6u` to `LAYOUT_65_xt_ansi_blocker_split_bs`

[refactor]

* Rename `LAYOUT_split_7u` to `LAYOUT_65_xt_ansi_blocker_tsangan_split_bs`

[refactor]
2023-09-17 20:17:51 -07:00
Controller Works
6129f5f68b Add all RGB Matrix Animations to city42 (#21992) 2023-09-17 11:41:26 -06:00
Moritz Plattner
652c5a9410 geistmaschine/macropod: fix issues waking up after suspend on apple devices (#22023) 2023-09-17 11:35:29 -06:00
Yak
9f9ad95fb4 Fix paragon encoder pinout for soldered version (#22043) 2023-09-17 11:32:44 -06:00
232 changed files with 14272 additions and 1034 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

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

@@ -3,6 +3,11 @@
"cols": ["F7", "F6", "F5", "F4", "F1", "F0", "C7", "E6", "B0", "B3", "B6", "B5", "B4", "D7", "D4", "D6"],
"rows": ["D2", "D1", "D0", "B2", "B1", "C6"]
},
"encoder": {
"rotary": [
{ "pin_a": "D3", "pin_b": "D5", "resolution": 2 }
]
},
"layouts": {
"LAYOUT_ansi_rwkl": {
"layout": [

View File

@@ -18,11 +18,6 @@
},
"processor": "atmega32u4",
"url": "",
"encoder": {
"rotary": [
{ "pin_a": "D3", "pin_b": "D5", "resolution": 2 }
]
},
"usb": {
"device_version": "1.0.0",
"pid": "0x3449",

View File

@@ -3,6 +3,11 @@
"cols": ["E6", "F0", "F1", "F4", "F5", "F6", "F7", "B0", "B1", "B3", "D0", "D1", "D2", "D3", "D7", "D5"],
"rows": ["B2", "C7", "C6", "B6", "B5", "B4"]
},
"encoder": {
"rotary": [
{ "pin_a": "D4", "pin_b": "D6", "resolution": 2 }
]
},
"layouts": {
"LAYOUT_ansi_rwkl": {
"layout": [

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

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

View File

@@ -23,32 +23,50 @@
"processor": "RP2040",
"rgb_matrix": {
"animations": {
"solid_color": true,
"alphas_mods": true,
"gradient_up_down": true,
"gradient_left_right": true,
"breathing": true,
"band_sat": true,
"band_val": true,
"band_pinwheel_sat": true,
"band_pinwheel_val": true,
"band_sat": true,
"band_spiral_sat": true,
"band_spiral_val": true,
"band_val": true,
"breathing": true,
"cycle_all": true,
"cycle_left_right": true,
"cycle_up_down": true,
"cycle_out_in": true,
"cycle_out_in_dual": true,
"rainbow_moving_chevron": true,
"cycle_pinwheel": true,
"cycle_spiral": true,
"cycle_up_down": true,
"gradient_left_right": true,
"gradient_up_down": true,
"dual_beacon": true,
"rainbow_beacon": true,
"rainbow_pinwheels": true,
"raindrops": true,
"jellybean_raindrops": true,
"hue_breathing": true,
"hue_pendulum": true,
"hue_wave": true,
"rainbow_moving_chevron": true,
"raindrops": true,
"solid_reactive": true,
"solid_reactive_multinexus": true,
"pixel_fractal": true,
"pixel_flow": true,
"pixel_rain": true,
"typing_heatmap": true,
"digital_rain": true,
"solid_reactive_simple": true,
"solid_splash": 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,
"typing_heatmap": true
"multisplash": true,
"solid_splash": true,
"solid_multisplash": true
},
"driver": "ws2812",
"layout": [

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

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

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

@@ -19,3 +19,6 @@
IO expander setup would allow up to 1x16 + 1 from the MCU */
#define MATRIX_ROWS 1
#define MATRIX_COLS 17
/* Fix for Apple Silicon Macs struggling to detect board after suspend/sleep */
#define USB_SUSPEND_WAKEUP_DELAY 200

View File

@@ -15,7 +15,7 @@
"command": false,
"console": false,
"extrakey": true,
"mousekey": false,
"mousekey": true,
"nkro": false,
"encoder": true
},

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 }
]
}
}
}

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(
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_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), KC_ESC
),
[1] = LAYOUT(
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, KC_TRNS
),
[2] = LAYOUT(
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, KC_TRNS
),
[3] = LAYOUT(
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, KC_TRNS
)
};

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,69 @@
/*
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(
KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
KC_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), LT(1, KC_TAB), LT(2, KC_ENT), KC_ESC
),
[1] = LAYOUT(
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_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, KC_ESC
),
[2] = LAYOUT(
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_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, KC_ESC
),
[3] = LAYOUT(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(4),
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_ESC, KC_LCTL, KC_LALT, LGUI_T(KC_SPC), KC_TRNS, KC_TRNS, KC_ESC
),
[4] = LAYOUT(
KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_BSPC,
KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O,
LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMMA, KC_DOT, RSFT_T(KC_SLSH),
KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), KC_ESC
),
[5] = LAYOUT(
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_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), KC_ESC
),
[6] = LAYOUT(
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(7), KC_NO, KC_NO, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
KC_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), KC_ESC
),
[7] = LAYOUT(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TO(0),
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_ESC, KC_LALT, KC_LCTL, KC_SPC, LT(5, KC_TAB), LT(6, KC_ENT), KC_ESC
)
};

View File

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

View File

@@ -0,0 +1,28 @@
# ScottoSlant
![ScottoSlant](https://i.imgur.com/p10NGimh.jpg)
A 37-key handwired 0.25u row-staggered keyboard with a 2u spacebar. 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/scottoslant:default
Flashing example for this keyboard:
make handwired/scottokeebs/scottoslant: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 @@
LTO_ENABLE = yes

View File

@@ -36,6 +36,7 @@
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"community_layouts": ["66_ansi", "66_iso"],
"layouts": {
"LAYOUT_66_ansi": {
"layout": [

View File

@@ -48,8 +48,12 @@
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"layout_aliases": {
"LAYOUT": "LAYOUT_all"
},
"community_layouts": ["96_ansi"],
"layouts": {
"LAYOUT": {
"LAYOUT_all": {
"layout": [
{"matrix": [5, 0], "x": 0, "y": 0},
{"matrix": [5, 1], "x": 1, "y": 0},
@@ -161,6 +165,115 @@
{"matrix": [6, 1], "x": 17, "y": 5},
{"matrix": [6, 0], "x": 18, "y": 5}
]
},
"LAYOUT_96_ansi": {
"layout": [
{"matrix": [5, 0], "x": 0, "y": 0},
{"matrix": [5, 1], "x": 1, "y": 0},
{"matrix": [5, 2], "x": 2, "y": 0},
{"matrix": [5, 3], "x": 3, "y": 0},
{"matrix": [5, 4], "x": 4, "y": 0},
{"matrix": [5, 5], "x": 5, "y": 0},
{"matrix": [5, 6], "x": 6, "y": 0},
{"matrix": [5, 7], "x": 7, "y": 0},
{"matrix": [5, 8], "x": 8, "y": 0},
{"matrix": [11, 8], "x": 9, "y": 0},
{"matrix": [11, 7], "x": 10, "y": 0},
{"matrix": [11, 5], "x": 11, "y": 0},
{"matrix": [11, 4], "x": 12, "y": 0},
{"matrix": [11, 3], "x": 13, "y": 0},
{"matrix": [11, 6], "x": 14, "y": 0},
{"matrix": [11, 2], "x": 15, "y": 0},
{"matrix": [11, 1], "x": 16, "y": 0},
{"matrix": [11, 0], "x": 17, "y": 0},
{"matrix": [6, 3], "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": [4, 6], "x": 6, "y": 1},
{"matrix": [4, 7], "x": 7, "y": 1},
{"matrix": [4, 8], "x": 8, "y": 1},
{"matrix": [10, 8], "x": 9, "y": 1},
{"matrix": [10, 7], "x": 10, "y": 1},
{"matrix": [10, 5], "x": 11, "y": 1},
{"matrix": [10, 4], "x": 12, "y": 1},
{"matrix": [10, 6], "x": 13, "y": 1, "w": 2},
{"matrix": [10, 2], "x": 15, "y": 1},
{"matrix": [10, 1], "x": 16, "y": 1},
{"matrix": [10, 0], "x": 17, "y": 1},
{"matrix": [6, 4], "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": [3, 6], "x": 6.5, "y": 2},
{"matrix": [3, 7], "x": 7.5, "y": 2},
{"matrix": [3, 8], "x": 8.5, "y": 2},
{"matrix": [9, 8], "x": 9.5, "y": 2},
{"matrix": [9, 7], "x": 10.5, "y": 2},
{"matrix": [9, 5], "x": 11.5, "y": 2},
{"matrix": [9, 4], "x": 12.5, "y": 2},
{"matrix": [8, 4], "x": 13.5, "y": 2, "w": 1.5},
{"matrix": [9, 6], "x": 15, "y": 2},
{"matrix": [9, 2], "x": 16, "y": 2},
{"matrix": [9, 1], "x": 17, "y": 2},
{"matrix": [9, 0], "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": [2, 6], "x": 6.75, "y": 3},
{"matrix": [2, 7], "x": 7.75, "y": 3},
{"matrix": [2, 8], "x": 8.75, "y": 3},
{"matrix": [8, 8], "x": 9.75, "y": 3},
{"matrix": [8, 7], "x": 10.75, "y": 3},
{"matrix": [8, 5], "x": 11.75, "y": 3},
{"matrix": [9, 3], "x": 12.75, "y": 3, "w": 2.25},
{"matrix": [8, 6], "x": 15, "y": 3},
{"matrix": [8, 2], "x": 16, "y": 3},
{"matrix": [8, 1], "x": 17, "y": 3},
{"matrix": [1, 0], "x": 0, "y": 4, "w": 2.25},
{"matrix": [1, 2], "x": 2.25, "y": 4},
{"matrix": [1, 3], "x": 3.25, "y": 4},
{"matrix": [1, 4], "x": 4.25, "y": 4},
{"matrix": [1, 5], "x": 5.25, "y": 4},
{"matrix": [1, 6], "x": 6.25, "y": 4},
{"matrix": [1, 7], "x": 7.25, "y": 4},
{"matrix": [1, 8], "x": 8.25, "y": 4},
{"matrix": [7, 8], "x": 9.25, "y": 4},
{"matrix": [7, 7], "x": 10.25, "y": 4},
{"matrix": [7, 5], "x": 11.25, "y": 4},
{"matrix": [7, 4], "x": 12.25, "y": 4, "w": 1.75},
{"matrix": [7, 3], "x": 14, "y": 4},
{"matrix": [7, 6], "x": 15, "y": 4},
{"matrix": [7, 2], "x": 16, "y": 4},
{"matrix": [7, 1], "x": 17, "y": 4},
{"matrix": [7, 0], "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": [0, 6], "x": 3.75, "y": 5, "w": 6.25},
{"matrix": [0, 8], "x": 10, "y": 5},
{"matrix": [0, 7], "x": 11, "y": 5},
{"matrix": [0, 5], "x": 12, "y": 5},
{"matrix": [0, 4], "x": 13, "y": 5},
{"matrix": [0, 3], "x": 14, "y": 5},
{"matrix": [6, 6], "x": 15, "y": 5},
{"matrix": [6, 2], "x": 16, "y": 5},
{"matrix": [6, 1], "x": 17, "y": 5}
]
}
}
}

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