* split config.h for each variant * split rules.mk for each variant * split source and header files for each variant * move keymaps to the appropriate variant * update keyboard readme * update keymap readmes * differentiate Staggered and Ortho USB Device Strings * clean up formatting in info.json * split info.json files for each variant * break up the info.json for readability * correct key positioning and board dimensions * correct key object sequences * add weak encoder function to keyboard level Allows Configurator-compiled firmware to have encoder functionality. * add variant-specific readme files and bootloader instructionspull/11669/head
@ -1,207 +0,0 @@ | |||
{ | |||
"keyboard_name": "program_yoink", | |||
"url": "", | |||
"maintainer": "melonbred", | |||
"width": 13.75, | |||
"height": 4.25, | |||
"layouts": { | |||
"LAYOUT_default": { | |||
"layout": [ | |||
{"x":0, "y":0}, | |||
{"x":1, "y":0}, | |||
{"x":2, "y":0}, | |||
{"x":3, "y":0}, | |||
{"x":4, "y":0}, | |||
{"x":5, "y":0}, | |||
{"x":6, "y":0}, | |||
{"x":7, "y":0}, | |||
{"x":8, "y":0}, | |||
{"x":9, "y":0}, | |||
{"x":10, "y":0}, | |||
{"x":11, "y":0}, | |||
{"x":12.75, "y":0}, | |||
{"x":0, "y":1, "w":1.25}, | |||
{"x":1.25, "y":1}, | |||
{"x":2.25, "y":1}, | |||
{"x":3.25, "y":1}, | |||
{"x":4.25, "y":1}, | |||
{"x":5.25, "y":1}, | |||
{"x":6.25, "y":1}, | |||
{"x":7.25, "y":1}, | |||
{"x":8.25, "y":1}, | |||
{"x":9.25, "y":1}, | |||
{"x":10.25, "y":1, "w":1.75}, | |||
{"x":12.75, "y":1}, | |||
{"x":0, "y":2, "w":1.75}, | |||
{"x":1.75, "y":2}, | |||
{"x":2.75, "y":2}, | |||
{"x":3.75, "y":2}, | |||
{"x":4.75, "y":2}, | |||
{"x":5.75, "y":2}, | |||
{"x":6.75, "y":2}, | |||
{"x":7.75, "y":2}, | |||
{"x":8.75, "y":2}, | |||
{"x":9.75, "y":2, "w":1.25}, | |||
{"x":12.75, "y":2}, | |||
{"x":11.25, "y":2.25}, | |||
{"x":0, "y":3, "w":1.25}, | |||
{"x":1.25, "y":3, "w":1.25}, | |||
{"x":2.5, "y":3, "w":6.25}, | |||
{"x":8.75, "y":3, "w":1.25}, | |||
{"x":10.25, "y":3.25}, | |||
{"x":11.25, "y":3.25}, | |||
{"x":12.25, "y":3.25}] | |||
}, | |||
"LAYOUT_split_bar": { | |||
"layout": [ | |||
{"x":0, "y":0}, | |||
{"x":1, "y":0}, | |||
{"x":2, "y":0}, | |||
{"x":3, "y":0}, | |||
{"x":4, "y":0}, | |||
{"x":5, "y":0}, | |||
{"x":6, "y":0}, | |||
{"x":7, "y":0}, | |||
{"x":8, "y":0}, | |||
{"x":9, "y":0}, | |||
{"x":10, "y":0}, | |||
{"x":11, "y":0}, | |||
{"x":12.75, "y":0}, | |||
{"x":0, "y":1, "w":1.25}, | |||
{"x":1.25, "y":1}, | |||
{"x":2.25, "y":1}, | |||
{"x":3.25, "y":1}, | |||
{"x":4.25, "y":1}, | |||
{"x":5.25, "y":1}, | |||
{"x":6.25, "y":1}, | |||
{"x":7.25, "y":1}, | |||
{"x":8.25, "y":1}, | |||
{"x":9.25, "y":1}, | |||
{"x":10.25, "y":1, "w":1.75}, | |||
{"x":12.75, "y":1}, | |||
{"x":0, "y":2, "w":1.75}, | |||
{"x":1.75, "y":2}, | |||
{"x":2.75, "y":2}, | |||
{"x":3.75, "y":2}, | |||
{"x":4.75, "y":2}, | |||
{"x":5.75, "y":2}, | |||
{"x":6.75, "y":2}, | |||
{"x":7.75, "y":2}, | |||
{"x":8.75, "y":2}, | |||
{"x":9.75, "y":2, "w":1.25}, | |||
{"x":12.75, "y":2}, | |||
{"x":11.25, "y":2.25}, | |||
{"x":0, "y":3}, | |||
{"x":1, "y":3}, | |||
{"x":2, "y":3}, | |||
{"x":3, "y":3, "w":2.75}, | |||
{"x":5.75, "y":3, "w":2.25}, | |||
{"x":8, "y":3}, | |||
{"x":9, "y":3}, | |||
{"x":10.25, "y":3.25}, | |||
{"x":11.25, "y":3.25}, | |||
{"x":12.25, "y":3.25}] | |||
}, | |||
"LAYOUT_ortho": { | |||
"layout": [ | |||
{"x":0, "y":0}, | |||
{"x":1, "y":0}, | |||
{"x":2, "y":0}, | |||
{"x":3, "y":0}, | |||
{"x":4, "y":0}, | |||
{"x":5, "y":0}, | |||
{"x":6, "y":0}, | |||
{"x":7, "y":0}, | |||
{"x":8, "y":0}, | |||
{"x":9, "y":0}, | |||
{"x":10, "y":0}, | |||
{"x":11, "y":0}, | |||
{"x":12.5, "y":0}, | |||
{"x":0, "y":1}, | |||
{"x":1, "y":1}, | |||
{"x":2, "y":1}, | |||
{"x":3, "y":1}, | |||
{"x":4, "y":1}, | |||
{"x":5, "y":1}, | |||
{"x":6, "y":1}, | |||
{"x":7, "y":1}, | |||
{"x":8, "y":1}, | |||
{"x":9, "y":1}, | |||
{"x":10, "y":1}, | |||
{"x":11, "y":1}, | |||
{"x":12.5, "y":1}, | |||
{"x":0, "y":2}, | |||
{"x":1, "y":2}, | |||
{"x":2, "y":2}, | |||
{"x":3, "y":2}, | |||
{"x":4, "y":2}, | |||
{"x":5, "y":2}, | |||
{"x":6, "y":2}, | |||
{"x":7, "y":2}, | |||
{"x":8, "y":2}, | |||
{"x":9, "y":2}, | |||
{"x":10, "y":2}, | |||
{"x":12.5, "y":2}, | |||
{"x":11.25, "y":2.25}, | |||
{"x":0, "y":3}, | |||
{"x":1, "y":3}, | |||
{"x":2, "y":3, "w":7}, | |||
{"x":9, "y":3}, | |||
{"x":10.25, "y":3.25}, | |||
{"x":11.25, "y":3.25}, | |||
{"x":12.25, "y":3.25}] | |||
}, | |||
"LAYOUT_ortho_split": { | |||
"layout": [ | |||
{"x":0, "y":0}, | |||
{"x":1, "y":0}, | |||
{"x":2, "y":0}, | |||
{"x":3, "y":0}, | |||
{"x":4, "y":0}, | |||
{"x":5, "y":0}, | |||
{"x":6, "y":0}, | |||
{"x":7, "y":0}, | |||
{"x":8, "y":0}, | |||
{"x":9, "y":0}, | |||
{"x":10, "y":0}, | |||
{"x":11, "y":0}, | |||
{"x":12.5, "y":0}, | |||
{"x":0, "y":1}, | |||
{"x":1, "y":1}, | |||
{"x":2, "y":1}, | |||
{"x":3, "y":1}, | |||
{"x":4, "y":1}, | |||
{"x":5, "y":1}, | |||
{"x":6, "y":1}, | |||
{"x":7, "y":1}, | |||
{"x":8, "y":1}, | |||
{"x":9, "y":1}, | |||
{"x":10, "y":1}, | |||
{"x":11, "y":1}, | |||
{"x":12.5, "y":1}, | |||
{"x":0, "y":2}, | |||
{"x":1, "y":2}, | |||
{"x":2, "y":2}, | |||
{"x":3, "y":2}, | |||
{"x":4, "y":2}, | |||
{"x":5, "y":2}, | |||
{"x":6, "y":2}, | |||
{"x":7, "y":2}, | |||
{"x":8, "y":2}, | |||
{"x":9, "y":2}, | |||
{"x":10, "y":2}, | |||
{"x":12.75, "y":2}, | |||
{"x":11.25, "y":2.25}, | |||
{"x":0, "y":3}, | |||
{"x":1, "y":3}, | |||
{"x":2, "y":3}, | |||
{"x":3, "y":3, "w":2.75}, | |||
{"x":5.75, "y":3, "w":2.25}, | |||
{"x":8, "y":3}, | |||
{"x":9, "y":3}, | |||
{"x":10.25, "y":3.25}, | |||
{"x":11.25, "y":3.25}, | |||
{"x":12.25, "y":3.25}] | |||
} | |||
} | |||
} |
@ -1 +0,0 @@ | |||
# The default keymap for program_yoink |
@ -1 +0,0 @@ | |||
# The default keymap for ortho program_yoink |
@ -1 +0,0 @@ | |||
# The split space bar keymap for ortho program_yoink |
@ -1 +0,0 @@ | |||
# The default keymap for program_yoink |
@ -0,0 +1,19 @@ | |||
/* | |||
Copyright 2020 melonbred | |||
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/>. | |||
*/ | |||
#define PRODUCT_ID 0xF10C | |||
#define PRODUCT Program Yoink! Ortho |
@ -0,0 +1,118 @@ | |||
{ | |||
"keyboard_name": "program_yoink", | |||
"url": "", | |||
"maintainer": "melonbred", | |||
"width": 13.5, | |||
"height": 4.25, | |||
"layouts": { | |||
"LAYOUT_ortho": { | |||
"layout": [ | |||
{"x":0, "y":0}, | |||
{"x":1, "y":0}, | |||
{"x":2, "y":0}, | |||
{"x":3, "y":0}, | |||
{"x":4, "y":0}, | |||
{"x":5, "y":0}, | |||
{"x":6, "y":0}, | |||
{"x":7, "y":0}, | |||
{"x":8, "y":0}, | |||
{"x":9, "y":0}, | |||
{"x":10, "y":0}, | |||
{"x":11, "y":0}, | |||
{"x":12.5, "y":0}, | |||
{"x":0, "y":1}, | |||
{"x":1, "y":1}, | |||
{"x":2, "y":1}, | |||
{"x":3, "y":1}, | |||
{"x":4, "y":1}, | |||
{"x":5, "y":1}, | |||
{"x":6, "y":1}, | |||
{"x":7, "y":1}, | |||
{"x":8, "y":1}, | |||
{"x":9, "y":1}, | |||
{"x":10, "y":1}, | |||
{"x":11, "y":1}, | |||
{"x":12.5, "y":1}, | |||
{"x":0, "y":2}, | |||
{"x":1, "y":2}, | |||
{"x":2, "y":2}, | |||
{"x":3, "y":2}, | |||
{"x":4, "y":2}, | |||
{"x":5, "y":2}, | |||
{"x":6, "y":2}, | |||
{"x":7, "y":2}, | |||
{"x":8, "y":2}, | |||
{"x":9, "y":2}, | |||
{"x":10, "y":2}, | |||
{"x":11.25, "y":2.25}, | |||
{"x":12.5, "y":2}, | |||
{"x":0, "y":3}, | |||
{"x":1, "y":3}, | |||
{"x":2, "y":3, "w":7}, | |||
{"x":9, "y":3}, | |||
{"x":10.25, "y":3.25}, | |||
{"x":11.25, "y":3.25}, | |||
{"x":12.25, "y":3.25} | |||
] | |||
}, | |||
"LAYOUT_ortho_split": { | |||
"layout": [ | |||
{"x":0, "y":0}, | |||
{"x":1, "y":0}, | |||
{"x":2, "y":0}, | |||
{"x":3, "y":0}, | |||
{"x":4, "y":0}, | |||
{"x":5, "y":0}, | |||
{"x":6, "y":0}, | |||
{"x":7, "y":0}, | |||
{"x":8, "y":0}, | |||
{"x":9, "y":0}, | |||
{"x":10, "y":0}, | |||
{"x":11, "y":0}, | |||
{"x":12.5, "y":0}, | |||
{"x":0, "y":1}, | |||
{"x":1, "y":1}, | |||
{"x":2, "y":1}, | |||
{"x":3, "y":1}, | |||
{"x":4, "y":1}, | |||
{"x":5, "y":1}, | |||
{"x":6, "y":1}, | |||
{"x":7, "y":1}, | |||
{"x":8, "y":1}, | |||
{"x":9, "y":1}, | |||
{"x":10, "y":1}, | |||
{"x":11, "y":1}, | |||
{"x":12.5, "y":1}, | |||
{"x":0, "y":2}, | |||
{"x":1, "y":2}, | |||
{"x":2, "y":2}, | |||
{"x":3, "y":2}, | |||
{"x":4, "y":2}, | |||
{"x":5, "y":2}, | |||
{"x":6, "y":2}, | |||
{"x":7, "y":2}, | |||
{"x":8, "y":2}, | |||
{"x":9, "y":2}, | |||
{"x":10, "y":2}, | |||
{"x":11.25, "y":2.25}, | |||
{"x":12.5, "y":2}, | |||
{"x":0, "y":3}, | |||
{"x":1, "y":3}, | |||
{"x":2, "y":3}, | |||
{"x":3, "y":3, "w":2.75}, | |||
{"x":5.75, "y":3, "w":2.25}, | |||
{"x":8, "y":3}, | |||
{"x":9, "y":3}, | |||
{"x":10.25, "y":3.25}, | |||
{"x":11.25, "y":3.25}, | |||
{"x":12.25, "y":3.25} | |||
] | |||
} | |||
} | |||
} |
@ -0,0 +1 @@ | |||
# The default keymap for the Program Yoink! Ortho |
@ -0,0 +1 @@ | |||
# The split space bar keymap for the Program Yoink! Ortho |
@ -0,0 +1,17 @@ | |||
/* Copyright 2020 melonbred | |||
* | |||
* 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 "ortho.h" |
@ -0,0 +1,55 @@ | |||
/* Copyright 2020 melonbred | |||
* | |||
* 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 "program_yoink.h" | |||
/* This is a shortcut to help you visually see your layout. | |||
* | |||
* The first section contains all of the arguments representing the physical | |||
* layout of the board and position of the keys. | |||
* | |||
* The second converts the arguments into a two-dimensional array which | |||
* represents the switch matrix. | |||
*/ | |||
#define XXX KC_NO | |||
#define LAYOUT_ortho( \ | |||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \ | |||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \ | |||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ | |||
K30, K31, K35, K39, K3A, K3B, K3C \ | |||
) \ | |||
{ \ | |||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \ | |||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C }, \ | |||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C }, \ | |||
{ K30, K31, XXX, XXX, XXX, K35, XXX, XXX, XXX, K39, K3A, K3B, K3C } \ | |||
} | |||
#define LAYOUT_ortho_split( \ | |||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \ | |||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \ | |||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, \ | |||
K30, K31, K32, K34, K36, K38, K39, K3A, K3B, K3C \ | |||
) \ | |||
{ \ | |||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \ | |||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C }, \ | |||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C }, \ | |||
{ K30, K31, K32, XXX, K34, XXX, K36, XXX, K38, K39, K3A, K3B, K3C } \ | |||
} |
@ -0,0 +1,18 @@ | |||
# Program Yoink! Ortho | |||
Program Yoink is a 12u main cluster board accompanied by a macro column with optional encoder support and arrow keys. | |||
* Keyboard Maintainer: [melonbred](https://github.com/melonbred) | |||
* Hardware Supported: Program Yoink! Ortho PCB (ATmega32u2) | |||
* Hardware Availability: [P3D Store](https://p3dstore.com/products/yoink-gb) | |||
Make example for this keyboard (after setting up your build environment): | |||
make program_yoink/ortho:default | |||
To reset the board into bootloader mode, do one of the following: | |||
* Tap the Reset switch mounted on the bottom side of the PCB | |||
* Hold the key at the top left of the keyboard while connecting the USB cable (also erases persistent settings) | |||
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). |
@ -1,15 +1,21 @@ | |||
# program_yoink | |||
# Program Yoink! | |||
![program_yoink](https://i.imgur.com/2bBLKJrl.jpeg) | |||
![Program Yoink! Staggered](https://i.imgur.com/2bBLKJrl.jpeg) | |||
Program Yoink is a 12u main cluster board accompanied by a macro column with optional encoder support and arrow keys. | |||
* Keyboard Maintainer: [melonbred](https://github.com/yourusername) | |||
* Hardware Supported: The PCBs, controllers supported | |||
* Hardware Availability: Links to where you can find this hardware | |||
* Keyboard Maintainer: [melonbred](https://github.com/melonbred) | |||
* Hardware Supported: [Program Yoink! Staggered](staggered/) and [Ortho](ortho/) PCBs (ATmega32u2) | |||
* Hardware Availability: [P3D Store](https://p3dstore.com/products/yoink-gb) | |||
Make example for this keyboard (after setting up your build environment): | |||
make program_yoink:default | |||
make program_yoink/staggered:default | |||
make program_yoink/ortho:default | |||
To reset the board into bootloader mode, do one of the following: | |||
* Tap the Reset switch mounted on the bottom side of the PCB | |||
* Hold the key at the top left of the keyboard while connecting the USB cable (also erases persistent settings) | |||
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). |
@ -0,0 +1,19 @@ | |||
/* | |||
Copyright 2020 melonbred | |||
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/>. | |||
*/ | |||
#define PRODUCT_ID 0xF10B | |||
#define PRODUCT Program Yoink! Staggered |
@ -0,0 +1,114 @@ | |||
{ | |||
"keyboard_name": "program_yoink", | |||
"url": "", | |||
"maintainer": "melonbred", | |||
"width": 13.5, | |||
"height": 4.25, | |||
"layouts": { | |||
"LAYOUT_default": { | |||
"layout": [ | |||
{"x":0, "y":0}, | |||
{"x":1, "y":0}, | |||
{"x":2, "y":0}, | |||
{"x":3, "y":0}, | |||
{"x":4, "y":0}, | |||
{"x":5, "y":0}, | |||
{"x":6, "y":0}, | |||
{"x":7, "y":0}, | |||
{"x":8, "y":0}, | |||
{"x":9, "y":0}, | |||
{"x":10, "y":0}, | |||
{"x":11, "y":0}, | |||
{"x":12.5, "y":0}, | |||
{"x":0, "y":1, "w":1.25}, | |||
{"x":1.25, "y":1}, | |||
{"x":2.25, "y":1}, | |||
{"x":3.25, "y":1}, | |||
{"x":4.25, "y":1}, | |||
{"x":5.25, "y":1}, | |||
{"x":6.25, "y":1}, | |||
{"x":7.25, "y":1}, | |||
{"x":8.25, "y":1}, | |||
{"x":9.25, "y":1}, | |||
{"x":10.25, "y":1, "w":1.75}, | |||
{"x":12.5, "y":1}, | |||
{"x":0, "y":2, "w":1.75}, | |||
{"x":1.75, "y":2}, | |||
{"x":2.75, "y":2}, | |||
{"x":3.75, "y":2}, | |||
{"x":4.75, "y":2}, | |||
{"x":5.75, "y":2}, | |||
{"x":6.75, "y":2}, | |||
{"x":7.75, "y":2}, | |||
{"x":8.75, "y":2}, | |||
{"x":9.75, "y":2, "w":1.25}, | |||
{"x":11.25, "y":2.25}, | |||
{"x":12.5, "y":2}, | |||
{"x":0, "y":3, "w":1.25}, | |||
{"x":1.25, "y":3, "w":1.25}, | |||
{"x":2.5, "y":3, "w":6.25}, | |||
{"x":8.75, "y":3, "w":1.25}, | |||
{"x":10.25, "y":3.25}, | |||
{"x":11.25, "y":3.25}, | |||
{"x":12.25, "y":3.25} | |||
] | |||
}, | |||
"LAYOUT_split_bar": { | |||
"layout": [ | |||
{"x":0, "y":0}, | |||
{"x":1, "y":0}, | |||
{"x":2, "y":0}, | |||
{"x":3, "y":0}, | |||
{"x":4, "y":0}, | |||
{"x":5, "y":0}, | |||
{"x":6, "y":0}, | |||
{"x":7, "y":0}, | |||
{"x":8, "y":0}, | |||
{"x":9, "y":0}, | |||
{"x":10, "y":0}, | |||
{"x":11, "y":0}, | |||
{"x":12.5, "y":0}, | |||
{"x":0, "y":1, "w":1.25}, | |||
{"x":1.25, "y":1}, | |||
{"x":2.25, "y":1}, | |||
{"x":3.25, "y":1}, | |||
{"x":4.25, "y":1}, | |||
{"x":5.25, "y":1}, | |||
{"x":6.25, "y":1}, | |||
{"x":7.25, "y":1}, | |||
{"x":8.25, "y":1}, | |||
{"x":9.25, "y":1}, | |||
{"x":10.25, "y":1, "w":1.75}, | |||
{"x":12.5, "y":1}, | |||
{"x":0, "y":2, "w":1.75}, | |||
{"x":1.75, "y":2}, | |||
{"x":2.75, "y":2}, | |||
{"x":3.75, "y":2}, | |||
{"x":4.75, "y":2}, | |||
{"x":5.75, "y":2}, | |||
{"x":6.75, "y":2}, | |||
{"x":7.75, "y":2}, | |||
{"x":8.75, "y":2}, | |||
{"x":9.75, "y":2, "w":1.25}, | |||
{"x":11.25, "y":2.25}, | |||
{"x":12.5, "y":2}, | |||
{"x":0, "y":3}, | |||
{"x":1, "y":3}, | |||
{"x":2, "y":3}, | |||
{"x":3, "y":3, "w":2.75}, | |||
{"x":5.75, "y":3, "w":2.25}, | |||
{"x":8, "y":3}, | |||
{"x":9, "y":3}, | |||
{"x":10.25, "y":3.25}, | |||
{"x":11.25, "y":3.25}, | |||
{"x":12.25, "y":3.25} | |||
] | |||
} | |||
} | |||
} |
@ -0,0 +1 @@ | |||
# The default keymap for the Program Yoink! Staggered |
@ -0,0 +1 @@ | |||
# The split space bar keymap for the Program Yoink! Staggered |
@ -0,0 +1,20 @@ | |||
# Program Yoink! Staggered | |||
![Program Yoink! Staggered](https://i.imgur.com/2bBLKJrl.jpeg) | |||
Program Yoink is a 12u main cluster board accompanied by a macro column with optional encoder support and arrow keys. | |||
* Keyboard Maintainer: [melonbred](https://github.com/melonbred) | |||
* Hardware Supported: Program Yoink! Staggered PCB (ATmega32u2) | |||
* Hardware Availability: [P3D Store](https://p3dstore.com/products/yoink-gb) | |||
Make example for this keyboard (after setting up your build environment): | |||
make program_yoink/staggered:default | |||
To reset the board into bootloader mode, do one of the following: | |||
* Tap the Reset switch mounted on the bottom side of the PCB | |||
* Hold the key at the top left of the keyboard while connecting the USB cable (also erases persistent settings) | |||
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). |
@ -0,0 +1,17 @@ | |||
/* Copyright 2020 melonbred | |||
* | |||
* 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 "staggered.h" |
@ -0,0 +1,55 @@ | |||
/* Copyright 2020 melonbred | |||
* | |||
* 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 "program_yoink.h" | |||
/* This is a shortcut to help you visually see your layout. | |||
* | |||
* The first section contains all of the arguments representing the physical | |||
* layout of the board and position of the keys. | |||
* | |||
* The second converts the arguments into a two-dimensional array which | |||
* represents the switch matrix. | |||
*/ | |||
#define XXX KC_NO | |||
#define LAYOUT_default( \ | |||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \ | |||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1C, \ | |||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2C, \ | |||
K30, K31, K34, K38, K39, K3A, K3C \ | |||
) \ | |||
{ \ | |||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \ | |||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, XXX, K1C }, \ | |||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, XXX, K2C }, \ | |||
{ K30, K31, XXX, XXX, K34, XXX, XXX, XXX, K38, K39, K3A, XXX, K3C } \ | |||
} | |||
#define LAYOUT_split_bar( \ | |||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, \ | |||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1C, \ | |||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2C, \ | |||
K30, K31, K32, K33, K35, K37, K38, K39, K3A, K3C \ | |||
) \ | |||
{ \ | |||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C }, \ | |||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, XXX, K1C }, \ | |||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, XXX, K2C }, \ | |||
{ K30, K31, K32, K33, XXX, K35, XXX, K37, K38, K39, K3A, XXX, K3C } \ | |||
} |