Merge remote-tracking branch 'origin/master' into develop
commit
4be9919e9f
|
@ -37,7 +37,7 @@ jobs:
|
||||||
shell: 'bash {0}'
|
shell: 'bash {0}'
|
||||||
run: |
|
run: |
|
||||||
qmk format-c --core-only $(< ~/files.txt)
|
qmk format-c --core-only $(< ~/files.txt)
|
||||||
qmk format-python
|
qmk format-python $(< ~/files.txt)
|
||||||
qmk format-text $(< ~/files.txt)
|
qmk format-text $(< ~/files.txt)
|
||||||
git diff
|
git diff
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ jobs:
|
||||||
shell: 'bash {0}'
|
shell: 'bash {0}'
|
||||||
run: |
|
run: |
|
||||||
qmk format-c -a
|
qmk format-c -a
|
||||||
qmk format-python
|
qmk format-python -a
|
||||||
qmk format-text -a
|
qmk format-text -a
|
||||||
git diff
|
git diff
|
||||||
|
|
||||||
|
|
|
@ -17,44 +17,44 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define ____ KC_NO
|
#define ___ KC_NO
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#define LAYOUT_default( \
|
#define LAYOUT_default( \
|
||||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
|
K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K46, \
|
||||||
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
|
K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K56, \
|
||||||
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
|
K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K66, K76, \
|
||||||
K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K214, \
|
K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K86, K96, \
|
||||||
K401, K402, K404, K406, K408, K410, K411, K412, K413, K314 \
|
K80, K91, K82, K92, K83, K93, K84, K94, K85, K95 \
|
||||||
) { \
|
) { \
|
||||||
{ K000, K002, K004, K006, K008, K010, K012 }, \
|
{ K00, K01, K02, K03, K04, K05, K06 }, \
|
||||||
{ K001, K003, K005, K007, K009, K011, K013 }, \
|
{ K10, K11, K12, K13, K14, K15, K16 }, \
|
||||||
{ K100, K102, K104, K106, K108, K110, K112 }, \
|
{ K20, K21, K22, K23, K24, K25, K26 }, \
|
||||||
{ K101, K103, K105, K107, K109, K111, K113 }, \
|
{ K30, K31, K32, K33, K34, K35, K36 }, \
|
||||||
{ K200, K202, K204, K206, K208, K210, K014 }, \
|
{ K40, K41, K42, K43, K44, K45, K46 }, \
|
||||||
{ K201, K203, K205, K207, K209, K211, K114 }, \
|
{ K50, K51, K52, K53, K54, K55, K56 }, \
|
||||||
{ K301, K303, K305, K307, K309, K311, K212 }, \
|
{ K60, K61, K62, K63, K64, K65, K66 }, \
|
||||||
{ K302, K304, K306, K308, K310, K312, K213 }, \
|
{ K70, K71, K72, K73, K74, K75, K76 }, \
|
||||||
{ K401, ____, K404, K408, K411, K413, K313 }, \
|
{ K80, ___, K82, K83, K84, K85, K86 }, \
|
||||||
{ ____, K402, K406, K410, K412, K314, K214 } \
|
{ ___, K91, K92, K93, K94, K95, K96 } \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define LAYOUT_split_bs( \
|
#define LAYOUT_split_bs( \
|
||||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K403, \
|
K00, K10, K01, K11, K02, K12, K03, K13, K04, K14, K05, K15, K06, K16, K46, K81, \
|
||||||
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
|
K20, K30, K21, K31, K22, K32, K23, K33, K24, K34, K25, K35, K26, K36, K56, \
|
||||||
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
|
K40, K50, K41, K51, K42, K52, K43, K53, K44, K54, K45, K55, K66, K76, \
|
||||||
K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K214, \
|
K60, K70, K61, K71, K62, K72, K63, K73, K64, K74, K65, K75, K86, K96, \
|
||||||
K401, K402, K404, K406, K408, K410, K411, K412, K413, K314 \
|
K80, K91, K82, K92, K83, K93, K84, K94, K85, K95 \
|
||||||
) { \
|
) { \
|
||||||
{ K000, K002, K004, K006, K008, K010, K012 }, \
|
{ K00, K01, K02, K03, K04, K05, K06 }, \
|
||||||
{ K001, K003, K005, K007, K009, K011, K013 }, \
|
{ K10, K11, K12, K13, K14, K15, K16 }, \
|
||||||
{ K100, K102, K104, K106, K108, K110, K112 }, \
|
{ K20, K21, K22, K23, K24, K25, K26 }, \
|
||||||
{ K101, K103, K105, K107, K109, K111, K113 }, \
|
{ K30, K31, K32, K33, K34, K35, K36 }, \
|
||||||
{ K200, K202, K204, K206, K208, K210, K014 }, \
|
{ K40, K41, K42, K43, K44, K45, K46 }, \
|
||||||
{ K201, K203, K205, K207, K209, K211, K114 }, \
|
{ K50, K51, K52, K53, K54, K55, K56 }, \
|
||||||
{ K301, K303, K305, K307, K309, K311, K212 }, \
|
{ K60, K61, K62, K63, K64, K65, K66 }, \
|
||||||
{ K302, K304, K306, K308, K310, K312, K213 }, \
|
{ K70, K71, K72, K73, K74, K75, K76 }, \
|
||||||
{ K401, K403, K404, K408, K411, K413, K313 }, \
|
{ K80, K81, K82, K83, K84, K85, K86 }, \
|
||||||
{ ____, K402, K406, K410, K412, K314, K214 } \
|
{ ___, K91, K92, K93, K94, K95, K96 } \
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,25 +1,27 @@
|
||||||
{
|
{
|
||||||
"keyboard_name": "Chalice",
|
"keyboard_name": "Chalice",
|
||||||
"url": "https://customkbd.com/products/chalice-pre-order",
|
"url": "https://customkbd.com/products/chalice-pre-order",
|
||||||
"maintainer": "CustomKBD",
|
"maintainer": "joshajohnson, CustomKBD",
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT_default": {
|
"LAYOUT_default": {
|
||||||
"layout": [
|
"layout": [
|
||||||
{"label":"Esc", "x":0, "y":0},
|
{"label":"Esc", "x":0, "y":0},
|
||||||
{"label":"~", "x":1.5, "y":0},
|
{"label":"`~", "x":1.5, "y":0},
|
||||||
{"label":"!", "x":2.5, "y":0},
|
{"label":"1!", "x":2.5, "y":0},
|
||||||
{"label":"@", "x":3.5, "y":0},
|
{"label":"2@", "x":3.5, "y":0},
|
||||||
{"label":"#", "x":4.5, "y":0},
|
{"label":"3#", "x":4.5, "y":0},
|
||||||
{"label":"$", "x":5.5, "y":0},
|
{"label":"4$", "x":5.5, "y":0},
|
||||||
{"label":"%", "x":6.5, "y":0},
|
{"label":"5%", "x":6.5, "y":0},
|
||||||
{"label":"^", "x":7.5, "y":0},
|
{"label":"6^", "x":7.5, "y":0},
|
||||||
{"label":"&", "x":10.5, "y":0},
|
{"label":"7&", "x":10.5, "y":0},
|
||||||
{"label":"*", "x":11.5, "y":0},
|
{"label":"8*", "x":11.5, "y":0},
|
||||||
{"label":"(", "x":12.5, "y":0},
|
{"label":"9(", "x":12.5, "y":0},
|
||||||
{"label":")", "x":13.5, "y":0},
|
{"label":"0)", "x":13.5, "y":0},
|
||||||
{"label":"_", "x":14.5, "y":0},
|
{"label":"-_", "x":14.5, "y":0},
|
||||||
{"label":"+", "x":15.5, "y":0},
|
{"label":"=+", "x":15.5, "y":0},
|
||||||
{"label":"Backspace", "x":16.5, "y":0, "w":2},
|
{"label":"Backspace", "x":16.5, "y":0, "w":2},
|
||||||
|
|
||||||
|
{"label":"Insert", "x":0, "y":1},
|
||||||
{"label":"Tab", "x":1.5, "y":1, "w":1.5},
|
{"label":"Tab", "x":1.5, "y":1, "w":1.5},
|
||||||
{"label":"Q", "x":3, "y":1},
|
{"label":"Q", "x":3, "y":1},
|
||||||
{"label":"W", "x":4, "y":1},
|
{"label":"W", "x":4, "y":1},
|
||||||
|
@ -31,10 +33,10 @@
|
||||||
{"label":"I", "x":12, "y":1},
|
{"label":"I", "x":12, "y":1},
|
||||||
{"label":"O", "x":13, "y":1},
|
{"label":"O", "x":13, "y":1},
|
||||||
{"label":"P", "x":14, "y":1},
|
{"label":"P", "x":14, "y":1},
|
||||||
{"label":"{", "x":15, "y":1},
|
{"label":"[{", "x":15, "y":1},
|
||||||
{"label":"}", "x":16, "y":1},
|
{"label":"]}", "x":16, "y":1},
|
||||||
{"label":"|", "x":17, "y":1, "w":1.5},
|
{"label":"\\|", "x":17, "y":1, "w":1.5},
|
||||||
{"label":"Mute", "x":19, "y":0.5},
|
|
||||||
{"label":"Delete", "x":0, "y":2},
|
{"label":"Delete", "x":0, "y":2},
|
||||||
{"label":"Caps Lock", "x":1.5, "y":2, "w":1.75},
|
{"label":"Caps Lock", "x":1.5, "y":2, "w":1.75},
|
||||||
{"label":"A", "x":3.25, "y":2},
|
{"label":"A", "x":3.25, "y":2},
|
||||||
|
@ -46,9 +48,10 @@
|
||||||
{"label":"J", "x":11.25, "y":2},
|
{"label":"J", "x":11.25, "y":2},
|
||||||
{"label":"K", "x":12.25, "y":2},
|
{"label":"K", "x":12.25, "y":2},
|
||||||
{"label":"L", "x":13.25, "y":2},
|
{"label":"L", "x":13.25, "y":2},
|
||||||
{"label":":", "x":14.25, "y":2},
|
{"label":";:", "x":14.25, "y":2},
|
||||||
{"label":"\"", "x":15.25, "y":2},
|
{"label":"'\"", "x":15.25, "y":2},
|
||||||
{"label":"Enter", "x":16.25, "y":2, "w":2.25},
|
{"label":"Enter", "x":16.25, "y":2, "w":2.25},
|
||||||
|
|
||||||
{"label":"Shift", "x":1.5, "y":3, "w":2.25},
|
{"label":"Shift", "x":1.5, "y":3, "w":2.25},
|
||||||
{"label":"Z", "x":3.75, "y":3},
|
{"label":"Z", "x":3.75, "y":3},
|
||||||
{"label":"X", "x":4.75, "y":3},
|
{"label":"X", "x":4.75, "y":3},
|
||||||
|
@ -58,21 +61,99 @@
|
||||||
{"label":"B", "x":9.75, "y":3},
|
{"label":"B", "x":9.75, "y":3},
|
||||||
{"label":"N", "x":10.75, "y":3},
|
{"label":"N", "x":10.75, "y":3},
|
||||||
{"label":"M", "x":11.75, "y":3},
|
{"label":"M", "x":11.75, "y":3},
|
||||||
{"label":"<", "x":12.75, "y":3},
|
{"label":",<", "x":12.75, "y":3},
|
||||||
{"label":">", "x":13.75, "y":3},
|
{"label":".>", "x":13.75, "y":3},
|
||||||
{"label":"?", "x":14.75, "y":3},
|
{"label":"/?", "x":14.75, "y":3},
|
||||||
{"label":"Shift", "x":15.75, "y":3, "w":1.75},
|
{"label":"Shift", "x":15.75, "y":3, "w":1.75},
|
||||||
{"label":"Up", "x":17.75, "y":3.25},
|
{"label":"Up", "x":17.5, "y":3},
|
||||||
|
|
||||||
{"label":"Ctrl", "x":1.5, "y":4, "w":1.5},
|
{"label":"Ctrl", "x":1.5, "y":4, "w":1.5},
|
||||||
{"label":"Alt", "x":4.5, "y":4, "w":1.5},
|
{"label":"Alt", "x":4.5, "y":4, "w":1.5},
|
||||||
{"label":"Space", "x":6, "y":4, "w":2},
|
{"label":"Space", "x":6, "y":4, "w":2.25},
|
||||||
{"label":"Fn", "x":8, "y":4},
|
{"label":"Fn", "x":8.25, "y":4},
|
||||||
{"label":"Space", "x":9.75, "y":4, "w":2.75},
|
{"label":"Space", "x":9.75, "y":4, "w":2.75},
|
||||||
{"label":"Alt", "x":12.5, "y":4, "w":1.5},
|
{"label":"Alt", "x":12.5, "y":4, "w":1.5},
|
||||||
{"label":"Ctrl", "x":15, "y":4, "w":1.5},
|
{"label":"Ctrl", "x":15, "y":4, "w":1.5},
|
||||||
{"label":"Left", "x":16.75, "y":4.25},
|
{"label":"Left", "x":16.5, "y":4},
|
||||||
{"label":"Down", "x":17.75, "y":4.25},
|
{"label":"Down", "x":17.5, "y":4},
|
||||||
{"label":"Right", "x":18.75, "y":4.25}
|
{"label":"Right", "x":18.5, "y":4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_split_bs": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"Esc", "x":0, "y":0},
|
||||||
|
{"label":"`~", "x":1.5, "y":0},
|
||||||
|
{"label":"1!", "x":2.5, "y":0},
|
||||||
|
{"label":"2@", "x":3.5, "y":0},
|
||||||
|
{"label":"3#", "x":4.5, "y":0},
|
||||||
|
{"label":"4$", "x":5.5, "y":0},
|
||||||
|
{"label":"5%", "x":6.5, "y":0},
|
||||||
|
{"label":"6^", "x":7.5, "y":0},
|
||||||
|
{"label":"7&", "x":10.5, "y":0},
|
||||||
|
{"label":"8*", "x":11.5, "y":0},
|
||||||
|
{"label":"9(", "x":12.5, "y":0},
|
||||||
|
{"label":"0)", "x":13.5, "y":0},
|
||||||
|
{"label":"-_", "x":14.5, "y":0},
|
||||||
|
{"label":"=+", "x":15.5, "y":0},
|
||||||
|
{"label":"Backspace", "x":16.5, "y":0},
|
||||||
|
{"label":"Backspace", "x":17.5, "y":0},
|
||||||
|
|
||||||
|
{"label":"Insert", "x":0, "y":1},
|
||||||
|
{"label":"Tab", "x":1.5, "y":1, "w":1.5},
|
||||||
|
{"label":"Q", "x":3, "y":1},
|
||||||
|
{"label":"W", "x":4, "y":1},
|
||||||
|
{"label":"E", "x":5, "y":1},
|
||||||
|
{"label":"R", "x":6, "y":1},
|
||||||
|
{"label":"T", "x":7, "y":1},
|
||||||
|
{"label":"Y", "x":10, "y":1},
|
||||||
|
{"label":"U", "x":11, "y":1},
|
||||||
|
{"label":"I", "x":12, "y":1},
|
||||||
|
{"label":"O", "x":13, "y":1},
|
||||||
|
{"label":"P", "x":14, "y":1},
|
||||||
|
{"label":"[{", "x":15, "y":1},
|
||||||
|
{"label":"]}", "x":16, "y":1},
|
||||||
|
{"label":"\\|", "x":17, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"label":"Delete", "x":0, "y":2},
|
||||||
|
{"label":"Caps Lock", "x":1.5, "y":2, "w":1.75},
|
||||||
|
{"label":"A", "x":3.25, "y":2},
|
||||||
|
{"label":"S", "x":4.25, "y":2},
|
||||||
|
{"label":"D", "x":5.25, "y":2},
|
||||||
|
{"label":"F", "x":6.25, "y":2},
|
||||||
|
{"label":"G", "x":7.25, "y":2},
|
||||||
|
{"label":"H", "x":10.25, "y":2},
|
||||||
|
{"label":"J", "x":11.25, "y":2},
|
||||||
|
{"label":"K", "x":12.25, "y":2},
|
||||||
|
{"label":"L", "x":13.25, "y":2},
|
||||||
|
{"label":";:", "x":14.25, "y":2},
|
||||||
|
{"label":"'\"", "x":15.25, "y":2},
|
||||||
|
{"label":"Enter", "x":16.25, "y":2, "w":2.25},
|
||||||
|
|
||||||
|
{"label":"Shift", "x":1.5, "y":3, "w":2.25},
|
||||||
|
{"label":"Z", "x":3.75, "y":3},
|
||||||
|
{"label":"X", "x":4.75, "y":3},
|
||||||
|
{"label":"C", "x":5.75, "y":3},
|
||||||
|
{"label":"V", "x":6.75, "y":3},
|
||||||
|
{"label":"B", "x":7.75, "y":3},
|
||||||
|
{"label":"B", "x":9.75, "y":3},
|
||||||
|
{"label":"N", "x":10.75, "y":3},
|
||||||
|
{"label":"M", "x":11.75, "y":3},
|
||||||
|
{"label":",<", "x":12.75, "y":3},
|
||||||
|
{"label":".>", "x":13.75, "y":3},
|
||||||
|
{"label":"/?", "x":14.75, "y":3},
|
||||||
|
{"label":"Shift", "x":15.75, "y":3, "w":1.75},
|
||||||
|
{"label":"Up", "x":17.5, "y":3},
|
||||||
|
|
||||||
|
{"label":"Ctrl", "x":1.5, "y":4, "w":1.5},
|
||||||
|
{"label":"Alt", "x":4.5, "y":4, "w":1.5},
|
||||||
|
{"label":"Space", "x":6, "y":4, "w":2.25},
|
||||||
|
{"label":"Fn", "x":8.25, "y":4},
|
||||||
|
{"label":"Space", "x":9.75, "y":4, "w":2.75},
|
||||||
|
{"label":"Alt", "x":12.5, "y":4, "w":1.5},
|
||||||
|
{"label":"Ctrl", "x":15, "y":4, "w":1.5},
|
||||||
|
{"label":"Left", "x":16.5, "y":4},
|
||||||
|
{"label":"Down", "x":17.5, "y":4},
|
||||||
|
{"label":"Right", "x":18.5, "y":4}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
/* Copyright 2021 Cutie Club
|
||||||
|
*
|
||||||
|
* 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 "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xFB9C
|
||||||
|
#define PRODUCT_ID 0xB265
|
||||||
|
#define DEVICE_VER 0x0000
|
||||||
|
#define MANUFACTURER Cutie Club
|
||||||
|
#define PRODUCT Keebcats Dougal 65%
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 16
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*/
|
||||||
|
#define MATRIX_ROW_PINS { B2, D0, F5, F4, F1 }
|
||||||
|
#define MATRIX_COL_PINS { E6, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, D1, B7 }
|
||||||
|
#define UNUSED_PINS { B0, B1, B3 }
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL*/
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
#define LED_CAPS_LOCK_PIN F0
|
||||||
|
|
||||||
|
/* 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
|
|
@ -0,0 +1,17 @@
|
||||||
|
/* Copyright 2021 Cutie Club
|
||||||
|
*
|
||||||
|
* 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 "dougal.h"
|
|
@ -0,0 +1,34 @@
|
||||||
|
/* Copyright 2021 Cutie Club
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
k00_00, k00_01, k00_02, k00_03, k00_04, k00_05, k00_06, k00_07, k00_08, k00_09, k00_10, k00_11, k00_12, k00_13, k00_14, k00_15, \
|
||||||
|
k01_00, k01_01, k01_02, k01_03, k01_04, k01_05, k01_06, k01_07, k01_08, k01_09, k01_10, k01_11, k01_12, k01_13, k01_15, \
|
||||||
|
k02_00, k02_01, k02_02, k02_03, k02_04, k02_05, k02_06, k02_07, k02_08, k02_09, k02_10, k02_11, k02_12, k02_13, k02_15, \
|
||||||
|
k03_00, k03_01, k03_02, k03_03, k03_04, k03_05, k03_06, k03_07, k03_08, k03_09, k03_10, k03_11, k03_12, k03_13, k03_15, \
|
||||||
|
k04_00, k04_01, k04_02, k04_04, k04_06, k04_08, k04_09, k04_10, k04_11, k04_12, k04_13, k04_15 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k00_00, k00_01, k00_02, k00_03, k00_04, k00_05, k00_06, k00_07, k00_08, k00_09, k00_10, k00_11, k00_12, k00_13, k00_14, k00_15 }, \
|
||||||
|
{ k01_00, k01_01, k01_02, k01_03, k01_04, k01_05, k01_06, k01_07, k01_08, k01_09, k01_10, k01_11, k01_12, k01_13, KC_NO, k01_15 }, \
|
||||||
|
{ k02_00, k02_01, k02_02, k02_03, k02_04, k02_05, k02_06, k02_07, k02_08, k02_09, k02_10, k02_11, k02_12, k02_13, KC_NO, k02_15 }, \
|
||||||
|
{ k03_00, k03_01, k03_02, k03_03, k03_04, k03_05, k03_06, k03_07, k03_08, k03_09, k03_10, k03_11, k03_12, k03_13, KC_NO, k03_15 }, \
|
||||||
|
{ k04_00, k04_01, k04_02, KC_NO, k04_04, KC_NO, k04_06, KC_NO, k04_08, k04_09, k04_10, k04_11, k04_12, k04_13, KC_NO, k04_15 } \
|
||||||
|
}
|
|
@ -0,0 +1,84 @@
|
||||||
|
{
|
||||||
|
"keyboard_name": "Keebcats Dougal",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "Cutie Club",
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"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, "y": 0 },
|
||||||
|
{ "x": 13, "y": 0 },
|
||||||
|
{ "x": 14, "y": 0 },
|
||||||
|
{ "x": 15, "y": 0 },
|
||||||
|
{ "x": 0, "y": 1, "w": 1.5 },
|
||||||
|
{ "x": 1.5, "y": 1 },
|
||||||
|
{ "x": 2.5, "y": 1 },
|
||||||
|
{ "x": 3.5, "y": 1 },
|
||||||
|
{ "x": 4.5, "y": 1 },
|
||||||
|
{ "x": 5.5, "y": 1 },
|
||||||
|
{ "x": 6.5, "y": 1 },
|
||||||
|
{ "x": 7.5, "y": 1 },
|
||||||
|
{ "x": 8.5, "y": 1 },
|
||||||
|
{ "x": 9.5, "y": 1 },
|
||||||
|
{ "x": 10.5, "y": 1 },
|
||||||
|
{ "x": 11.5, "y": 1 },
|
||||||
|
{ "x": 12.5, "y": 1 },
|
||||||
|
{ "x": 13.5, "y": 1, "w": 1.5 },
|
||||||
|
{ "x": 15, "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 },
|
||||||
|
{ "x": 10.75, "y": 2 },
|
||||||
|
{ "x": 11.75, "y": 2 },
|
||||||
|
{ "x": 12.75, "y": 2 },
|
||||||
|
{ "x": 14, "y": 2 },
|
||||||
|
{ "x": 15, "y": 2 },
|
||||||
|
{ "x": 0, "y": 3, "w": 1.25 },
|
||||||
|
{ "x": 1.25, "y": 3 },
|
||||||
|
{ "x": 2.25, "y": 3 },
|
||||||
|
{ "x": 3.25, "y": 3 },
|
||||||
|
{ "x": 4.25, "y": 3 },
|
||||||
|
{ "x": 5.25, "y": 3 },
|
||||||
|
{ "x": 6.25, "y": 3 },
|
||||||
|
{ "x": 7.25, "y": 3 },
|
||||||
|
{ "x": 8.25, "y": 3 },
|
||||||
|
{ "x": 9.25, "y": 3 },
|
||||||
|
{ "x": 10.25, "y": 3 },
|
||||||
|
{ "x": 11.25, "y": 3 },
|
||||||
|
{ "x": 12.25, "y": 3, "w": 1.75 },
|
||||||
|
{ "x": 14, "y": 3 },
|
||||||
|
{ "x": 15, "y": 3 },
|
||||||
|
{ "x": 0, "y": 4, "w": 1.25 },
|
||||||
|
{ "x": 1.25, "y": 4, "w": 1.25 },
|
||||||
|
{ "x": 2.5, "y": 4, "w": 1.25 },
|
||||||
|
{ "x": 3.75, "y": 4, "w": 2.25 },
|
||||||
|
{ "x": 6, "y": 4, "w": 1.25 },
|
||||||
|
{ "x": 7.25, "y": 4, "w": 2.75 },
|
||||||
|
{ "x": 10, "y": 4 },
|
||||||
|
{ "x": 11, "y": 4 },
|
||||||
|
{ "x": 12, "y": 4 },
|
||||||
|
{ "x": 13, "y": 4 },
|
||||||
|
{ "x": 14, "y": 4 },
|
||||||
|
{ "x": 15, "y": 4 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
/* Copyright 2021 Cutie Club
|
||||||
|
*
|
||||||
|
* 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] = {
|
||||||
|
/* Base */
|
||||||
|
[0] = LAYOUT_all(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_HOME,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP,
|
||||||
|
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, KC_PGDN,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RIGHT
|
||||||
|
)
|
||||||
|
};
|
|
@ -0,0 +1,49 @@
|
||||||
|
/* Copyright 2021 Cutie Club
|
||||||
|
*
|
||||||
|
* 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] = {
|
||||||
|
/* Base */
|
||||||
|
[0] = LAYOUT_all(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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_HOME,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGUP,
|
||||||
|
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, KC_PGDN,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTRL, KC_LEFT, KC_DOWN, KC_RIGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT_all(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
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_all(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
[3] = LAYOUT_all(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
)
|
||||||
|
};
|
|
@ -0,0 +1 @@
|
||||||
|
VIA_ENABLE = yes
|
|
@ -0,0 +1,18 @@
|
||||||
|
# Dougal
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Cutie Club](https://github.com/cutie-club/)
|
||||||
|
* Hardware Supported: Atmega32u4 based 65% PCB, with wide compatibility
|
||||||
|
* Hardware Availability: [Keebcats](https://keebcats.co.uk)
|
||||||
|
|
||||||
|
## Bootloader
|
||||||
|
|
||||||
|
Enter the bootloader in 2 ways with the default configuration:
|
||||||
|
|
||||||
|
* **Bootmagic reset**: Hold down the key at top left key (matrix position 0,0) and plug the device in
|
||||||
|
* **Physical reset button**: Press the button marked reset on the back of the PCB
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make cutie_club/keebcats/dougal: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).
|
|
@ -0,0 +1,21 @@
|
||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = yes # Enable Bootmagic
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
|
@ -0,0 +1,33 @@
|
||||||
|
/*
|
||||||
|
This is the c configuration file for the keymap
|
||||||
|
|
||||||
|
Copyright 2012 Jun Wako <wakojun@gmail.com>
|
||||||
|
Copyright 2015 Jack Humbert
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
/* Use I2C or Serial, not both */
|
||||||
|
|
||||||
|
#define USE_SERIAL
|
||||||
|
// #define USE_I2C
|
||||||
|
|
||||||
|
/* Select hand configuration */
|
||||||
|
|
||||||
|
#define MASTER_LEFT
|
||||||
|
// #define MASTER_RIGHT
|
||||||
|
// #define EE_HANDS
|
|
@ -0,0 +1,111 @@
|
||||||
|
/* Copyright 2021 Yoshihiro Saito
|
||||||
|
*
|
||||||
|
* 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 {
|
||||||
|
_QWERTY,
|
||||||
|
_LOWER,
|
||||||
|
_RAISE,
|
||||||
|
_ADJUST,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum custom_keycodes {
|
||||||
|
QWERTY = SAFE_RANGE,
|
||||||
|
LOWER,
|
||||||
|
RAISE,
|
||||||
|
ADJUST,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Shift + ( = <
|
||||||
|
const key_override_t left_paren_angle_bracket_override = ko_make_basic(MOD_MASK_SHIFT, KC_LEFT_PAREN, KC_LEFT_ANGLE_BRACKET);
|
||||||
|
|
||||||
|
// Shift + ) = >
|
||||||
|
const key_override_t right_paren_angle_bracket_override = ko_make_basic(MOD_MASK_SHIFT, KC_RIGHT_PAREN, KC_RIGHT_ANGLE_BRACKET);
|
||||||
|
|
||||||
|
const key_override_t **key_overrides = (const key_override_t *[]){
|
||||||
|
&left_paren_angle_bracket_override,
|
||||||
|
&right_paren_angle_bracket_override,
|
||||||
|
NULL
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/* Qwerty */
|
||||||
|
[_QWERTY] = LAYOUT(
|
||||||
|
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LPRN, KC_RPRN, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||||
|
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_DEL,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX, XXXXXXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LGUI, LOWER, CTL_T(KC_SPC), KC_SFTENT, RAISE, KC_RGUI, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Lower */
|
||||||
|
[_LOWER] = LAYOUT(
|
||||||
|
XXXXXXX, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_F11, KC_GRV, KC_CIRC, KC_AMPR, KC_ASTR, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F12, KC_TILD, KC_BSLS, KC_MINS, KC_EQL, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, KC_PIPE, KC_UNDS, KC_PLUS, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Raise */
|
||||||
|
[_RAISE] = LAYOUT(
|
||||||
|
XXXXXXX, KC_P1, KC_P2, KC_P3, KC_P4, KC_P5, XXXXXXX, XXXXXXX, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0, XXXXXXX,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT, XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||||
|
),
|
||||||
|
|
||||||
|
/* Adjust */
|
||||||
|
[_ADJUST] = LAYOUT(
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX ,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______ ,_______, _______, _______, XXXXXXX, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||||
|
),
|
||||||
|
};
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
switch (keycode) {
|
||||||
|
case LOWER:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
layer_on(_LOWER);
|
||||||
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||||
|
} else {
|
||||||
|
layer_off(_LOWER);
|
||||||
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
case RAISE:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
layer_on(_RAISE);
|
||||||
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||||
|
} else {
|
||||||
|
layer_off(_RAISE);
|
||||||
|
update_tri_layer(_LOWER, _RAISE, _ADJUST);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
case ADJUST:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
layer_on(_ADJUST);
|
||||||
|
} else {
|
||||||
|
layer_off(_ADJUST);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
|
@ -0,0 +1,4 @@
|
||||||
|
# yoshimaru46's keymap for Ergodash mini
|
||||||
|
|
||||||
|
This is the yoshimaru46's keymap configuration for Ergodash mini.
|
||||||
|
There are three layers, QWERTY(default), LOWER, and RAISE.
|
|
@ -0,0 +1,4 @@
|
||||||
|
BACKLIGHT_ENABLE = no
|
||||||
|
RGBLIGHT_ENABLE = no
|
||||||
|
AUDIO_ENABLE = no
|
||||||
|
KEY_OVERRIDE_ENABLE = yes
|
|
@ -2,35 +2,105 @@
|
||||||
"keyboard_name": "Puca",
|
"keyboard_name": "Puca",
|
||||||
"url": "https://ffkeebs.com/collections/puca/",
|
"url": "https://ffkeebs.com/collections/puca/",
|
||||||
"maintainer": "Sleepdealr",
|
"maintainer": "Sleepdealr",
|
||||||
|
"layout_aliases": {
|
||||||
|
"LAYOUT": "LAYOUT_all"
|
||||||
|
},
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_all": {
|
||||||
"layout": [
|
"layout": [
|
||||||
{ "label": "Rotary", "x": 0.5, "y": 0 },
|
{ "label": "Rotary", "x": 0.5, "y": 0 },
|
||||||
{ "label": "Pg Up", "x": 2, "y": 0 },
|
{ "label": "Pg Up", "x": 2, "y": 0 },
|
||||||
{ "label": "Pg Dn", "x": 3, "y": 0 },
|
{ "label": "Pg Dn", "x": 3, "y": 0 },
|
||||||
|
|
||||||
{ "label": "Layer Toggle", "x": 0, "y": 1.25 },
|
{ "label": "Layer Toggle", "x": 0, "y": 1.25 },
|
||||||
{ "label": "/", "x": 1, "y": 1.25 },
|
{ "label": "/", "x": 1, "y": 1.25 },
|
||||||
{ "label": "*", "x": 2, "y": 1.25 },
|
{ "label": "*", "x": 2, "y": 1.25 },
|
||||||
{ "label": "-", "x": 3, "y": 1.25 },
|
{ "label": "-", "x": 3, "y": 1.25 },
|
||||||
|
|
||||||
{ "label": "7", "x": 0, "y": 2.25 },
|
{ "label": "7", "x": 0, "y": 2.25 },
|
||||||
{ "label": "8", "x": 1, "y": 2.25 },
|
{ "label": "8", "x": 1, "y": 2.25 },
|
||||||
{ "label": "9", "x": 2, "y": 2.25 },
|
{ "label": "9", "x": 2, "y": 2.25 },
|
||||||
{ "label": "+", "x": 3, "y": 2.25, "h": 2 },
|
{ "label": "+", "x": 3, "y": 2.25 },
|
||||||
{ "label": "+", "x": 4, "y": 2.25 },
|
{ "label": "+", "x": 4, "y": 2.25, "h": 2 },
|
||||||
|
|
||||||
{ "label": "4", "x": 0, "y": 3.25 },
|
{ "label": "4", "x": 0, "y": 3.25 },
|
||||||
{ "label": "5", "x": 1, "y": 3.25 },
|
{ "label": "5", "x": 1, "y": 3.25 },
|
||||||
{ "label": "6", "x": 2, "y": 3.25 },
|
{ "label": "6", "x": 2, "y": 3.25 },
|
||||||
{ "label": "|", "x": 4, "y": 3.25 },
|
{ "label": "|", "x": 3, "y": 3.25 },
|
||||||
|
|
||||||
{ "label": "1", "x": 0, "y": 4.25 },
|
{ "label": "1", "x": 0, "y": 4.25 },
|
||||||
{ "label": "2", "x": 1, "y": 4.25 },
|
{ "label": "2", "x": 1, "y": 4.25 },
|
||||||
{ "label": "3", "x": 2, "y": 4.25 },
|
{ "label": "3", "x": 2, "y": 4.25 },
|
||||||
{ "label": "Enter", "x": 3, "y": 4.25, "h": 2 },
|
{ "label": "Enter", "x": 3, "y": 4.25 },
|
||||||
{ "label": "Enter", "x": 4, "y": 4.25 },
|
{ "label": "Enter", "x": 4, "y": 4.25, "h": 2 },
|
||||||
|
|
||||||
|
{ "label": "0", "x": 0, "y": 5.25 },
|
||||||
|
{ "label": "00", "x": 1, "y": 5.25 },
|
||||||
|
{ "label": ".", "x": 2, "y": 5.25 },
|
||||||
|
{ "label": ".", "x": 3, "y": 5.25 },
|
||||||
|
|
||||||
|
{ "label": "0", "x": 0, "y": 6.25, "w": 2 }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_numpad": {
|
||||||
|
"layout": [
|
||||||
|
{ "label": "Rotary", "x": 0.5, "y": 0 },
|
||||||
|
{ "label": "Pg Up", "x": 2, "y": 0 },
|
||||||
|
{ "label": "Pg Dn", "x": 3, "y": 0 },
|
||||||
|
|
||||||
|
{ "label": "Layer Toggle", "x": 0, "y": 1.25 },
|
||||||
|
{ "label": "/", "x": 1, "y": 1.25 },
|
||||||
|
{ "label": "*", "x": 2, "y": 1.25 },
|
||||||
|
{ "label": "-", "x": 3, "y": 1.25 },
|
||||||
|
|
||||||
|
{ "label": "7", "x": 0, "y": 2.25 },
|
||||||
|
{ "label": "8", "x": 1, "y": 2.25 },
|
||||||
|
{ "label": "9", "x": 2, "y": 2.25 },
|
||||||
|
|
||||||
|
{ "label": "4", "x": 0, "y": 3.25 },
|
||||||
|
{ "label": "5", "x": 1, "y": 3.25 },
|
||||||
|
{ "label": "6", "x": 2, "y": 3.25 },
|
||||||
|
{ "label": "+", "x": 3, "y": 2.25, "h": 2 },
|
||||||
|
|
||||||
|
{ "label": "1", "x": 0, "y": 4.25 },
|
||||||
|
{ "label": "2", "x": 1, "y": 4.25 },
|
||||||
|
{ "label": "3", "x": 2, "y": 4.25 },
|
||||||
|
|
||||||
{ "label": "0", "x": 0, "y": 5.25, "w": 2 },
|
{ "label": "0", "x": 0, "y": 5.25, "w": 2 },
|
||||||
{ "label": ".", "x": 2, "y": 5.25 },
|
{ "label": ".", "x": 2, "y": 5.25 },
|
||||||
{ "label": ".", "x": 4, "y": 5.25 },
|
{ "label": "Enter", "x": 3, "y": 4.25, "h": 2 }
|
||||||
{ "label": "0", "x": 0, "y": 6.25 },
|
]
|
||||||
{ "label": "00", "x": 1, "y": 6.25 }
|
},
|
||||||
|
"LAYOUT_ortho": {
|
||||||
|
"layout": [
|
||||||
|
{ "label": "Rotary", "x": 0.5, "y": 0 },
|
||||||
|
{ "label": "Pg Up", "x": 2, "y": 0 },
|
||||||
|
{ "label": "Pg Dn", "x": 3, "y": 0 },
|
||||||
|
|
||||||
|
{ "label": "Layer Toggle", "x": 0, "y": 1.25 },
|
||||||
|
{ "label": "/", "x": 1, "y": 1.25 },
|
||||||
|
{ "label": "*", "x": 2, "y": 1.25 },
|
||||||
|
{ "label": "-", "x": 3, "y": 1.25 },
|
||||||
|
|
||||||
|
{ "label": "7", "x": 0, "y": 2.25 },
|
||||||
|
{ "label": "8", "x": 1, "y": 2.25 },
|
||||||
|
{ "label": "9", "x": 2, "y": 2.25 },
|
||||||
|
{ "label": "+", "x": 3, "y": 2.25 },
|
||||||
|
|
||||||
|
{ "label": "4", "x": 0, "y": 3.25 },
|
||||||
|
{ "label": "5", "x": 1, "y": 3.25 },
|
||||||
|
{ "label": "6", "x": 2, "y": 3.25 },
|
||||||
|
{ "label": "|", "x": 3, "y": 3.25 },
|
||||||
|
|
||||||
|
{ "label": "1", "x": 0, "y": 4.25 },
|
||||||
|
{ "label": "2", "x": 1, "y": 4.25 },
|
||||||
|
{ "label": "3", "x": 2, "y": 4.25 },
|
||||||
|
{ "label": "Enter", "x": 3, "y": 4.25 },
|
||||||
|
|
||||||
|
{ "label": "0", "x": 0, "y": 5.25 },
|
||||||
|
{ "label": "00", "x": 1, "y": 5.25 },
|
||||||
|
{ "label": ".", "x": 2, "y": 5.25 },
|
||||||
|
{ "label": "Enter", "x": 3, "y": 5.25 }
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* Copyright 2021 Sleepdealer
|
/* Copyright 2021 Sleepdealer, James Young for QMK (@noroadsleft)
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
@ -15,38 +15,26 @@
|
||||||
*/
|
*/
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
// 00 Functionality
|
|
||||||
enum custom_keycodes {
|
|
||||||
MC_00 = SAFE_RANGE,
|
|
||||||
};
|
|
||||||
|
|
||||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|
||||||
switch (keycode) {
|
|
||||||
case MC_00:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
SEND_STRING("00");
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
LAYOUT(
|
|
||||||
KC_MUTE, KC_PGUP, KC_PGDN,
|
[0] = LAYOUT_all(
|
||||||
TG(1), KC_PSLS, KC_PAST, KC_PMNS,
|
KC_MUTE, KC_PGUP, KC_PGDN,
|
||||||
KC_P7, KC_P8, KC_P9, KC_PPLS, KC_PPLS,
|
TG(1), KC_PSLS, KC_PAST, KC_PMNS,
|
||||||
KC_P4, KC_P5, KC_P6, KC_PIPE,
|
KC_P7, KC_P8, KC_P9, KC_PPLS, KC_PPLS,
|
||||||
KC_P1, KC_P2, KC_P3, KC_ENTER, KC_ENTER,
|
KC_P4, KC_P5, KC_P6, KC_PIPE,
|
||||||
KC_P0, MC_00, KC_PDOT, KC_PDOT,
|
KC_P1, KC_P2, KC_P3, KC_ENTER, KC_ENTER,
|
||||||
KC_P0),
|
KC_P0, MC_00, KC_PDOT, KC_PDOT,
|
||||||
LAYOUT(
|
KC_P0
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT_all(
|
||||||
KC_TRNS, RGB_HUI, RGB_VAI,
|
KC_TRNS, RGB_HUI, RGB_VAI,
|
||||||
TG(1), RGB_TOG, RGB_HUD, RGB_VAD,
|
TG(1), RGB_TOG, RGB_HUD, RGB_VAD,
|
||||||
KC_PGUP, KC_UP, KC_PGDN, RGB_MOD, RGB_MOD,
|
KC_PGUP, KC_UP, KC_PGDN, RGB_MOD, RGB_MOD,
|
||||||
KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS,
|
KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS,
|
||||||
KC_INS, KC_HOME, KC_END, RGB_RMOD, RGB_RMOD,
|
KC_INS, KC_HOME, KC_END, RGB_RMOD, RGB_RMOD,
|
||||||
KC_ESC, KC_TRNS, KC_DEL, KC_TRNS,
|
KC_ESC, KC_TRNS, KC_DEL, KC_TRNS,
|
||||||
KC_ESC)
|
KC_ESC
|
||||||
|
),
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
/* Copyright 2021 Sleepdealer, James Young for QMK (@noroadsleft)
|
||||||
|
*
|
||||||
|
* 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_numpad(
|
||||||
|
KC_MUTE, KC_PGUP, KC_PGDN,
|
||||||
|
TG(1), KC_PSLS, KC_PAST, KC_PMNS,
|
||||||
|
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_ENTER
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT_numpad(
|
||||||
|
_______, RGB_HUI, RGB_VAI,
|
||||||
|
TG(1), RGB_TOG, RGB_HUD, RGB_VAD,
|
||||||
|
KC_PGUP, KC_UP, KC_PGDN,
|
||||||
|
KC_LEFT, KC_DOWN, KC_RGHT, RGB_MOD,
|
||||||
|
KC_INS, KC_HOME, KC_END,
|
||||||
|
KC_ESC, KC_DEL, RGB_RMOD
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
|
@ -0,0 +1,38 @@
|
||||||
|
/* Copyright 2021 Sleepdealer, James Young for QMK (@noroadsleft)
|
||||||
|
*
|
||||||
|
* 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(
|
||||||
|
KC_MUTE, KC_PGUP, KC_PGDN,
|
||||||
|
TG(1), KC_PSLS, KC_PAST, KC_PMNS,
|
||||||
|
KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||||
|
KC_P4, KC_P5, KC_P6, KC_PIPE,
|
||||||
|
KC_P1, KC_P2, KC_P3, KC_ENTER,
|
||||||
|
KC_P0, MC_00, KC_PDOT, KC_ENTER
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT_ortho(
|
||||||
|
_______, RGB_HUI, RGB_VAI,
|
||||||
|
TG(1), RGB_TOG, RGB_HUD, RGB_VAD,
|
||||||
|
KC_PGUP, KC_UP, KC_PGDN, RGB_MOD,
|
||||||
|
KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX,
|
||||||
|
KC_INS, KC_HOME, KC_END, RGB_RMOD,
|
||||||
|
KC_ESC, XXXXXXX, KC_DEL, XXXXXXX
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
|
@ -15,6 +15,20 @@
|
||||||
*/
|
*/
|
||||||
#include "puca.h"
|
#include "puca.h"
|
||||||
|
|
||||||
|
bool process_record_kb(uint16_t keycode, keyrecord_t* record) {
|
||||||
|
if (!process_record_user(keycode, record)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
switch (keycode) {
|
||||||
|
case MC_00:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
SEND_STRING("00");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||||
if (!encoder_update_user(index, clockwise)) { return false; }
|
if (!encoder_update_user(index, clockwise)) { return false; }
|
||||||
if (clockwise) {
|
if (clockwise) {
|
||||||
|
|
|
@ -16,26 +16,86 @@
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
// K24 is 2U Plus
|
|
||||||
// K44 is 2u Enter
|
|
||||||
// K54 is 2u 0
|
|
||||||
|
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
#define LAYOUT( \
|
/* Keycodes defined here can be used by any keymap. If you wish to
|
||||||
K00, K02, K03, \
|
* define additional keycodes for your personal keymap only, assign
|
||||||
K10, K11, K12, K13, \
|
* your first custom keycode to `= NEW_SAFE_RANGE`.
|
||||||
K20, K21, K22, K23, K24,\
|
*
|
||||||
K30, K31, K32, K33, \
|
* See `process_record_kb()` in `puca.c`.
|
||||||
K40, K41, K42, K43, K44,\
|
*/
|
||||||
K50, K51, K52, K53, \
|
enum keyboard_keycodes {
|
||||||
K54 \
|
MC_00 = SAFE_RANGE,
|
||||||
|
NEW_SAFE_RANGE,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define XXX KC_NO
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ┌───┐ ┌───┬───┐
|
||||||
|
* │00 │ │02 │03 │
|
||||||
|
* └───┘ └───┴───┘
|
||||||
|
* ┌───┬───┬───┬───┐
|
||||||
|
* │10 │11 │12 │13 │
|
||||||
|
* ├───┼───┼───┼───┤ ┌───┐
|
||||||
|
* │20 │21 │22 │23 │ │ │
|
||||||
|
* ├───┼───┼───┼───┤ │24 │ 2u Plus
|
||||||
|
* │30 │31 │32 │33 │ │ │
|
||||||
|
* ├───┼───┼───┼───┤ ├───┤
|
||||||
|
* │40 │41 │42 │43 │ │ │
|
||||||
|
* ├───┼───┼───┼───┤ │44 │ 2u Enter
|
||||||
|
* │50 │51 │52 │53 │ │ │
|
||||||
|
* └───┴───┴───┴───┘ └───┘
|
||||||
|
* ┌───────┐
|
||||||
|
* │54 │ 2u 0
|
||||||
|
* └───────┘
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
K00, K02, K03, \
|
||||||
|
K10, K11, K12, K13, \
|
||||||
|
K20, K21, K22, K23, K24,\
|
||||||
|
K30, K31, K32, K33, \
|
||||||
|
K40, K41, K42, K43, K44,\
|
||||||
|
K50, K51, K52, K53, \
|
||||||
|
K54 \
|
||||||
) { \
|
) { \
|
||||||
{ K00, KC_NO, K02, K03, KC_NO }, \
|
{ K00, XXX, K02, K03, XXX }, \
|
||||||
{ K10, K11, K12, K13, KC_NO }, \
|
{ K10, K11, K12, K13, XXX }, \
|
||||||
{ K20, K21, K22, K23, K24 }, \
|
{ K20, K21, K22, K23, K24 }, \
|
||||||
{ K30, K31, K32, K33, KC_NO }, \
|
{ K30, K31, K32, K33, XXX }, \
|
||||||
{ K40, K41, K42, K43, K44 }, \
|
{ K40, K41, K42, K43, K44 }, \
|
||||||
{ K50, K51, K52, K53, K54 }, \
|
{ K50, K51, K52, K53, K54 }, \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_numpad( \
|
||||||
|
K00, K02, K03, \
|
||||||
|
K10, K11, K12, K13, \
|
||||||
|
K20, K21, K22, \
|
||||||
|
K30, K31, K32, K24, \
|
||||||
|
K40, K41, K42, \
|
||||||
|
K54, K52, K44 \
|
||||||
|
) { \
|
||||||
|
{ K00, XXX, K02, K03, XXX }, \
|
||||||
|
{ K10, K11, K12, K13, XXX }, \
|
||||||
|
{ K20, K21, K22, XXX, K24 }, \
|
||||||
|
{ K30, K31, K32, XXX, XXX }, \
|
||||||
|
{ K40, K41, K42, XXX, K44 }, \
|
||||||
|
{ XXX, XXX, K52, XXX, K54 }, \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_ortho( \
|
||||||
|
K00, K02, K03, \
|
||||||
|
K10, K11, K12, K13, \
|
||||||
|
K20, K21, K22, K23, \
|
||||||
|
K30, K31, K32, K33, \
|
||||||
|
K40, K41, K42, K43, \
|
||||||
|
K50, K51, K52, K53 \
|
||||||
|
) { \
|
||||||
|
{ K00, XXX, K02, K03, XXX }, \
|
||||||
|
{ K10, K11, K12, K13, XXX }, \
|
||||||
|
{ K20, K21, K22, K23, XXX }, \
|
||||||
|
{ K30, K31, K32, K33, XXX }, \
|
||||||
|
{ K40, K41, K42, K43, XXX }, \
|
||||||
|
{ K50, K51, K52, K53, XXX }, \
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
* Keyboard Maintainer: [Sleepdealer](https://github.com/Sleepdealr)
|
* Keyboard Maintainer: [Sleepdealer](https://github.com/Sleepdealr)
|
||||||
* Hardware Supported: Puca Pad
|
* Hardware Supported: Puca Pad
|
||||||
* Hardware Availability: Puca GB
|
* Hardware Availability: [Puca GB](https://ffkeebs.com/collections/puca)
|
||||||
|
|
||||||
## Bootloader
|
## Bootloader
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
|
||||||
ENCODER_ENABLE = yes #Rotary encoder
|
ENCODER_ENABLE = yes # Enable rotary encoder support
|
||||||
|
OLED_ENABLE = yes # Enable OLED support
|
||||||
|
|
||||||
OLED_ENABLE = yes #OLED
|
LTO_ENABLE = yes # Enable Link Time Optimization to reduce firmware size
|
||||||
LTO_ENABLE = yes # Enable Link Time Optimization to reduce firmware size
|
|
||||||
|
|
|
@ -4,7 +4,102 @@
|
||||||
"url": "https://github.com/jurassic73/split89",
|
"url": "https://github.com/jurassic73/split89",
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT": {
|
||||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6, "y":0}, {"label":"F6", "x":10.25, "y":0}, {"label":"F7", "x":11.25, "y":0}, {"label":"F8", "x":12.25, "y":0}, {"label":"F9", "x":13.75, "y":0}, {"label":"F10", "x":14.75, "y":0}, {"label":"F11", "x":15.75, "y":0}, {"label":"F12", "x":16.75, "y":0}, {"label":"PrtSc", "x":18, "y":0}, {"label":"Scroll Lock", "x":19, "y":0}, {"label":"Pause", "x":20, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":9.75, "y":1.5}, {"label":"*", "x":10.75, "y":1.5}, {"label":"(", "x":11.75, "y":1.5}, {"label":")", "x":12.75, "y":1.5}, {"label":"_", "x":13.75, "y":1.5}, {"label":"+", "x":14.75, "y":1.5}, {"label":"Backspace", "x":15.75, "y":1.5, "w":2}, {"label":"Insert", "x":18, "y":1.5}, {"label":"Home", "x":19, "y":1.5}, {"label":"PgUp", "x":20, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":9.25, "y":2.5}, {"label":"U", "x":10.25, "y":2.5}, {"label":"I", "x":11.25, "y":2.5}, {"label":"O", "x":12.25, "y":2.5}, {"label":"P", "x":13.25, "y":2.5}, {"label":"{", "x":14.25, "y":2.5}, {"label":"}", "x":15.25, "y":2.5}, {"label":"|", "x":16.25, "y":2.5, "w":1.5}, {"label":"Delete", "x":18, "y":2.5}, {"label":"End", "x":19, "y":2.5}, {"label":"PgDn", "x":20, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":9.5, "y":3.5}, {"label":"J", "x":10.5, "y":3.5}, {"label":"K", "x":11.5, "y":3.5}, {"label":"L", "x":12.5, "y":3.5}, {"label":":", "x":13.5, "y":3.5}, {"label":"\"", "x":14.5, "y":3.5}, {"label":"Enter", "x":15.5, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":10, "y":4.5}, {"label":"M", "x":11, "y":4.5}, {"label":"<", "x":12, "y":4.5}, {"label":">", "x":13, "y":4.5}, {"label":"?", "x":14, "y":4.5}, {"label":"Shift", "x":15, "y":4.5, "w":2.75}, {"label":"\u2191", "x":19, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Fn", "x":1.25, "y":5.5, "w":1.25}, {"label":"Win", "x":2.5, "y":5.5, "w":1.25}, {"label":"Alt", "x":3.75, "y":5.5, "w":1.25}, {"x":5, "y":5.5, "w":2.25}, {"x":10, "y":5.5, "w":2.75}, {"label":"Alt", "x":12.75, "y":5.5, "w":1.25}, {"label":"Win", "x":14, "y":5.5, "w":1.25}, {"label":"Menu", "x":15.25, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":16.5, "y":5.5, "w":1.25}, {"label":"\u2190", "x":18, "y":5.5}, {"label":"\u2193", "x":19, "y":5.5}, {"label":"\u2192", "x":20, "y":5.5}]
|
"layout": [
|
||||||
|
{"label":"Esc", "x":0, "y":0},
|
||||||
|
{"label":"F1", "x":2, "y":0},
|
||||||
|
{"label":"F2", "x":3, "y":0},
|
||||||
|
{"label":"F3", "x":4, "y":0},
|
||||||
|
{"label":"F4", "x":5, "y":0},
|
||||||
|
{"label":"F5", "x":6, "y":0},
|
||||||
|
{"label":"F6", "x":8.5, "y":0},
|
||||||
|
{"label":"F7", "x":9.5, "y":0},
|
||||||
|
{"label":"F8", "x":10.5, "y":0},
|
||||||
|
{"label":"F9", "x":12.0, "y":0},
|
||||||
|
{"label":"F10", "x":13.0, "y":0},
|
||||||
|
{"label":"F11", "x":14.0, "y":0},
|
||||||
|
{"label":"F12", "x":15.0, "y":0},
|
||||||
|
{"label":"PrtSc", "x":16.25, "y":0},
|
||||||
|
{"label":"Scroll Lock", "x":17.25, "y":0},
|
||||||
|
{"label":"Pause", "x":18.25, "y":0},
|
||||||
|
|
||||||
|
{"label":"`~", "x":0, "y":1.25},
|
||||||
|
{"label":"1!", "x":1, "y":1.25},
|
||||||
|
{"label":"2@", "x":2, "y":1.25},
|
||||||
|
{"label":"3#", "x":3, "y":1.25},
|
||||||
|
{"label":"4$", "x":4, "y":1.25},
|
||||||
|
{"label":"5%", "x":5, "y":1.25},
|
||||||
|
{"label":"6^", "x":6, "y":1.25},
|
||||||
|
{"label":"7&", "x":8.0, "y":1.25},
|
||||||
|
{"label":"8*", "x":9.0, "y":1.25},
|
||||||
|
{"label":"9(", "x":10.0, "y":1.25},
|
||||||
|
{"label":"0)", "x":11.0, "y":1.25},
|
||||||
|
{"label":"-_", "x":12.0, "y":1.25},
|
||||||
|
{"label":"=+", "x":13.0, "y":1.25},
|
||||||
|
{"label":"Backspace", "x":14.0, "y":1.25, "w":2},
|
||||||
|
{"label":"Insert", "x":16.25, "y":1.25},
|
||||||
|
{"label":"Home", "x":17.25, "y":1.25},
|
||||||
|
{"label":"PgUp", "x":18.25, "y":1.25},
|
||||||
|
|
||||||
|
{"label":"Tab", "x":0, "y":2.25, "w":1.5},
|
||||||
|
{"label":"Q", "x":1.5, "y":2.25},
|
||||||
|
{"label":"W", "x":2.5, "y":2.25},
|
||||||
|
{"label":"E", "x":3.5, "y":2.25},
|
||||||
|
{"label":"R", "x":4.5, "y":2.25},
|
||||||
|
{"label":"T", "x":5.5, "y":2.25},
|
||||||
|
{"label":"Y", "x":7.5, "y":2.25},
|
||||||
|
{"label":"U", "x":8.5, "y":2.25},
|
||||||
|
{"label":"I", "x":9.5, "y":2.25},
|
||||||
|
{"label":"O", "x":10.5, "y":2.25},
|
||||||
|
{"label":"P", "x":11.5, "y":2.25},
|
||||||
|
{"label":"[{", "x":12.5, "y":2.25},
|
||||||
|
{"label":"]}", "x":13.5, "y":2.25},
|
||||||
|
{"label":"\\|", "x":14.5, "y":2.25, "w":1.5},
|
||||||
|
{"label":"Delete", "x":16.25, "y":2.25},
|
||||||
|
{"label":"End", "x":17.25, "y":2.25},
|
||||||
|
{"label":"PgDn", "x":18.25, "y":2.25},
|
||||||
|
|
||||||
|
{"label":"Caps Lock", "x":0, "y":3.25, "w":1.75},
|
||||||
|
{"label":"A", "x":1.75, "y":3.25},
|
||||||
|
{"label":"S", "x":2.75, "y":3.25},
|
||||||
|
{"label":"D", "x":3.75, "y":3.25},
|
||||||
|
{"label":"F", "x":4.75, "y":3.25},
|
||||||
|
{"label":"G", "x":5.75, "y":3.25},
|
||||||
|
{"label":"H", "x":7.75, "y":3.25},
|
||||||
|
{"label":"J", "x":8.75, "y":3.25},
|
||||||
|
{"label":"K", "x":9.75, "y":3.25},
|
||||||
|
{"label":"L", "x":10.75, "y":3.25},
|
||||||
|
{"label":";:", "x":11.75, "y":3.25},
|
||||||
|
{"label":"'\"", "x":12.75, "y":3.25},
|
||||||
|
{"label":"Enter", "x":13.75, "y":3.25, "w":2.25},
|
||||||
|
|
||||||
|
{"label":"Shift", "x":0, "y":4.25, "w":2.25},
|
||||||
|
{"label":"Z", "x":2.25, "y":4.25},
|
||||||
|
{"label":"X", "x":3.25, "y":4.25},
|
||||||
|
{"label":"C", "x":4.25, "y":4.25},
|
||||||
|
{"label":"V", "x":5.25, "y":4.25},
|
||||||
|
{"label":"B", "x":6.25, "y":4.25},
|
||||||
|
{"label":"N", "x":8.25, "y":4.25},
|
||||||
|
{"label":"M", "x":9.25, "y":4.25},
|
||||||
|
{"label":",<", "x":10.25, "y":4.25},
|
||||||
|
{"label":".>", "x":11.25, "y":4.25},
|
||||||
|
{"label":"/?", "x":12.25, "y":4.25},
|
||||||
|
{"label":"Shift", "x":13.25, "y":4.25, "w":2.75},
|
||||||
|
{"label":"\u2191", "x":17.25, "y":4.25},
|
||||||
|
|
||||||
|
{"label":"Ctrl", "x":0, "y":5.25, "w":1.25},
|
||||||
|
{"label":"Fn", "x":1.25, "y":5.25, "w":1.25},
|
||||||
|
{"label":"Win", "x":2.5, "y":5.25, "w":1.25},
|
||||||
|
{"label":"Alt", "x":3.75, "y":5.25, "w":1.25},
|
||||||
|
{"label":"Space", "x":5, "y":5.25, "w":2.25},
|
||||||
|
{"label":"Space", "x":8.25, "y":5.25, "w":2.75},
|
||||||
|
{"label":"Alt", "x":11.0, "y":5.25, "w":1.25},
|
||||||
|
{"label":"Win", "x":12.25, "y":5.25, "w":1.25},
|
||||||
|
{"label":"Menu", "x":13.5, "y":5.25, "w":1.25},
|
||||||
|
{"label":"Ctrl", "x":14.75, "y":5.25, "w":1.25},
|
||||||
|
{"label":"\u2190", "x":16.25, "y":5.25},
|
||||||
|
{"label":"\u2193", "x":17.25, "y":5.25},
|
||||||
|
{"label":"\u2192", "x":18.25, "y":5.25}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,20 +23,20 @@ enum layer_names {
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
/* Base */
|
/* Base */
|
||||||
[0] = LAYOUT(
|
[0] = LAYOUT(
|
||||||
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_SLCK, KC_PAUS,
|
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_SLCK, KC_PAUS,
|
||||||
KC_GRV,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||||
KC_TAB,KC_Q, KC_W, KC_E, KC_R, KC_T, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_Y, KC_J, KC_K, KC_L, KC_SCLN,KC_QUOT, KC_ENT,
|
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_H, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSHIFT, KC_UP,
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||||
KC_LCTL,MO(1),KC_LGUI,KC_LALT,KC_SPACE, KC_N, KC_SPACE, KC_RALT,KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
KC_LCTL, MO(1), KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
),
|
),
|
||||||
/* Volume */
|
/* Volume */
|
||||||
[1] = LAYOUT(
|
[1] = 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_VOLU,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
|
||||||
KC_TRNS,KC_TRNS, KC_TRNS,KC_TRNS,KC_MEDIA_PLAY_PAUSE, KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS,KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
|
@ -18,6 +18,8 @@
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define XXX KC_NO
|
||||||
|
|
||||||
/* This is a shortcut to help you visually see your layout.
|
/* This is a shortcut to help you visually see your layout.
|
||||||
*
|
*
|
||||||
* The first section contains all of the arguments representing the physical
|
* The first section contains all of the arguments representing the physical
|
||||||
|
@ -27,24 +29,24 @@
|
||||||
* represents the switch matrix which includes blanks in the wired out matrix.
|
* represents the switch matrix which includes blanks in the wired out matrix.
|
||||||
*/
|
*/
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, k15, \
|
K04, K05, K06, K07, K08, K09, K60, K61, K62, K63, K64, K65, K66, K67, K68, K69, \
|
||||||
k32, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k30, k31, \
|
K24, K14, K15, K16, K17, K18, K19, K70, K71, K72, K73, K74, K75, K76, K77, K78, K79, \
|
||||||
k48, k33, k34, k35, k36, k37, k54, k38, k39, k40, k41, k42, k43, k44, k45, k46, k47, \
|
K34, K25, K26, K27, K28, K29, K39, K90, K80, K81, K82, K83, K84, K85, K86, K87, K88, \
|
||||||
k61, k49, k50, k51, k52, k53, k67, k55, k56, k57, k58, k59, k60, \
|
K89, K44, K35, K36, K37, K38, K49, KA0, K91, K92, K93, K94, K95, \
|
||||||
k74, k62, k63, k64, k65, k66, k80, k68, k69, k70, k71, k72, k73, \
|
K96, K54, K45, K46, K47, K48, K59, KB0, KA1, KA2, KA3, KA4, KA6, \
|
||||||
k75, k76, k77, k78, k79, k81, k82, k83, k84, k85, k86, k87, k88 \
|
KA8, K55, K56, K57, K58, KB1, KB3, KB4, KB5, KB6, KB7, KB8, KB9 \
|
||||||
) \
|
) \
|
||||||
{ \
|
{ \
|
||||||
{ KC_NO, KC_NO, KC_NO, KC_NO, k00, k01, k02, k03, k04, k05 }, \
|
{ XXX, XXX, XXX, XXX, K04, K05, K06, K07, K08, K09 }, \
|
||||||
{ KC_NO, KC_NO, KC_NO, KC_NO, k16, k17, k18, k19, k20, k21 }, \
|
{ XXX, XXX, XXX, XXX, K14, K15, K16, K17, K18, K19 }, \
|
||||||
{ KC_NO, KC_NO, KC_NO, KC_NO, k32, k33, k34, k35, k36, k37 }, \
|
{ XXX, XXX, XXX, XXX, K24, K25, K26, K27, K28, K29 }, \
|
||||||
{ KC_NO, KC_NO, KC_NO, KC_NO, k48, k49, k50, k51, k52, k53 }, \
|
{ XXX, XXX, XXX, XXX, K34, K35, K36, K37, K38, K39 }, \
|
||||||
{ KC_NO, KC_NO, KC_NO, KC_NO, k61, k62, k63, k64, k65, k66, }, \
|
{ XXX, XXX, XXX, XXX, K44, K45, K46, K47, K48, K49 }, \
|
||||||
{ KC_NO, KC_NO, KC_NO, KC_NO, k74, k75, k76, k77, k78, k79, }, \
|
{ XXX, XXX, XXX, XXX, K54, K55, K56, K57, K58, K59 }, \
|
||||||
{ k06, k07, k08, k09, k10, k11, k12, k13, k14, k15 }, \
|
{ K60, K61, K62, K63, K64, K65, K66, K67, K68, K69 }, \
|
||||||
{ k22, k23, k24, k25, k26, k27, k28, k29, k30, k31 }, \
|
{ K70, K71, K72, K73, K74, K75, K76, K77, K78, K79 }, \
|
||||||
{ k38, k39, k40, k41, k42, k43, k44, k45, k46, k47 }, \
|
{ K80, K81, K82, K83, K84, K85, K86, K87, K88, K89 }, \
|
||||||
{ k54, k55, k56, k57, k58, k59, k60, KC_NO, KC_NO, KC_NO }, \
|
{ K90, K91, K92, K93, K94, K95, K96, XXX, XXX, XXX }, \
|
||||||
{ k67, k68, k69, k70, k71, KC_NO, k72, KC_NO, k73, KC_NO }, \
|
{ KA0, KA1, KA2, KA3, KA4, XXX, KA6, XXX, KA8, XXX }, \
|
||||||
{ k80, k81, KC_NO, k82, k83, k84, k85, k86, k87, k88 } \
|
{ KB0, KB1, XXX, KB3, KB4, KB5, KB6, KB7, KB8, KB9 } \
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
/* Copyright 2021 jfescobar18
|
||||||
|
*
|
||||||
|
* 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 "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0x4D4B // MechanicKeys
|
||||||
|
#define PRODUCT_ID 0x6D6E
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER MechanicKeys
|
||||||
|
#define PRODUCT MINI ASHEN 40
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 4
|
||||||
|
#define MATRIX_COLS 13
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*
|
||||||
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define MATRIX_ROW_PINS { B1, B2, B3, B4 }
|
||||||
|
#define MATRIX_COL_PINS { C5, C4, C3, D0, C2, D1, C1, C0, D4, B0, D7, D6, B5 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW or ROW2COL */
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||||
|
//#define MATRIX_HAS_GHOST
|
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
"keyboard_name": "Mini Ashen 40",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"label": "Tab", "x": 0, "y": 0}, {"label": "Q", "x": 1, "y": 0}, {"label": "W", "x": 2, "y": 0}, {"label": "E", "x": 3, "y": 0}, {"label": "R", "x": 4, "y": 0}, {"label": "T", "x": 5, "y": 0}, {"label": "Y", "x": 6, "y": 0}, {"label": "U", "x": 7, "y": 0}, {"label": "I", "x": 8, "y": 0}, {"label": "O", "x": 9, "y": 0}, {"label": "P", "x": 10, "y": 0}, {"label": "Del", "x": 11, "y": 0}, {"label": "M1", "x": 12.25, "y": 0}, {"label": "M2", "x": 13.25, "y": 0},
|
||||||
|
{"label": "Ctrl", "x": 0, "y": 1, "w":1.25}, {"label": "A", "x": 1.25, "y": 1}, {"label": "S", "x": 2.25, "y": 1}, {"label": "D", "x": 3.25, "y": 1}, {"label": "F", "x": 4.25, "y": 1}, {"label": "G", "x": 5.25, "y": 1}, {"label": "H", "x": 6.25, "y": 1}, {"label": "J", "x": 7.25, "y": 1}, {"label": "K", "x": 8.25, "y": 1}, {"label": "L", "x": 9.25, "y": 1}, {"label": "Enter", "x": 10.25, "y": 1, "w":1.75}, {"label": "M3", "x": 12.25, "y": 1}, {"label": "M4", "x": 13.25, "y": 1},
|
||||||
|
{"label": "Shift", "x": 0, "y": 2, "w":1.75}, {"label": "Z", "x": 1.75, "y": 2}, {"label": "X", "x": 2.75, "y": 2}, {"label": "C", "x": 3.75, "y": 2}, {"label": "V", "x": 4.75, "y": 2}, {"label": "B", "x": 5.75, "y": 2}, {"label": "N", "x": 6.75, "y": 2}, {"label": "M", "x": 7.75, "y": 2}, {"label": ",", "x": 8.75, "y": 2}, {"label": ".", "x": 9.75, "y": 2}, {"label": "Fn", "x": 10.75, "y": 2, "w":1.25}, {"label": "Up", "x": 12.25, "y": 2.25},
|
||||||
|
{"label": "Alt", "x": 1, "y": 3}, {"label": "OS", "x": 2, "y": 3, "w": 1.5}, {"label": "", "x": 3.5, "y": 3, "w": 2.75}, {"label": "", "x": 6.25, "y": 3, "w": 2.25}, {"label": "Os", "x": 8.5, "y": 3, "w": 1.5}, {"label": "Alt", "x": 10, "y": 3}, {"label": "Left", "x": 11.25, "y": 3.25}, {"label": "Down", "x": 12.25, "y": 3.25}, {"label": "Right", "x": 13.25, "y": 3.25}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,47 @@
|
||||||
|
/* Copyright 2021 jfescobar18
|
||||||
|
*
|
||||||
|
* 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( /* 0: qwerty */
|
||||||
|
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MPRV, KC_MNXT,
|
||||||
|
CTL_T(KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_MUTE, KC_MPLY,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, MO(1), KC_UP, KC_BSPC,
|
||||||
|
KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT( /* 1: Symbols */
|
||||||
|
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TRNS, KC_TRNS,
|
||||||
|
MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_SCLN, KC_QUOT, KC_BSLS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLSH, KC_TRNS, KC_TRNS, KC_EQL,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
[2] = LAYOUT( /* 2: Fn */
|
||||||
|
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
[3] = LAYOUT( /*3: Empty */
|
||||||
|
RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
};
|
|
@ -0,0 +1,47 @@
|
||||||
|
/* Copyright 2021 Francisco Escobar
|
||||||
|
*
|
||||||
|
* 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( /* 0: qwerty */
|
||||||
|
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MPRV, KC_MNXT,
|
||||||
|
CTL_T(KC_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT, KC_MUTE, KC_MPLY,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, MO(1), KC_UP, KC_BSPC,
|
||||||
|
KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT( /* 1: Symbols */
|
||||||
|
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_TRNS, KC_TRNS,
|
||||||
|
MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_SCLN, KC_QUOT, KC_BSLS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLSH, KC_TRNS, KC_TRNS, KC_EQL,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
[2] = LAYOUT( /* 2: Fn */
|
||||||
|
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
[3] = LAYOUT( /*3: Empty */
|
||||||
|
RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
};
|
|
@ -0,0 +1,2 @@
|
||||||
|
VIA_ENABLE = yes
|
||||||
|
LTO_ENABLE = yes
|
|
@ -0,0 +1,17 @@
|
||||||
|
/* Copyright 2021 jfescobar18
|
||||||
|
*
|
||||||
|
* 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 "miniashen40.h"
|
|
@ -0,0 +1,42 @@
|
||||||
|
/* Copyright 2021 jfescobar18
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define XXX KC_NO
|
||||||
|
|
||||||
|
/* 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 LAYOUT( \
|
||||||
|
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, K33, 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, XXX, K33, XXX, XXX, K36, XXX, K38, K39, K3A, K3B, K3C } \
|
||||||
|
}
|
|
@ -0,0 +1,40 @@
|
||||||
|
# Mini Ashen 40
|
||||||
|
|
||||||
|
![Mini Ashen 40](https://i.imgur.com/0k3gFZCh.jpeg)
|
||||||
|
|
||||||
|
![Mini Ashen 40](https://i.imgur.com/B1w8qwPh.jpeg)
|
||||||
|
|
||||||
|
![Mini Ashen 40](https://i.imgur.com/LqxXW0Rh.jpeg)
|
||||||
|
|
||||||
|
A 40% keyboard with some extras
|
||||||
|
- Arrows
|
||||||
|
- Mini macro cluster
|
||||||
|
- Full assembly with only through hole components
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [jfescobar18](https://github.com/jfescobar18)
|
||||||
|
* Hardware Supported: Mini Ashen 40 PCB and Case
|
||||||
|
* Hardware Availability: [MechanicKeys](https://www.facebook.com/MechanicKeys-104963764775280)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make mechanickeys/miniashen40:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make mechanickeys/miniashen40: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**:
|
||||||
|
1. Press and hold `BOOT` switch
|
||||||
|
2. Tap `RESET` switch
|
||||||
|
3. Release `BOOT` switch
|
||||||
|
* **Keycode in layout**: Press the key mapped to `RESET` if it is available
|
||||||
|
|
||||||
|
## Flash bootloader
|
||||||
|
* [Follow this instructions](https://github.com/jfescobar18/USBaspLoader)
|
|
@ -0,0 +1,21 @@
|
||||||
|
# MCU name
|
||||||
|
MCU = atmega328p
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = usbasploader
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
|
@ -0,0 +1,79 @@
|
||||||
|
/*
|
||||||
|
Copyright 2021 MTBKeys
|
||||||
|
|
||||||
|
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 "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xFEED
|
||||||
|
#define PRODUCT_ID 0x0001
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER MTBKeys
|
||||||
|
#define PRODUCT honeyboard60
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 15
|
||||||
|
|
||||||
|
/* key matrix pinout */
|
||||||
|
#define MATRIX_ROW_PINS { D6, D7, B4, B5, D5 }
|
||||||
|
#define MATRIX_COL_PINS { D0, D1, D2, D3, B7, B6, F7, C6, C7, F6, F4, F1, F0, F5, E6 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* diode direction: COL2ROW or ROW2COL */
|
||||||
|
#define DIODE_DIRECTION ROW2COL
|
||||||
|
|
||||||
|
/* Pin WS2812 RGB LEDs are connected to */
|
||||||
|
#define RGB_DI_PIN D4
|
||||||
|
|
||||||
|
#ifdef RGB_DI_PIN
|
||||||
|
# define RGBLED_NUM 16
|
||||||
|
# define RGBLIGHT_HUE_STEP 8
|
||||||
|
# define RGBLIGHT_SAT_STEP 8
|
||||||
|
# define RGBLIGHT_VAL_STEP 8
|
||||||
|
# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
|
||||||
|
# define RGBLIGHT_SLEEP /* Turn RGB light off when the host goes to sleep */
|
||||||
|
# define RGBLIGHT_EFFECT_ALTERNATING
|
||||||
|
# define RGBLIGHT_EFFECT_BREATHING
|
||||||
|
# define RGBLIGHT_EFFECT_CHRISTMAS
|
||||||
|
# define RGBLIGHT_EFFECT_KNIGHT
|
||||||
|
# define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||||
|
# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||||
|
# define RGBLIGHT_EFFECT_RGB_TEST
|
||||||
|
# define RGBLIGHT_EFFECT_SNAKE
|
||||||
|
# define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||||
|
# define RGBLIGHT_EFFECT_TWINKLE
|
||||||
|
# define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL /* Set default RGB */
|
||||||
|
#endif /* RGB_DI_PIN */
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* 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
|
||||||
|
|
||||||
|
/* disable these deprecated features by default */
|
||||||
|
#define NO_ACTION_MACRO
|
||||||
|
#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
|
/* Bootmagic Lite key configuration */
|
||||||
|
#define BOOTMAGIC_LITE_ROW 0
|
||||||
|
#define BOOTMAGIC_LITE_COLUMN 0
|
|
@ -0,0 +1,17 @@
|
||||||
|
/* Copyright 2021 MTBKeys
|
||||||
|
*
|
||||||
|
* 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 "hotswap.h"
|
|
@ -0,0 +1,33 @@
|
||||||
|
/* Copyright 2021 MTBKeys
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT( \
|
||||||
|
k00, k10, k20, k30, k40, k50, k60, k70, k80, k90, ka0, kb0, kc0, ke0, \
|
||||||
|
k11, k21, k31, k41, k51, k61, k71, k81, k91, ka1, kb1, kc1, kd1, ke1, \
|
||||||
|
k02, k22, k32, k42, k52, k62, k72, k82, k92, ka2, kb2, kc2, kd2, \
|
||||||
|
k03, k23, k33, k43, k53, k63, k73, k83, k93, ka3, kb3, kd3, \
|
||||||
|
k04, k14, k24, k64, ka4, kb4, kd4, ke4 \
|
||||||
|
) { \
|
||||||
|
{ k00, k10, k20, k30, k40, k50, k60, k70, k80, k90, ka0, kb0, kc0, KC_NO, ke0 }, \
|
||||||
|
{ KC_NO, k11, k21, k31, k41, k51, k61, k71, k81, k91, ka1, kb1, kc1, kd1, ke1 }, \
|
||||||
|
{ k02, KC_NO, k22, k32, k42, k52, k62, k72, k82, k92, ka2, kb2, kc2, kd2, KC_NO }, \
|
||||||
|
{ k03, KC_NO, k23, k33, k43, k53, k63, k73, k83, k93, ka3, kb3, KC_NO, kd3, KC_NO }, \
|
||||||
|
{ k04, k14, k24, KC_NO, KC_NO, KC_NO, k64, KC_NO, KC_NO, KC_NO, ka4, kb4, kd4, KC_NO, ke4 } \
|
||||||
|
}
|
|
@ -0,0 +1,72 @@
|
||||||
|
{
|
||||||
|
"keyboard_name": "MTB60",
|
||||||
|
"url": "mtbkeys.com",
|
||||||
|
"maintainer": "MTBKeys",
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [
|
||||||
|
{"label": "Esc" , "x": 0, "y": 0 },
|
||||||
|
{"label": "!" , "x": 1, "y": 0 },
|
||||||
|
{"label": "@" , "x": 2, "y": 0 },
|
||||||
|
{"label": "#" , "x": 3, "y": 0 },
|
||||||
|
{"label": "$" , "x": 4, "y": 0 },
|
||||||
|
{"label": "%" , "x": 5, "y": 0 },
|
||||||
|
{"label": "^" , "x": 6, "y": 0 },
|
||||||
|
{"label": "&" , "x": 7, "y": 0 },
|
||||||
|
{"label": "*" , "x": 8, "y": 0 },
|
||||||
|
{"label": "(" , "x": 9, "y": 0 },
|
||||||
|
{"label": ")" , "x": 10, "y": 0 },
|
||||||
|
{"label": "_" , "x": 11, "y": 0 },
|
||||||
|
{"label": "+" , "x": 12, "y": 0 },
|
||||||
|
{"label": "Back Space", "x": 13, "y": 0, "w": 2},
|
||||||
|
{"label": "Tab", "x": 0 , "y": 1, "w": 1.5},
|
||||||
|
{"label": "Q" , "x": 1.5, "y": 1 },
|
||||||
|
{"label": "W" , "x": 2.5, "y": 1 },
|
||||||
|
{"label": "E" , "x": 3.5, "y": 1 },
|
||||||
|
{"label": "R" , "x": 4.5, "y": 1 },
|
||||||
|
{"label": "T" , "x": 5.5, "y": 1 },
|
||||||
|
{"label": "Y" , "x": 6.5, "y": 1 },
|
||||||
|
{"label": "U" , "x": 7.5, "y": 1 },
|
||||||
|
{"label": "I" , "x": 8.5, "y": 1 },
|
||||||
|
{"label": "O" , "x": 9.5, "y": 1 },
|
||||||
|
{"label": "P" , "x": 10.5, "y": 1 },
|
||||||
|
{"label": "{" , "x": 11.5, "y": 1 },
|
||||||
|
{"label": "}" , "x": 12.5, "y": 1 },
|
||||||
|
{"label": "|" , "x": 13.5, "y": 1, "w": 1.5},
|
||||||
|
{"label": "Caps Lock", "x": 0 , "y": 2, "w": 1.75},
|
||||||
|
{"label": "A" , "x": 1.75, "y": 2 },
|
||||||
|
{"label": "S" , "x": 2.75, "y": 2 },
|
||||||
|
{"label": "D" , "x": 3.75, "y": 2 },
|
||||||
|
{"label": "F" , "x": 4.75, "y": 2 },
|
||||||
|
{"label": "G" , "x": 5.75, "y": 2 },
|
||||||
|
{"label": "H" , "x": 6.75, "y": 2 },
|
||||||
|
{"label": "J" , "x": 7.75, "y": 2 },
|
||||||
|
{"label": "K" , "x": 8.75, "y": 2 },
|
||||||
|
{"label": "L" , "x": 9.75, "y": 2 },
|
||||||
|
{"label": ":" , "x": 10.75, "y": 2 },
|
||||||
|
{"label": "\"" , "x": 11.75, "y": 2 },
|
||||||
|
{"label": "Enter" , "x": 12.75, "y": 2, "w": 2.25},
|
||||||
|
{"label": "Left Shift" , "x": 0 , "y": 3, "w": 2.25},
|
||||||
|
{"label": "Z" , "x": 2.25, "y": 3 },
|
||||||
|
{"label": "X" , "x": 3.25, "y": 3 },
|
||||||
|
{"label": "C" , "x": 4.25, "y": 3 },
|
||||||
|
{"label": "V" , "x": 5.25, "y": 3 },
|
||||||
|
{"label": "B" , "x": 6.25, "y": 3 },
|
||||||
|
{"label": "N" , "x": 7.25, "y": 3 },
|
||||||
|
{"label": "M" , "x": 8.25, "y": 3 },
|
||||||
|
{"label": "<" , "x": 9.25, "y": 3 },
|
||||||
|
{"label": ">" , "x": 10.25, "y": 3 },
|
||||||
|
{"label": "?" , "x": 11.25, "y": 3 },
|
||||||
|
{"label": "Right Shift", "x": 12.25, "y": 3, "w": 2.75},
|
||||||
|
{"label": "Left Ctrl" , "x": 0 , "y": 4, "w": 1.25},
|
||||||
|
{"label": "GUI" , "x": 1.25, "y": 4, "w": 1.25},
|
||||||
|
{"label": "Left Alt" , "x": 2.5 , "y": 4, "w": 1.25},
|
||||||
|
{"label": "Space" , "x": 3.75, "y": 4, "w": 6.25},
|
||||||
|
{"label": "Right Ctrl", "x": 10 , "y": 4, "w": 1.25},
|
||||||
|
{"label": "GUI" , "x": 11.25, "y": 4, "w": 1.25},
|
||||||
|
{"label": "MO(1)" , "x": 12.5 , "y": 4, "w": 1.25},
|
||||||
|
{"label": "Right Ctrl", "x": 13.75, "y": 4, "w": 1.25}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
/* Copyright 2021 MTBKeys
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
// Defines names for use in layer keycodes and the keymap
|
||||||
|
enum layer_names {
|
||||||
|
_BASE, ///< Default Layer
|
||||||
|
_FN ///< Function Layer
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_BASE] = LAYOUT(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||||
|
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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(_FN), KC_RCTL
|
||||||
|
),
|
||||||
|
[_FN] = LAYOUT(
|
||||||
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||||
|
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, RGB_TOG
|
||||||
|
)
|
||||||
|
};
|
|
@ -0,0 +1,26 @@
|
||||||
|
# MTB60 (Hotswap Edition)
|
||||||
|
|
||||||
|
## Details
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [MTBKeys](https://mtbkeys.com/)
|
||||||
|
* Hardware Supported: MTB60 PCB (Hotswap edition)
|
||||||
|
* Hardware Availability: [HB60 on MTBKeys Website](https://mtbkeys.com/)
|
||||||
|
|
||||||
|
## Building Firmware
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make mtbkeys/mtb60/hotswap:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make mtbkeys/mtb60/hotswap:default:flash
|
||||||
|
|
||||||
|
## Bootloader
|
||||||
|
|
||||||
|
Enter the bootloader in 2 ways:
|
||||||
|
|
||||||
|
1. **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
|
||||||
|
2. **Physical reset button**: Briefly press the button on the back of the PCB
|
||||||
|
|
||||||
|
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,21 @@
|
||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
|
@ -0,0 +1,79 @@
|
||||||
|
/*
|
||||||
|
Copyright 2021 MTBKeys
|
||||||
|
|
||||||
|
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 "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xFEED
|
||||||
|
#define PRODUCT_ID 0x0000
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER MTBKeys
|
||||||
|
#define PRODUCT MTB60
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 15
|
||||||
|
|
||||||
|
/* key matrix pinout */
|
||||||
|
#define MATRIX_ROW_PINS { D0, D1, F4, F1, D2 }
|
||||||
|
#define MATRIX_COL_PINS { E6, F0, F5, F6, F7, D5, D3, C7, C6, B6, B5, B4, D7, D6, D4 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* diode direction: COL2ROW or ROW2COL */
|
||||||
|
#define DIODE_DIRECTION ROW2COL
|
||||||
|
|
||||||
|
/* Pin WS2812 RGB LEDs are connected to */
|
||||||
|
#define RGB_DI_PIN B0
|
||||||
|
|
||||||
|
#ifdef RGB_DI_PIN
|
||||||
|
# define RGBLED_NUM 16
|
||||||
|
# define RGBLIGHT_HUE_STEP 8
|
||||||
|
# define RGBLIGHT_SAT_STEP 8
|
||||||
|
# define RGBLIGHT_VAL_STEP 8
|
||||||
|
# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
|
||||||
|
# define RGBLIGHT_SLEEP /* Turn RGB light off when the host goes to sleep */
|
||||||
|
# define RGBLIGHT_EFFECT_ALTERNATING
|
||||||
|
# define RGBLIGHT_EFFECT_BREATHING
|
||||||
|
# define RGBLIGHT_EFFECT_CHRISTMAS
|
||||||
|
# define RGBLIGHT_EFFECT_KNIGHT
|
||||||
|
# define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||||
|
# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||||
|
# define RGBLIGHT_EFFECT_RGB_TEST
|
||||||
|
# define RGBLIGHT_EFFECT_SNAKE
|
||||||
|
# define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||||
|
# define RGBLIGHT_EFFECT_TWINKLE
|
||||||
|
# define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL /* Set default RGB */
|
||||||
|
#endif /* RGB_DI_PIN */
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* 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
|
||||||
|
|
||||||
|
/* disable these deprecated features by default */
|
||||||
|
#define NO_ACTION_MACRO
|
||||||
|
#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
|
/* Bootmagic Lite key configuration */
|
||||||
|
#define BOOTMAGIC_LITE_ROW 0
|
||||||
|
#define BOOTMAGIC_LITE_COLUMN 0
|
|
@ -0,0 +1,75 @@
|
||||||
|
{
|
||||||
|
"keyboard_name": "MTB60",
|
||||||
|
"url": "mtbkeys.com",
|
||||||
|
"maintainer": "MTBKeys",
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [
|
||||||
|
{"label": "Esc" , "x": 0, "y": 0},
|
||||||
|
{"label": "!" , "x": 1, "y": 0},
|
||||||
|
{"label": "@" , "x": 2, "y": 0},
|
||||||
|
{"label": "#" , "x": 3, "y": 0},
|
||||||
|
{"label": "$" , "x": 4, "y": 0},
|
||||||
|
{"label": "%" , "x": 5, "y": 0},
|
||||||
|
{"label": "^" , "x": 6, "y": 0},
|
||||||
|
{"label": "&" , "x": 7, "y": 0},
|
||||||
|
{"label": "*" , "x": 8, "y": 0},
|
||||||
|
{"label": "(" , "x": 9, "y": 0},
|
||||||
|
{"label": ")" , "x": 10, "y": 0},
|
||||||
|
{"label": "_" , "x": 11, "y": 0},
|
||||||
|
{"label": "+" , "x": 12, "y": 0},
|
||||||
|
{"label": "Back Space", "x": 13, "y": 0},
|
||||||
|
{"label": "Delete" , "x": 14, "y": 0},
|
||||||
|
{"label": "Tab", "x": 0 , "y": 1, "w": 1.5},
|
||||||
|
{"label": "Q" , "x": 1.5, "y": 1 },
|
||||||
|
{"label": "W" , "x": 2.5, "y": 1 },
|
||||||
|
{"label": "E" , "x": 3.5, "y": 1 },
|
||||||
|
{"label": "R" , "x": 4.5, "y": 1 },
|
||||||
|
{"label": "T" , "x": 5.5, "y": 1 },
|
||||||
|
{"label": "Y" , "x": 6.5, "y": 1 },
|
||||||
|
{"label": "U" , "x": 7.5, "y": 1 },
|
||||||
|
{"label": "I" , "x": 8.5, "y": 1 },
|
||||||
|
{"label": "O" , "x": 9.5, "y": 1 },
|
||||||
|
{"label": "P" , "x": 10.5, "y": 1 },
|
||||||
|
{"label": "{" , "x": 11.5, "y": 1 },
|
||||||
|
{"label": "}" , "x": 12.5, "y": 1 },
|
||||||
|
{"label": "|" , "x": 13.5, "y": 1, "w": 1.5},
|
||||||
|
{"label": "Caps Lock", "x": 0 , "y": 2, "w": 1.75},
|
||||||
|
{"label": "A" , "x": 1.75, "y": 2 },
|
||||||
|
{"label": "S" , "x": 2.75, "y": 2 },
|
||||||
|
{"label": "D" , "x": 3.75, "y": 2 },
|
||||||
|
{"label": "F" , "x": 4.75, "y": 2 },
|
||||||
|
{"label": "G" , "x": 5.75, "y": 2 },
|
||||||
|
{"label": "H" , "x": 6.75, "y": 2 },
|
||||||
|
{"label": "J" , "x": 7.75, "y": 2 },
|
||||||
|
{"label": "K" , "x": 8.75, "y": 2 },
|
||||||
|
{"label": "L" , "x": 9.75, "y": 2 },
|
||||||
|
{"label": ":" , "x": 10.75, "y": 2 },
|
||||||
|
{"label": "\"" , "x": 11.75, "y": 2 },
|
||||||
|
{"label": "Enter" , "x": 12.75, "y": 2, "w": 2.25},
|
||||||
|
{"label": "Left Shift" , "x": 0 , "y": 3, "w": 2.25},
|
||||||
|
{"label": "Z" , "x": 2.25, "y": 3 },
|
||||||
|
{"label": "X" , "x": 3.25, "y": 3 },
|
||||||
|
{"label": "C" , "x": 4.25, "y": 3 },
|
||||||
|
{"label": "V" , "x": 5.25, "y": 3 },
|
||||||
|
{"label": "B" , "x": 6.25, "y": 3 },
|
||||||
|
{"label": "N" , "x": 7.25, "y": 3 },
|
||||||
|
{"label": "M" , "x": 8.25, "y": 3 },
|
||||||
|
{"label": "<" , "x": 9.25, "y": 3 },
|
||||||
|
{"label": ">" , "x": 10.25, "y": 3 },
|
||||||
|
{"label": "?" , "x": 11.25, "y": 3 },
|
||||||
|
{"label": "Right Shift", "x": 12.25, "y": 3, "w": 2.75},
|
||||||
|
{"label": "Left Ctrl" , "x": 0 , "y": 4, "w": 1.25},
|
||||||
|
{"label": "GUI" , "x": 1.25, "y": 4, "w": 1.25},
|
||||||
|
{"label": "Left Alt" , "x": 2.5 , "y": 4, "w": 1.25},
|
||||||
|
{"label": "Space" , "x": 3.75, "y": 4, "w": 2.25},
|
||||||
|
{"label": "Space" , "x": 6 , "y": 4, "w": 1.25},
|
||||||
|
{"label": "Space" , "x": 7.25, "y": 4, "w": 2.75},
|
||||||
|
{"label": "Right Ctrl", "x": 10 , "y": 4, "w": 1.25},
|
||||||
|
{"label": "GUI" , "x": 11.25, "y": 4, "w": 1.25},
|
||||||
|
{"label": "MO(1)" , "x": 12.5 , "y": 4, "w": 1.25},
|
||||||
|
{"label": "Right Ctrl", "x": 13.75, "y": 4, "w": 1.25}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,40 @@
|
||||||
|
/* Copyright 2021 MTBKeys
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
// Defines names for use in layer keycodes and the keymap
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
_FN
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/* Base */
|
||||||
|
[_BASE] = LAYOUT(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
|
||||||
|
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_RSFT,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, MO(_FN), KC_RGUI, KC_RCTL
|
||||||
|
),
|
||||||
|
[_FN] = LAYOUT(
|
||||||
|
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, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
};
|
|
@ -0,0 +1,26 @@
|
||||||
|
# MTB60 (Solder Edition)
|
||||||
|
|
||||||
|
## Details
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [MTBKeys](https://mtbkeys.com/)
|
||||||
|
* Hardware Supported: MTB60 PCB (Solder edition)
|
||||||
|
* Hardware Availability: [HB60 on MTBKeys Website](https://mtbkeys.com/)
|
||||||
|
|
||||||
|
## Building Firmware
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make mtbkeys/mtb60/solder:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make mtbkeys/mtb60/solder:default:flash
|
||||||
|
|
||||||
|
## Bootloader
|
||||||
|
|
||||||
|
Enter the bootloader in 2 ways:
|
||||||
|
|
||||||
|
1. **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
|
||||||
|
2. **Physical reset button**: Briefly press the button on the back of the PCB
|
||||||
|
|
||||||
|
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,21 @@
|
||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
|
@ -0,0 +1,17 @@
|
||||||
|
/* Copyright 2021 MTBKeys
|
||||||
|
*
|
||||||
|
* 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 "solder.h"
|
|
@ -0,0 +1,33 @@
|
||||||
|
/* Copyright 2021 MTBKeys
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT( \
|
||||||
|
k00, k10, k20, k30, k40, k50, k60, k70, k80, k90, ka0, kb0, kc0, kd0, ke0, \
|
||||||
|
k11, k21, k31, k41, k51, k61, k71, k81, k91, ka1, kb1, kc1, kd1, ke1, \
|
||||||
|
k02, k22, k32, k42, k52, k62, k72, k82, k92, ka2, kb2, kc2, kd2, \
|
||||||
|
k03, k13, k23, k33, k43, k53, k63, k73, k83, k93, ka3, kb3, kc3, kd3, ke3, \
|
||||||
|
k04, k14, k34, k44, k64, k84, ka4, kb4, kc4, kd4, ke4 \
|
||||||
|
) { \
|
||||||
|
{ k00, k10, k20, k30, k40, k50, k60, k70, k80, k90, ka0, kb0, kc0, kd0, ke0 }, \
|
||||||
|
{ KC_NO, k11, k21, k31, k41, k51, k61, k71, k81, k91, ka1, kb1, kc1, kd1, ke1 }, \
|
||||||
|
{ k02, KC_NO, k22, k32, k42, k52, k62, k72, k82, k92, ka2, kb2, kc2, kd2, KC_NO }, \
|
||||||
|
{ k03, k13, k23, k33, k43, k53, k63, k73, k83, k93, ka3, kb3, kc3, kd3, ke3 }, \
|
||||||
|
{ k04, k14, KC_NO, k34, k44, KC_NO, k64, KC_NO, k84, KC_NO, ka4, kb4, kc4, kd4, ke4 } \
|
||||||
|
}
|
|
@ -4,23 +4,65 @@ from subprocess import CalledProcessError, DEVNULL
|
||||||
|
|
||||||
from milc import cli
|
from milc import cli
|
||||||
|
|
||||||
|
from qmk.path import normpath
|
||||||
|
|
||||||
|
py_file_suffixes = ('py',)
|
||||||
|
py_dirs = ['lib/python']
|
||||||
|
|
||||||
|
|
||||||
|
def yapf_run(files):
|
||||||
|
edit = '--diff' if cli.args.dry_run else '--in-place'
|
||||||
|
yapf_cmd = ['yapf', '-vv', '--recursive', edit, *files]
|
||||||
|
try:
|
||||||
|
cli.run(yapf_cmd, check=True, capture_output=False, stdin=DEVNULL)
|
||||||
|
cli.log.info('Successfully formatted the python code.')
|
||||||
|
|
||||||
|
except CalledProcessError:
|
||||||
|
cli.log.error(f'Python code in {",".join(py_dirs)} incorrectly formatted!')
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def filter_files(files):
|
||||||
|
"""Yield only files to be formatted and skip the rest
|
||||||
|
"""
|
||||||
|
|
||||||
|
for file in files:
|
||||||
|
if file and file.name.split('.')[-1] in py_file_suffixes:
|
||||||
|
yield file
|
||||||
|
else:
|
||||||
|
cli.log.debug('Skipping file %s', file)
|
||||||
|
|
||||||
|
|
||||||
@cli.argument('-n', '--dry-run', arg_only=True, action='store_true', help="Don't actually format.")
|
@cli.argument('-n', '--dry-run', arg_only=True, action='store_true', help="Don't actually format.")
|
||||||
|
@cli.argument('-b', '--base-branch', default='origin/master', help='Branch to compare to diffs to.')
|
||||||
|
@cli.argument('-a', '--all-files', arg_only=True, action='store_true', help='Format all files.')
|
||||||
|
@cli.argument('files', nargs='*', arg_only=True, type=normpath, help='Filename(s) to format.')
|
||||||
@cli.subcommand("Format python code according to QMK's style.", hidden=False if cli.config.user.developer else True)
|
@cli.subcommand("Format python code according to QMK's style.", hidden=False if cli.config.user.developer else True)
|
||||||
def format_python(cli):
|
def format_python(cli):
|
||||||
"""Format python code according to QMK's style.
|
"""Format python code according to QMK's style.
|
||||||
"""
|
"""
|
||||||
edit = '--diff' if cli.args.dry_run else '--in-place'
|
# Find the list of files to format
|
||||||
yapf_cmd = ['yapf', '-vv', '--recursive', edit, 'lib/python']
|
if cli.args.files:
|
||||||
try:
|
files = list(filter_files(cli.args.files))
|
||||||
cli.run(yapf_cmd, check=True, capture_output=False, stdin=DEVNULL)
|
|
||||||
cli.log.info('Python code in `lib/python` is correctly formatted.')
|
|
||||||
return True
|
|
||||||
|
|
||||||
except CalledProcessError:
|
if not files:
|
||||||
if cli.args.dry_run:
|
cli.log.error('No Python files in filelist: %s', ', '.join(map(str, cli.args.files)))
|
||||||
cli.log.error('Python code in `lib/python` is incorrectly formatted!')
|
exit(0)
|
||||||
else:
|
|
||||||
cli.log.error('Error formatting python code!')
|
|
||||||
|
|
||||||
return False
|
if cli.args.all_files:
|
||||||
|
cli.log.warning('Filenames passed with -a, only formatting: %s', ','.join(map(str, files)))
|
||||||
|
|
||||||
|
elif cli.args.all_files:
|
||||||
|
files = py_dirs
|
||||||
|
|
||||||
|
else:
|
||||||
|
git_diff_cmd = ['git', 'diff', '--name-only', cli.args.base_branch, *py_dirs]
|
||||||
|
git_diff = cli.run(git_diff_cmd, stdin=DEVNULL)
|
||||||
|
files = list(filter(None, git_diff.stdout.split('\n')))
|
||||||
|
|
||||||
|
# Sanity check
|
||||||
|
if not files:
|
||||||
|
cli.log.error('No changed files detected. Use "qmk format-python -a" to format all files')
|
||||||
|
return False
|
||||||
|
|
||||||
|
return yapf_run(files)
|
||||||
|
|
|
@ -13,5 +13,10 @@ from qmk.keyboard import keyboard_completer, keyboard_folder
|
||||||
def list_keymaps(cli):
|
def list_keymaps(cli):
|
||||||
"""List the keymaps for a specific keyboard
|
"""List the keymaps for a specific keyboard
|
||||||
"""
|
"""
|
||||||
|
if not cli.config.list_keymaps.keyboard:
|
||||||
|
cli.log.error('Missing required arguments: --keyboard')
|
||||||
|
cli.subcommands['list-keymaps'].print_help()
|
||||||
|
return False
|
||||||
|
|
||||||
for name in qmk.keymap.list_keymaps(cli.config.list_keymaps.keyboard):
|
for name in qmk.keymap.list_keymaps(cli.config.list_keymaps.keyboard):
|
||||||
print(name)
|
print(name)
|
||||||
|
|
|
@ -13,6 +13,11 @@ from qmk.info import info_json
|
||||||
def list_layouts(cli):
|
def list_layouts(cli):
|
||||||
"""List the layouts for a specific keyboard
|
"""List the layouts for a specific keyboard
|
||||||
"""
|
"""
|
||||||
|
if not cli.config.list_layouts.keyboard:
|
||||||
|
cli.log.error('Missing required arguments: --keyboard')
|
||||||
|
cli.subcommands['list-layouts'].print_help()
|
||||||
|
return False
|
||||||
|
|
||||||
info_data = info_json(cli.config.list_layouts.keyboard)
|
info_data = info_json(cli.config.list_layouts.keyboard)
|
||||||
for name in sorted(info_data.get('community_layouts', [])):
|
for name in sorted(info_data.get('community_layouts', [])):
|
||||||
print(name)
|
print(name)
|
||||||
|
|
|
@ -81,9 +81,9 @@ def test_hello():
|
||||||
|
|
||||||
|
|
||||||
def test_format_python():
|
def test_format_python():
|
||||||
result = check_subcommand('format-python', '--dry-run')
|
result = check_subcommand('format-python', '-n', '-a')
|
||||||
check_returncode(result)
|
check_returncode(result)
|
||||||
assert 'Python code in `lib/python` is correctly formatted.' in result.stdout
|
assert 'Successfully formatted the python code.' in result.stdout
|
||||||
|
|
||||||
|
|
||||||
def test_list_keyboards():
|
def test_list_keyboards():
|
||||||
|
|
Loading…
Reference in New Issue