Merge remote-tracking branch 'upstream/master' into develop
This commit is contained in:
commit
50cd320616
|
@ -0,0 +1,21 @@
|
|||
/* Copyright 2023 Yiancar-Designs
|
||||
*
|
||||
* 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 "alas.h"
|
||||
|
||||
void led_init_ports(void) {
|
||||
// Set our LED pins as open drain outputs
|
||||
palSetLineMode(LED_CAPS_LOCK_PIN, PAL_MODE_OUTPUT_OPENDRAIN);
|
||||
}
|
|
@ -0,0 +1,132 @@
|
|||
/* Copyright 2023 Yiancar-Designs
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#define XXX KC_NO
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define LAYOUT_all( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2C, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||
K40, K41, K42, K46, K4A, K4B, K4C, K4D \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
|
||||
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D } \
|
||||
}
|
||||
|
||||
#define LAYOUT_60_ansi( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
|
||||
K40, K41, K42, K46, K4A, K4B, K4C, K4D \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D }, \
|
||||
{ K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, XXX }, \
|
||||
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D } \
|
||||
}
|
||||
|
||||
#define LAYOUT_60_ansi_split_bs_rshift( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2C, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||
K40, K41, K42, K46, K4A, K4B, K4C, K4D \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
|
||||
{ K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
|
||||
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D } \
|
||||
}
|
||||
|
||||
#define LAYOUT_60_ansi_tsangan( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
|
||||
K40, K41, K42, K46, K4B, K4C, K4D \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D }, \
|
||||
{ K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, XXX }, \
|
||||
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, XXX, K4B, K4C, K4D } \
|
||||
}
|
||||
|
||||
#define LAYOUT_60_iso( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||
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, K1D, K2D, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
|
||||
K40, K41, K42, K46, K4A, K4B, K4C, K4D \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, XXX }, \
|
||||
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D } \
|
||||
}
|
||||
|
||||
#define LAYOUT_60_iso_split_bs_rshift( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2C, \
|
||||
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, K1D, K2D, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||
K40, K41, K42, K46, K4A, K4B, K4C, K4D \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
|
||||
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D } \
|
||||
}
|
||||
|
||||
#define LAYOUT_60_iso_tsangan( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \
|
||||
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, K1D, K2D, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
|
||||
K40, K41, K42, K46, K4B, K4C, K4D \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, XXX }, \
|
||||
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, XXX, K4B, K4C, K4D } \
|
||||
}
|
||||
|
||||
#define LAYOUT_60_tsangan_hhkb( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2C, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||
K40, K41, K42, K46, K4B, K4C, K4D \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
|
||||
{ K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
|
||||
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, XXX, K4B, K4C, K4D } \
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
Copyright 2023 Yiancar-Designs
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published byß
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define MATRIX_ROW_PINS { A2, B9, B8, B5, B4 }
|
||||
#define MATRIX_COL_PINS { A1, B1, B0, A7, A6, A5, A4, A3, B2, B10, B11, B12, B13, B14 }
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Ensure we jump to bootloader if the RESET keycode was pressed */
|
||||
#define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE
|
||||
|
||||
/* Indicator LEDs */
|
||||
#define LED_CAPS_LOCK_PIN B6
|
||||
#define LED_PIN_ON_STATE 0
|
|
@ -0,0 +1,39 @@
|
|||
{
|
||||
"keyboard_name": "Alas",
|
||||
"manufacturer": "Yiancar-Designs",
|
||||
"url": "https://yiancar-designs.com",
|
||||
"maintainer": "Yiancar-Designs",
|
||||
"usb": {
|
||||
"vid": "0x8968",
|
||||
"pid": "0x414C",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"processor": "STM32F072",
|
||||
"bootloader": "stm32-dfu",
|
||||
"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":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":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, "w":2.25}, {"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":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":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}]
|
||||
},
|
||||
"LAYOUT_60_ansi": {
|
||||
"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, "w":2}, {"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":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, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"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":2.75}, {"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":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}]
|
||||
},
|
||||
"LAYOUT_60_ansi_split_bs_rshift": {
|
||||
"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":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":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, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"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":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":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}]
|
||||
},
|
||||
"LAYOUT_60_ansi_tsangan": {
|
||||
"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, "w":2}, {"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":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, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"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":2.75}, {"x":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}]
|
||||
},
|
||||
"LAYOUT_60_iso": {
|
||||
"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, "w":2}, {"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.75, "y":1, "w":1.25, "h":2}, {"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":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":2.75}, {"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":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}]
|
||||
},
|
||||
"LAYOUT_60_iso_split_bs_rshift": {
|
||||
"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":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.75, "y":1, "w":1.25, "h":2}, {"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":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":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":6.25}, {"x":10, "y":4, "w":1.25}, {"x":11.25, "y":4, "w":1.25}, {"x":12.5, "y":4, "w":1.25}, {"x":13.75, "y":4, "w":1.25}]
|
||||
},
|
||||
"LAYOUT_60_iso_tsangan": {
|
||||
"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, "w":2}, {"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.75, "y":1, "w":1.25, "h":2}, {"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":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":2.75}, {"x":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}]
|
||||
},
|
||||
"LAYOUT_60_tsangan_hhkb": {
|
||||
"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":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":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, "w":2.25}, {"x":0, "y":3, "w":2.25}, {"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":0, "y":4, "w":1.5}, {"x":1.5, "y":4}, {"x":2.5, "y":4, "w":1.5}, {"x":4, "y":4, "w":7}, {"x":11, "y":4, "w":1.5}, {"x":12.5, "y":4}, {"x":13.5, "y":4, "w":1.5}]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,32 @@
|
|||
/* Copyright 2023 Yiancar-Designs
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_all( /* Base */
|
||||
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL),
|
||||
|
||||
[1] = LAYOUT_all( /* FN */
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
|
||||
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||
};
|
|
@ -0,0 +1,46 @@
|
|||
/* Copyright 2023 Yiancar-Designs
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_all( /* Base */
|
||||
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_APP, KC_RCTL),
|
||||
|
||||
[1] = LAYOUT_all( /* FN */
|
||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SCRL, KC_PAUS, KC_UP, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
|
||||
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
|
||||
[2] = LAYOUT_all( /* Empty for dynamic keymaps */
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( /* Empty for dynamic keymaps */
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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,39 @@
|
|||
# Alas
|
||||
|
||||
This is a standard 60% layout PCB. It supports VIA.
|
||||
|
||||
* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar)
|
||||
* Hardware Supported: A 60% keyboard with STM32F072CB
|
||||
* Hardware Availability: https://geekhack.org/index.php?topic=119025.0
|
||||
|
||||
![Layer 0](https://i.imgur.com/LL5mZXAh.png)
|
||||
![Layer 1](https://i.imgur.com/RJDVmtyh.png)
|
||||
|
||||
## Instructions
|
||||
|
||||
### Build
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make alas:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make alas: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).
|
||||
|
||||
### Reset
|
||||
|
||||
- Unplug
|
||||
- Hold Escape
|
||||
- Plug In
|
||||
- Unplug
|
||||
- Release Escape
|
||||
|
||||
### Flash
|
||||
|
||||
- Unplug
|
||||
- Hold Escape
|
||||
- Plug In
|
||||
- Flash using QMK Toolbox or CLI (`make alas:<keymap>:flash`)
|
|
@ -0,0 +1,22 @@
|
|||
# Wildcard to allow APM32 MCU
|
||||
DFU_SUFFIX_ARGS = -v FFFF -p FFFF
|
||||
|
||||
# Do not put the microcontroller into power saving mode
|
||||
# when we get USB suspend event. We want it to keep updating
|
||||
# backlight effects.
|
||||
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
||||
|
||||
# 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
|
||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
|
||||
LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_ansi_tsangan 60_iso 60_iso_split_bs_rshift 60_iso_tsangan 60_tsangan_hhkb
|
|
@ -13,9 +13,7 @@
|
|||
},
|
||||
"url": "http://binepad.com",
|
||||
"usb": {
|
||||
"vid": "0x4249",
|
||||
"pid": "0x4231",
|
||||
"device_version": "1.0.0"
|
||||
"vid": "0x4249"
|
||||
},
|
||||
"community_layouts": ["ortho_1x1"],
|
||||
"layouts": {
|
||||
|
|
|
@ -1,6 +1,4 @@
|
|||
# Copyright 2022 Binepad (@binpad)
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
LTO_ENABLE = yes
|
||||
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
# Copyright 2022 Binepad (@binpad)
|
||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
LTO_ENABLE = yes
|
||||
VIA_ENABLE = yes
|
||||
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
|
|
|
@ -3,13 +3,19 @@
|
|||
The BNR1 is a multifunction knob, which can be rotated, pressed, and rotated while pressed.
|
||||
|
||||
* Keyboard Maintainer: [Binpad](https://github.com/binepad)
|
||||
* Hardware Supported: **BNR1** & **BNR1 R2** *("V1" ft. ATMega32u4 MCU)*
|
||||
* Hardware Supported:
|
||||
* **BNR1** & **BNR1 R2** *("V1" ft. ATMega32u4 MCU)*
|
||||
* **BNR1 V2** *("V2" ft. STM32F103 MCU)*
|
||||
* Hardware Availability: [Binepad.com](https://www.binepad.com/bnr1)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make binepad/bnr1/v1:default
|
||||
|
||||
..or..
|
||||
|
||||
make binepad/bnr1/v2: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).
|
||||
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
# This file intentionally left blank
|
||||
# This file is mostly left blank
|
||||
|
||||
DEFAULT_FOLDER = binepad/bnr1/v1
|
||||
DEFAULT_FOLDER = binepad/bnr1/v2
|
||||
|
|
|
@ -2,13 +2,21 @@
|
|||
"bootloader": "atmel-dfu",
|
||||
"processor": "atmega32u4",
|
||||
"diode_direction": "COL2ROW",
|
||||
"usb": {
|
||||
"pid": "0x4231",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["B0"],
|
||||
"rows": ["E6"]
|
||||
},
|
||||
"encoder": {
|
||||
"enabled": true,
|
||||
"rotary": [
|
||||
{ "pin_a": "D6", "pin_b": "D7" }
|
||||
{
|
||||
"pin_a": "D6",
|
||||
"pin_b": "D7"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1 +1,3 @@
|
|||
# This file intentionally left blank
|
||||
# This file is mostly left blank
|
||||
|
||||
LTO_ENABLE = yes
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
// Copyright 2022 BINEPAD (@binepad)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
#define WEAR_LEVELING_LOGICAL_SIZE 1024
|
||||
#define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2)
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"bootloader": "stm32duino",
|
||||
"processor": "STM32F103",
|
||||
"diode_direction": "COL2ROW",
|
||||
"usb": {
|
||||
"pid": "0x4241",
|
||||
"device_version": "2.0.0"
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["A15"],
|
||||
"rows": ["A8"]
|
||||
},
|
||||
"encoder": {
|
||||
"enabled": true,
|
||||
"rotary": [
|
||||
{
|
||||
"pin_a": "B3",
|
||||
"pin_b": "B4"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
# This file only contains EFL/WL settings and enables F103 low-power mode
|
||||
|
||||
EEPROM_DRIVER = wear_leveling
|
||||
WEAR_LEVELING_DRIVER = embedded_flash
|
||||
|
||||
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
|
@ -0,0 +1,24 @@
|
|||
/*
|
||||
Copyright 2015 Jun Wako <wakojun@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U
|
||||
|
||||
#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
{
|
||||
"keyboard_name": "Type-B",
|
||||
"maintainer": "awkannan",
|
||||
"manufacturer": "CannonKeys",
|
||||
"processor": "RP2040",
|
||||
"bootloader": "rp2040",
|
||||
"usb": {
|
||||
"vid": "0xCA04",
|
||||
"pid": "0x001B",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"url": "https://cannonkeys.com",
|
||||
"diode_direction": "COL2ROW",
|
||||
"matrix_pins": {
|
||||
"cols": ["GP3", "GP2", "GP29", "GP28", "GP27", "GP26", "GP25", "GP24", "GP23", "GP22", "GP21", "GP20", "GP19", "GP18"],
|
||||
"rows": ["GP4", "GP5", "GP13", "GP14", "GP10"]
|
||||
},
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"indicators": {
|
||||
"caps_lock": "GP12",
|
||||
"on_state": 0
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{ "matrix": [0, 0], "x": 0.0, "y": 0.0 },
|
||||
{ "matrix": [0, 1], "x": 1.0, "y": 0.0 },
|
||||
{ "matrix": [0, 2], "x": 2.0, "y": 0.0 },
|
||||
{ "matrix": [0, 3], "x": 3.0, "y": 0.0 },
|
||||
{ "matrix": [0, 4], "x": 4.0, "y": 0.0 },
|
||||
{ "matrix": [0, 5], "x": 5.0, "y": 0.0 },
|
||||
{ "matrix": [0, 6], "x": 6.0, "y": 0.0 },
|
||||
{ "matrix": [0, 7], "x": 7.0, "y": 0.0 },
|
||||
{ "matrix": [0, 8], "x": 8.0, "y": 0.0 },
|
||||
{ "matrix": [0, 9], "x": 9.0, "y": 0.0 },
|
||||
{ "matrix": [0, 10], "x": 10.0, "y": 0.0 },
|
||||
{ "matrix": [0, 11], "x": 11.0, "y": 0.0 },
|
||||
{ "matrix": [0, 12], "x": 12.0, "y": 0.0 },
|
||||
{ "matrix": [0, 13], "x": 13.0, "y": 0.0 },
|
||||
{ "matrix": [2, 12], "x": 14.0, "y": 0.0 },
|
||||
{ "matrix": [1, 0], "w": 1.5, "x": 0.0, "y": 1.0 },
|
||||
{ "matrix": [1, 1], "x": 1.5, "y": 1.0 },
|
||||
{ "matrix": [1, 2], "x": 2.5, "y": 1.0 },
|
||||
{ "matrix": [1, 3], "x": 3.5, "y": 1.0 },
|
||||
{ "matrix": [1, 4], "x": 4.5, "y": 1.0 },
|
||||
{ "matrix": [1, 5], "x": 5.5, "y": 1.0 },
|
||||
{ "matrix": [1, 6], "x": 6.5, "y": 1.0 },
|
||||
{ "matrix": [1, 7], "x": 7.5, "y": 1.0 },
|
||||
{ "matrix": [1, 8], "x": 8.5, "y": 1.0 },
|
||||
{ "matrix": [1, 9], "x": 9.5, "y": 1.0 },
|
||||
{ "matrix": [1, 10], "x": 10.5, "y": 1.0 },
|
||||
{ "matrix": [1, 11], "x": 11.5, "y": 1.0 },
|
||||
{ "matrix": [1, 12], "x": 12.5, "y": 1.0 },
|
||||
{ "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1.0 },
|
||||
{ "matrix": [2, 0], "w": 1.75, "x": 0.0, "y": 2.0 },
|
||||
{ "matrix": [2, 1], "x": 1.75, "y": 2.0 },
|
||||
{ "matrix": [2, 2], "x": 2.75, "y": 2.0 },
|
||||
{ "matrix": [2, 3], "x": 3.75, "y": 2.0 },
|
||||
{ "matrix": [2, 4], "x": 4.75, "y": 2.0 },
|
||||
{ "matrix": [2, 5], "x": 5.75, "y": 2.0 },
|
||||
{ "matrix": [2, 6], "x": 6.75, "y": 2.0 },
|
||||
{ "matrix": [2, 7], "x": 7.75, "y": 2.0 },
|
||||
{ "matrix": [2, 8], "x": 8.75, "y": 2.0 },
|
||||
{ "matrix": [2, 9], "x": 9.75, "y": 2.0 },
|
||||
{ "matrix": [2, 10], "x": 10.75, "y": 2.0 },
|
||||
{ "matrix": [2, 11], "x": 11.75, "y": 2.0 },
|
||||
{ "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2.0 },
|
||||
{ "matrix": [3, 0], "w": 1.25, "x": 0.0, "y": 3.0 },
|
||||
{ "matrix": [3, 1], "x": 1.25, "y": 3.0 },
|
||||
{ "matrix": [3, 2], "x": 2.25, "y": 3.0 },
|
||||
{ "matrix": [3, 3], "x": 3.25, "y": 3.0 },
|
||||
{ "matrix": [3, 4], "x": 4.25, "y": 3.0 },
|
||||
{ "matrix": [3, 5], "x": 5.25, "y": 3.0 },
|
||||
{ "matrix": [3, 6], "x": 6.25, "y": 3.0 },
|
||||
{ "matrix": [3, 7], "x": 7.25, "y": 3.0 },
|
||||
{ "matrix": [3, 8], "x": 8.25, "y": 3.0 },
|
||||
{ "matrix": [3, 9], "x": 9.25, "y": 3.0 },
|
||||
{ "matrix": [3, 10], "x": 10.25, "y": 3.0 },
|
||||
{ "matrix": [3, 11], "x": 11.25, "y": 3.0 },
|
||||
{ "matrix": [3, 12], "w": 1.75, "x": 12.25, "y": 3.0 },
|
||||
{ "matrix": [3, 13], "x": 14.0, "y": 3.0 },
|
||||
{ "matrix": [4, 1], "x": 1.5, "y": 4.0 },
|
||||
{ "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4.0 },
|
||||
{ "matrix": [4, 6], "w": 6, "x": 4.0, "y": 4.0 },
|
||||
{ "matrix": [4, 10], "w": 1.5, "x": 10.0, "y": 4.0 },
|
||||
{ "matrix": [4, 11], "x": 11.5, "y": 4.0 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,45 @@
|
|||
/*
|
||||
Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
enum {
|
||||
_BASE = 0,
|
||||
_FN1
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(
|
||||
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN1),
|
||||
KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL
|
||||
),
|
||||
|
||||
[_FN1] = LAYOUT(
|
||||
QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
|
||||
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, QK_BOOT
|
||||
)
|
||||
};
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
|
||||
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||
// entirely and just use numbers.
|
||||
enum {
|
||||
_BASE = 0,
|
||||
_FN1,
|
||||
_FN2,
|
||||
_FN3
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(
|
||||
QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN1),
|
||||
KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL
|
||||
),
|
||||
|
||||
[_FN1] = LAYOUT(
|
||||
QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______,
|
||||
_______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, QK_BOOT
|
||||
),
|
||||
[_FN2] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______
|
||||
),
|
||||
[_FN3] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
|
@ -0,0 +1 @@
|
|||
VIA_ENABLE = yes
|
|
@ -0,0 +1,26 @@
|
|||
# Type-B
|
||||
|
||||
Type-B Keyboard by bababaul
|
||||
|
||||
* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
|
||||
* Hardware Supported: RP2040
|
||||
* Hardware Availability: [CannonKeys](https://cannonkeys.com)
|
||||
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cannonkeys/typeb:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make cannonkeys/typeb:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 3 ways:
|
||||
|
||||
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
|
||||
* **Physical reset button**: Toggle the switch on the back of the PCB to "Recovery" and briefly press the button on the back of the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
|
@ -0,0 +1,2 @@
|
|||
EEPROM_DRIVER = wear_leveling
|
||||
WEAR_LEVELING_DRIVER = rp2040_flash
|
|
@ -0,0 +1,48 @@
|
|||
// Copyright 2023 Colin Kinloch (@ColinKinloch)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#define RGB_MATRIX_LED_COUNT 12
|
||||
#define RGB_DI_PIN F7
|
||||
|
||||
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_TYPING_HEATMAP
|
||||
|
||||
#define RGB_MATRIX_KEYPRESSES
|
||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
|
||||
#define ENABLE_RGB_MATRIX_TYPING_HEATMAP
|
||||
#define ENABLE_RGB_MATRIX_DIGITAL_RAIN
|
||||
#define ENABLE_RGB_MATRIX_MULTISPLASH
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
||||
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
|
||||
#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
|
||||
#define ENABLE_RGB_MATRIX_SPLASH
|
||||
#define ENABLE_RGB_MATRIX_MULTISPLASH
|
||||
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
||||
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
||||
|
||||
#define RGB_MATRIX_TYPING_HEATMAP_SPREAD 9
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
|
@ -0,0 +1,55 @@
|
|||
// Copyright 2023 Colin Kinloch (@ColinKinloch)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
static uint8_t anim = 0;
|
||||
|
||||
#ifdef ENCODER_ENABLE
|
||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||
if (!encoder_update_user(index, clockwise)) {
|
||||
return false;
|
||||
}
|
||||
switch (index) {
|
||||
case 0: {
|
||||
if (clockwise) {
|
||||
tap_code_delay(KC_VOLU, 10);
|
||||
} else {
|
||||
tap_code_delay(KC_VOLD, 10);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 1: {
|
||||
if (clockwise) {
|
||||
rgblight_increase_hue();
|
||||
} else {
|
||||
rgblight_decrease_hue();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2: {
|
||||
if (clockwise) {
|
||||
rgblight_increase_val();
|
||||
} else {
|
||||
rgblight_decrease_val();
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 3: {
|
||||
if (clockwise) {
|
||||
anim++;
|
||||
} else {
|
||||
anim--;
|
||||
}
|
||||
if (anim >= RGB_MATRIX_EFFECT_MAX) {
|
||||
anim = 0;
|
||||
} else if (anim < 0) {
|
||||
anim = RGB_MATRIX_EFFECT_MAX - 1;
|
||||
}
|
||||
rgblight_mode(anim);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endif
|
|
@ -0,0 +1,76 @@
|
|||
{
|
||||
"manufacturer": "CXT",
|
||||
"keyboard_name": "cxt_studio",
|
||||
"maintainer": "ColinKinloch",
|
||||
"bootloader": "atmel-dfu",
|
||||
"diode_direction": "ROW2COL",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": true,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"encoder": true,
|
||||
"rgb_matrix": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["D4", "D7", "B4", "B5"],
|
||||
"rows": ["C7", "C6", "D6", "F4"]
|
||||
},
|
||||
"encoder": {
|
||||
"rotary": [
|
||||
{ "pin_a": "D5", "pin_b": "D3" },
|
||||
{ "pin_a": "B2", "pin_b": "B3" },
|
||||
{ "pin_a": "F5", "pin_b": "F6" },
|
||||
{ "pin_a": "E6", "pin_b": "F0" }
|
||||
]
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"rgb_matrix": {
|
||||
"driver": "WS2812",
|
||||
"layout": [
|
||||
{ "flags": 4, "matrix": [0, 3], "x": 3, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 2], "x": 2, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 1], "x": 1, "y": 0 },
|
||||
{ "flags": 4, "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "flags": 4, "matrix": [1, 0], "x": 0, "y": 1 },
|
||||
{ "flags": 4, "matrix": [1, 1], "x": 1, "y": 1 },
|
||||
{ "flags": 4, "matrix": [1, 2], "x": 2, "y": 1 },
|
||||
{ "flags": 4, "matrix": [1, 3], "x": 3, "y": 1 },
|
||||
{ "flags": 4, "matrix": [2, 3], "x": 3, "y": 2 },
|
||||
{ "flags": 4, "matrix": [2, 2], "x": 2, "y": 2 },
|
||||
{ "flags": 4, "matrix": [2, 1], "x": 1, "y": 2 },
|
||||
{ "flags": 4, "matrix": [2, 0], "x": 0, "y": 2 }
|
||||
]
|
||||
},
|
||||
"url": "",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0000",
|
||||
"vid": "0xFEED"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{ "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "matrix": [0, 1], "x": 1, "y": 0 },
|
||||
{ "matrix": [0, 2], "x": 2, "y": 0 },
|
||||
{ "matrix": [0, 3], "x": 3, "y": 0 },
|
||||
{ "matrix": [1, 0], "x": 0, "y": 1 },
|
||||
{ "matrix": [1, 1], "x": 1, "y": 1 },
|
||||
{ "matrix": [1, 2], "x": 2, "y": 1 },
|
||||
{ "matrix": [1, 3], "x": 3, "y": 1 },
|
||||
{ "matrix": [2, 0], "x": 0, "y": 2 },
|
||||
{ "matrix": [2, 1], "x": 1, "y": 2 },
|
||||
{ "matrix": [2, 2], "x": 2, "y": 2 },
|
||||
{ "matrix": [2, 3], "x": 3, "y": 2 },
|
||||
|
||||
{ "matrix": [3, 0], "x": 0, "y": 3 },
|
||||
{ "matrix": [3, 1], "x": 1, "y": 3 },
|
||||
{ "matrix": [3, 2], "x": 2, "y": 3 },
|
||||
{ "matrix": [3, 3], "x": 3, "y": 3 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"keyboard": "cxt_studio",
|
||||
"keymap": "default",
|
||||
"layout": "LAYOUT",
|
||||
"layers": [
|
||||
[
|
||||
"KC_ESC", "KC_F11", "KC_NO", "KC_MSTP",
|
||||
"KC_NO", "KC_NO", "KC_MRWD", "KC_MFFD",
|
||||
"KC_NO", "KC_MPLY", "KC_MPLY", "KC_MNXT",
|
||||
"KC_MUTE", "KC_NO", "KC_NO", "RGB_TOG"
|
||||
]
|
||||
]
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
# cxt_studio
|
||||
|
||||
![cxt_studio](https://i.imgur.com/AMCTioSh.jpeg)
|
||||
|
||||
3x4 ortho rgb lighting 4 knobs.
|
||||
|
||||
* Keyboard Maintainer: [Colin Kinloch](https://github.com/ColinKinloch)
|
||||
* Hardware Supported: CXT-Studio
|
||||
* Hardware Availability: AliExpress. I think the manufacturer is on Taobao.
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make cxt_studio:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make cxt_studio:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 3 ways:
|
||||
|
||||
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
|
||||
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
|
@ -0,0 +1 @@
|
|||
# This file intentionally left blank
|
|
@ -0,0 +1,39 @@
|
|||
// Copyright 2022 Katrina (@Daggette10)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
#include "config_common.h"
|
||||
|
||||
#define RGB_DI_PIN F6
|
||||
#define RGB_MATRIX_LED_COUNT 44
|
||||
|
||||
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200
|
||||
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_SOLID_COLOR
|
||||
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
||||
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
||||
#define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
|
||||
#define ENABLE_RGB_MATRIX_BREATHING
|
||||
#define ENABLE_RGB_MATRIX_CYCLE_ALL
|
||||
#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
|
||||
#define RGB_MATRIX_DEFAULT_VAL RGB_MATRIX_MAXIMUM_BRIGHTNESS
|
||||
|
||||
#define ENCODERS_PAD_A { C7, F7, D6 }
|
||||
#define ENCODERS_PAD_B { C6, E6, D7 }
|
||||
#define ENCODER_RESOLUTIONS { 4, 4, 2 }
|
||||
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
|
@ -0,0 +1,135 @@
|
|||
{
|
||||
"manufacturer": "Doio",
|
||||
"keyboard_name": "doio/kb38",
|
||||
"maintainer": "PepperKats",
|
||||
"url": "https://www.keebmonkey.com/products/megalodon-doio-triple-knob-38-keyboard-with-oled-screen",
|
||||
"bootloader": "atmel-dfu",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgb_matrix": true,
|
||||
"rgblight": false
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["F5", "F4", "F1", "F0", "B7", "B6", "B5", "B4"],
|
||||
"rows": ["D5", "D4", "D3", "D2", "B3", "B2"]
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0000",
|
||||
"vid": "0xFEED"
|
||||
},
|
||||
"rgb_matrix": {
|
||||
"driver": "WS2812",
|
||||
"layout": [
|
||||
{"flags": 4, "matrix": [0, 0], "x":0, "y":0},
|
||||
{"flags": 4, "matrix": [0, 1], "x":62.2, "y":0},
|
||||
{"flags": 4, "matrix": [0, 2], "x":99.6, "y":0},
|
||||
{"flags": 4, "matrix": [0, 3], "x":124.4, "y":0},
|
||||
{"flags": 4, "matrix": [0, 4], "x":149.3, "y":0},
|
||||
{"flags": 4, "matrix": [0, 5], "x":174.2, "y":0},
|
||||
{"flags": 4, "matrix": [0, 6], "x":199.1, "y":0},
|
||||
{"flags": 4, "matrix": [0, 7], "x":224, "y":0},
|
||||
|
||||
{"flags": 4, "matrix": [1, 0], "x":0, "y":12.8},
|
||||
{"flags": 4, "matrix": [1, 1], "x":24.9, "y":12.8},
|
||||
{"flags": 4, "matrix": [1, 2], "x":49.8, "y":12.8},
|
||||
{"flags": 4, "matrix": [1, 3], "x":74.6, "y":12.8},
|
||||
{"flags": 4, "matrix": [1, 4], "x":99.6, "y":12.8},
|
||||
{"flags": 4, "matrix": [1, 5], "x":124.4, "y":12.8},
|
||||
{"flags": 4, "matrix": [1, 6], "x":149.3, "y":12.8},
|
||||
|
||||
{"flags": 4, "matrix": [2, 0], "x":0, "y":25.6},
|
||||
{"flags": 4, "matrix": [2, 1], "x":24.9, "y":25.6},
|
||||
{"flags": 4, "matrix": [2, 2], "x":49.8, "y":25.6},
|
||||
{"flags": 4, "matrix": [2, 3], "x":74.6, "y":32},
|
||||
{"flags": 4, "matrix": [2, 4], "x":90, "y":25.6},
|
||||
{"flags": 4, "matrix": [2, 5], "x":124.4, "y":25.6},
|
||||
{"flags": 4, "matrix": [2, 6], "x":149.3, "y":25.6},
|
||||
|
||||
{"flags": 4, "matrix": [3, 0], "x":0, "y":38.4},
|
||||
{"flags": 4, "matrix": [3, 1], "x":24.9, "y":38.4},
|
||||
{"flags": 4, "matrix": [3, 2], "x":49.8, "y":38.4},
|
||||
{"flags": 4, "matrix": [3, 3], "x":99.6, "y":38.4},
|
||||
{"flags": 4, "matrix": [3, 4], "x":124.4, "y":38.4},
|
||||
{"flags": 4, "matrix": [3, 5], "x":149.3, "y":38.4},
|
||||
|
||||
{"flags": 4, "matrix": [4, 0], "x":0, "y":51.2},
|
||||
{"flags": 4, "matrix": [4, 1], "x":24.9, "y":51.2},
|
||||
{"flags": 4, "matrix": [4, 2], "x":49.8, "y":51.2},
|
||||
{"flags": 4, "matrix": [4, 3], "x":74.6, "y":57.6},
|
||||
{"flags": 4, "matrix": [4, 5], "x":124.4, "y":51.2},
|
||||
|
||||
{"flags": 4, "matrix": [5, 0], "x":12.5, "y":64},
|
||||
{"flags": 4, "matrix": [5, 1], "x":49.8, "y":64},
|
||||
{"flags": 4, "matrix": [5, 2], "x":99.6, "y":64},
|
||||
{"flags": 4, "matrix": [5, 3], "x":124.4, "y":64},
|
||||
{"flags": 4, "matrix": [5, 4], "x":149.3, "y":64},
|
||||
|
||||
{"flags": 2, "x":224, "y":64},
|
||||
{"flags": 2, "x":74.6, "y":64},
|
||||
{"flags": 2, "x":0, "y":64},
|
||||
{"flags": 2, "x":0, "y":0},
|
||||
{"flags": 2, "x":74.6, "y":0},
|
||||
{"flags": 2, "x":224, "y":0}
|
||||
]
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"matrix": [0, 0], "label":"ESC", "x":0, "y":0},
|
||||
{"matrix": [0, 1], "label":"BSPC", "x":1, "y":0},
|
||||
{"matrix": [0, 2], "label":"RGB BACK", "x":2, "y":0},
|
||||
{"matrix": [0, 3], "label":"RGB OFF", "x":3, "y":0},
|
||||
{"matrix": [0, 4], "label":"RGB FORW", "x":4, "y":0},
|
||||
{"matrix": [0, 5], "label":"MAKE", "x":5, "y":0},
|
||||
{"matrix": [0, 6], "label":"REBOOT", "x":6, "y":0},
|
||||
{"matrix": [0, 7], "label":"BOOTLOAD", "x":7, "y":0},
|
||||
|
||||
{"matrix": [1, 0], "label":"NUMLOCK", "x":0, "y":1},
|
||||
{"matrix": [1, 1], "label":"PSLS", "x":1, "y":1},
|
||||
{"matrix": [1, 2], "label":"PAST", "x":2, "y":1},
|
||||
{"matrix": [1, 3], "label":"PMNS", "x":3, "y":1},
|
||||
{"matrix": [1, 4], "label":"PAUS", "x":3, "y":1},
|
||||
{"matrix": [1, 5], "label":"SCRL", "x":3, "y":1},
|
||||
{"matrix": [1, 6], "label":"PSCR", "x":3, "y":1},
|
||||
|
||||
{"matrix": [2, 0], "label":"7", "x":0, "y":2},
|
||||
{"matrix": [2, 1], "label":"8", "x":1, "y":2},
|
||||
{"matrix": [2, 2], "label":"9", "x":2, "y":2},
|
||||
{"matrix": [2, 3], "label":"PPLS", "x":3, "y":2},
|
||||
{"matrix": [2, 4], "label":"INS", "x":3, "y":2},
|
||||
{"matrix": [2, 5], "label":"HOME", "x":3, "y":2},
|
||||
{"matrix": [2, 6], "label":"PGUP", "x":3, "y":2},
|
||||
|
||||
{"matrix": [3, 0], "label":"4", "x":0, "y":3},
|
||||
{"matrix": [3, 1], "label":"5", "x":1, "y":3},
|
||||
{"matrix": [3, 2], "label":"6", "x":2, "y":3},
|
||||
{"matrix": [3, 3], "label":"END", "x":3, "y":3},
|
||||
{"matrix": [3, 4], "label":"DEL", "x":3, "y":3},
|
||||
{"matrix": [3, 5], "label":"PGDN", "x":3, "y":3},
|
||||
|
||||
{"matrix": [4, 0], "label":"1", "x":0, "y":4},
|
||||
{"matrix": [4, 1], "label":"2", "x":1, "y":4},
|
||||
{"matrix": [4, 2], "label":"3", "x":2, "y":4},
|
||||
{"matrix": [4, 3], "label":"PENT", "x":3, "y":4},
|
||||
{"matrix": [4, 5], "label":"UP", "x":3, "y":4},
|
||||
|
||||
{"matrix": [5, 0], "label":"0", "x":0, "y":5},
|
||||
{"matrix": [5, 1], "label":"PDOT", "x":1, "y":5},
|
||||
{"matrix": [5, 2], "label":"LEFT", "x":2, "y":5},
|
||||
{"matrix": [5, 3], "label":"DOWN", "x":3, "y":5},
|
||||
{"matrix": [5, 4], "label":"RIGHT", "x":4, "y":5},
|
||||
{"matrix": [5, 5], "label":"KNOB_L", "x":3, "y":5},
|
||||
{"matrix": [5, 6], "label":"KNOB_R", "x":3, "y":5},
|
||||
{"matrix": [5, 7], "label":"KNOB_D", "x":3, "y":5}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
/* Copyright 2021 Katrina (@PepperKats)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
//Display
|
||||
#ifdef OLED_ENABLE
|
||||
static void render_logo(void) {
|
||||
static const char PROGMEM qmk_logo[] = {
|
||||
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, 0x90, 0x91, 0x92, 0x93, 0x94,
|
||||
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, 0xB0, 0xB1, 0xB2, 0xB3, 0xB4,
|
||||
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0x00
|
||||
};
|
||||
|
||||
oled_write_P(qmk_logo, false);
|
||||
}
|
||||
|
||||
bool oled_task_kb(void) {
|
||||
if (!oled_task_user()) { return false; }
|
||||
render_logo();
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
//Knobs
|
||||
#ifdef ENCODER_ENABLE
|
||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||
if (!encoder_update_user(index, clockwise)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (index == 0) {
|
||||
// Page Up/Down
|
||||
if (clockwise) {
|
||||
tap_code(KC_PGDN);
|
||||
} else {
|
||||
tap_code(KC_PGUP);
|
||||
}
|
||||
} else if (index == 1) {
|
||||
// Mouse Wheel Up/Down
|
||||
if (clockwise) {
|
||||
tap_code(KC_MS_WH_DOWN);
|
||||
} else {
|
||||
tap_code(KC_MS_WH_UP);
|
||||
}
|
||||
} else if (index == 2) {
|
||||
// Volume Up/Down
|
||||
if (clockwise) {
|
||||
tap_code(KC_VOLU);
|
||||
} else {
|
||||
tap_code(KC_VOLD);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
#endif
|
|
@ -0,0 +1,61 @@
|
|||
/* Copyright 2021 Katrina (@PepperKats)
|
||||
*
|
||||
* 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,
|
||||
_LAYERTWO
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* ┌───┐ ┌───────┐┌───┬───┬───┐┌───┬───┬───┐
|
||||
* │ESC│ │KC_BSPC││F1 │F2 │F3 ││F4 │F5 │F6 │
|
||||
* └───┘ └───────┘└───┴───┴───┘└───┴───┴───┘
|
||||
* ┌───┬───┬───┬───┐┌───┬───┬───┐
|
||||
* │NUM│ / │ * │ - ││PAS│SCR│PSC│
|
||||
* ├───┼───┼───┼───┤├───┼───┼───│
|
||||
* │ 7 │ 8 │ 9 │ ││INS│HOM│PGU│
|
||||
* ├───┼───┼───│ + │├───┼───┼───│
|
||||
* │ 4 │ 5 │ 6 │ ││END│DEL│PGD│
|
||||
* ├───┼───┼───┼───┤└───┼───┼───┘
|
||||
* │ 1 │ 2 │ 3 │ E │ │UP │
|
||||
* ├───┼───┼───│ N │┌───┼───┼───┐┌───┬───┬───┐
|
||||
* │ 0 │DEL│ T ││LFT│DWN│RHT││ O │ O │ O │
|
||||
* └───┴───┴───┴───┘└───┴───┴───┘└───┴───┴───┘
|
||||
*/
|
||||
[_QWERTY] = LAYOUT(
|
||||
MO(1), KC_BSPC, RGB_RMOD, RGB_TOG, RGB_MOD, KC_F1, KC_F2, KC_F3,
|
||||
KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PAUS, KC_SCRL, KC_PSCR,
|
||||
KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_P4, KC_P5, KC_P6, KC_END, KC_DEL, KC_PGDN,
|
||||
KC_P1, KC_P2, KC_P3, KC_PENT, KC_UP,
|
||||
KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_END, KC_B
|
||||
),
|
||||
[_LAYERTWO] = LAYOUT(
|
||||
_______, KC_BSPC, RGB_RMOD, RGB_TOG, RGB_MOD, KC_A, QK_REBOOT, QK_BOOTLOADER,
|
||||
KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, KC_PAUS, KC_SCRL, KC_PSCR,
|
||||
KC_P7, KC_P8, KC_P9, KC_PPLS, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_P4, KC_P5, KC_P6, KC_END, KC_DEL, KC_PGDN,
|
||||
KC_P1, KC_P2, KC_P3, KC_PENT, KC_UP,
|
||||
KC_P0, KC_PDOT, KC_LEFT, KC_DOWN, KC_RGHT, KC_HOME, KC_END, KC_B
|
||||
)
|
||||
};
|
||||
|
||||
/*NOTE FOR PERSON MODIFYING KEYMAP
|
||||
The large knob press is mapped as KC_B, despite it not having one.
|
||||
I'm not quite sure why, but the only reason it can't be clicked is because the potentiometer is different.
|
||||
If you were to replace it with one that can be clicked, it would work. I shorted it and it does work.*/
|
|
@ -0,0 +1,24 @@
|
|||
# doio/kb38
|
||||
|
||||
QMK for Megalodon DOIO Triple Knob 38% with OLED Screen.
|
||||
|
||||
* Keyboard Maintainer: [Katrina](https://github.com/PepperKats)
|
||||
* Hardware Supported: Megalodon DOIO Triple Knob 38%
|
||||
* Hardware Availability: https://www.keebmonkey.com/products/megalodon-doio-triple-knob-38-keyboard-with-oled-screen
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make doio/kb38:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make doio/kb38: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:
|
||||
|
||||
* **Physical reset button**: Briefly press the button on the back of the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
|
@ -0,0 +1,27 @@
|
|||
RGB_MATRIX_EFFECT(trans)
|
||||
#ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS
|
||||
|
||||
static bool trans(effect_params_t* params) {
|
||||
RGB_MATRIX_USE_LIMITS(led_min, led_max);
|
||||
for (int i = 0; i < 8; i++) {
|
||||
rgb_matrix_set_color(i, 0x00, 0x00, 0xFF);
|
||||
}
|
||||
for (int i = 8; i < 15; i++) {
|
||||
rgb_matrix_set_color(i, 0xFF, 0x00, 0x92);
|
||||
}
|
||||
for (int i = 15; i < 28; i++) {
|
||||
rgb_matrix_set_color(i, 0xFF, 0xFF, 0xFF);
|
||||
}
|
||||
for (int i = 28; i < 33; i++) {
|
||||
rgb_matrix_set_color(i, 0xFF, 0x00, 0x92);
|
||||
}
|
||||
for (int i = 33; i < 38; i++) {
|
||||
rgb_matrix_set_color(i, 0x00, 0x00, 0xFF);
|
||||
}
|
||||
for (int i = 38; i < 44; i++) {
|
||||
rgb_matrix_set_color(i, 0x00, 0x00, 0xFF);
|
||||
}
|
||||
return rgb_matrix_check_finished_leds(led_max);
|
||||
}
|
||||
|
||||
#endif
|
|
@ -0,0 +1,3 @@
|
|||
OLED_ENABLE = yes
|
||||
ENCODER_ENABLE = yes
|
||||
RGB_MATRIX_CUSTOM_KB = yes
|
|
@ -0,0 +1,26 @@
|
|||
/* Copyright 2023 Eason <xiaoxuxk@yeah.net>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define MATRIX_ROW_PINS { D0, D1, D2, D3, D5, D4 }
|
||||
#define MATRIX_COL_PINS { D6, D7, B4, B5, B6, C6, C7, E2, F7, F6, F5, F4, B0, B1, B2, B3 }
|
||||
|
||||
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
#define LED_CAPS_LOCK_PIN F0
|
||||
#define LED_PIN_ON_STATE 0
|
|
@ -0,0 +1,112 @@
|
|||
{
|
||||
"keyboard_name": "GREATSWORD80",
|
||||
"manufacturer": "Eason",
|
||||
"url": "https://github.com/EasonQian1",
|
||||
"maintainer": "Eason",
|
||||
"usb": {
|
||||
"vid": "0x980E",
|
||||
"pid": "0x998F",
|
||||
"device_version": "0.0.1"
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "atmel-dfu",
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{"label": "K00 (D0,D6)", "matrix": [0, 0], "x": 0, "y": 0},
|
||||
{"label": "K01 (D0,D7)", "matrix": [0, 1], "x": 1.25, "y": 0},
|
||||
{"label": "K02 (D0,B4)", "matrix": [0, 2], "x": 2.25, "y": 0},
|
||||
{"label": "K03 (D0,B5)", "matrix": [0, 3], "x": 3.25, "y": 0},
|
||||
{"label": "K04 (D0,B6)", "matrix": [0, 4], "x": 4.25, "y": 0},
|
||||
{"label": "K05 (D0,C6)", "matrix": [0, 5], "x": 5.5, "y": 0},
|
||||
{"label": "K06 (D0,C7)", "matrix": [0, 6], "x": 6.5, "y": 0},
|
||||
{"label": "K07 (D0,E2)", "matrix": [0, 7], "x": 7.5, "y": 0},
|
||||
{"label": "K08 (D0,F7)", "matrix": [0, 8], "x": 8.5, "y": 0},
|
||||
{"label": "K09 (D0,F6)", "matrix": [0, 9], "x": 9.75, "y": 0},
|
||||
{"label": "K0A (D0,F5)", "matrix": [0, 10], "x": 10.75, "y": 0},
|
||||
{"label": "K0B (D0,F4)", "matrix": [0, 11], "x": 11.75, "y": 0},
|
||||
{"label": "K0C (D0,B0)", "matrix": [0, 12], "x": 12.75, "y": 0},
|
||||
{"label": "K0D (D0,B1)", "matrix": [0, 13], "x": 14, "y": 0},
|
||||
{"label": "K0E (D0,B2)", "matrix": [0, 14], "x": 15.5, "y": 0},
|
||||
{"label": "K0F (D0,B3)", "matrix": [0, 15], "x": 16.5, "y": 0},
|
||||
{"label": "K5A (D4,F5)", "matrix": [5, 10], "x": 17.5, "y": 0},
|
||||
|
||||
{"label": "K10 (D1,D6)", "matrix": [1, 0], "x": 0, "y": 1.25},
|
||||
{"label": "K11 (D1,D7)", "matrix": [1, 1], "x": 1, "y": 1.25},
|
||||
{"label": "K12 (D1,B4)", "matrix": [1, 2], "x": 2, "y": 1.25},
|
||||
{"label": "K13 (D1,B5)", "matrix": [1, 3], "x": 3, "y": 1.25},
|
||||
{"label": "K14 (D1,B6)", "matrix": [1, 4], "x": 4, "y": 1.25},
|
||||
{"label": "K15 (D1,C6)", "matrix": [1, 5], "x": 5, "y": 1.25},
|
||||
{"label": "K16 (D1,C7)", "matrix": [1, 6], "x": 6, "y": 1.25},
|
||||
{"label": "K17 (D1,E2)", "matrix": [1, 7], "x": 7, "y": 1.25},
|
||||
{"label": "K18 (D1,F7)", "matrix": [1, 8], "x": 8, "y": 1.25},
|
||||
{"label": "K19 (D1,F6)", "matrix": [1, 9], "x": 9, "y": 1.25},
|
||||
{"label": "K1A (D1,F5)", "matrix": [1, 10], "x": 10, "y": 1.25},
|
||||
{"label": "K1B (D1,F4)", "matrix": [1, 11], "x": 11, "y": 1.25},
|
||||
{"label": "K1C (D1,B0)", "matrix": [1, 12], "x": 12, "y": 1.25},
|
||||
{"label": "K1D (D1,B1)", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
|
||||
{"label": "K1E (D1,B2)", "matrix": [1, 14], "x": 15.5, "y": 1.25},
|
||||
{"label": "K1F (D1,B3)", "matrix": [1, 15], "x": 16.5, "y": 1.25},
|
||||
{"label": "K5B (D4,F4)", "matrix": [5, 11], "x": 17.5, "y": 1.25},
|
||||
|
||||
{"label": "K20 (D2,D6)", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
|
||||
{"label": "K21 (D2,D7)", "matrix": [2, 1], "x": 1.5, "y": 2.25},
|
||||
{"label": "K22 (D2,B4)", "matrix": [2, 2], "x": 2.5, "y": 2.25},
|
||||
{"label": "K23 (D2,B5)", "matrix": [2, 3], "x": 3.5, "y": 2.25},
|
||||
{"label": "K24 (D2,B6)", "matrix": [2, 4], "x": 4.5, "y": 2.25},
|
||||
{"label": "K25 (D2,C6)", "matrix": [2, 5], "x": 5.5, "y": 2.25},
|
||||
{"label": "K26 (D2,C7)", "matrix": [2, 6], "x": 6.5, "y": 2.25},
|
||||
{"label": "K27 (D2,E2)", "matrix": [2, 7], "x": 7.5, "y": 2.25},
|
||||
{"label": "K28 (D2,F7)", "matrix": [2, 8], "x": 8.5, "y": 2.25},
|
||||
{"label": "K29 (D2,F6)", "matrix": [2, 9], "x": 9.5, "y": 2.25},
|
||||
{"label": "K2A (D2,F5)", "matrix": [2, 10], "x": 10.5, "y": 2.25},
|
||||
{"label": "K2B (D2,F4)", "matrix": [2, 11], "x": 11.5, "y": 2.25},
|
||||
{"label": "K2C (D2,B0)", "matrix": [2, 12], "x": 12.5, "y": 2.25},
|
||||
{"label": "K2D (D2,B1)", "matrix": [2, 13], "x": 13.5, "y": 2.25, "w": 1.5},
|
||||
{"label": "K2E (D2,B2)", "matrix": [2, 14], "x": 15.5, "y": 2.25},
|
||||
{"label": "K2F (D2,B3)", "matrix": [2, 15], "x": 16.5, "y": 2.25},
|
||||
{"label": "K5C (D4,B0)", "matrix": [5, 12], "x": 17.5, "y": 2.25},
|
||||
|
||||
{"label": "K30 (D3,D6)", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
|
||||
{"label": "K31 (D3,D7)", "matrix": [3, 1], "x": 1.75, "y": 3.25},
|
||||
{"label": "K32 (D3,B4)", "matrix": [3, 2], "x": 2.75, "y": 3.25},
|
||||
{"label": "K33 (D3,B5)", "matrix": [3, 3], "x": 3.75, "y": 3.25},
|
||||
{"label": "K34 (D3,B6)", "matrix": [3, 4], "x": 4.75, "y": 3.25},
|
||||
{"label": "K35 (D3,C6)", "matrix": [3, 5], "x": 5.75, "y": 3.25},
|
||||
{"label": "K36 (D3,C7)", "matrix": [3, 6], "x": 6.75, "y": 3.25},
|
||||
{"label": "K37 (D3,E2)", "matrix": [3, 7], "x": 7.75, "y": 3.25},
|
||||
{"label": "K38 (D3,F7)", "matrix": [3, 8], "x": 8.75, "y": 3.25},
|
||||
{"label": "K39 (D3,F6)", "matrix": [3, 9], "x": 9.75, "y": 3.25},
|
||||
{"label": "K3A (D3,F5)", "matrix": [3, 10], "x": 10.75, "y": 3.25},
|
||||
{"label": "K3B (D3,F4)", "matrix": [3, 11], "x": 11.75, "y": 3.25},
|
||||
{"label": "K3C (D3,B0)", "matrix": [3, 12], "x": 12.75, "y": 3.25, "w": 2.25},
|
||||
|
||||
{"label": "K40 (D5,D6)", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 1.25},
|
||||
{"label": "K41 (D5,D7)", "matrix": [4, 1], "x": 1.25, "y": 4.25},
|
||||
{"label": "K42 (D5,B4)", "matrix": [4, 2], "x": 2.25, "y": 4.25},
|
||||
{"label": "K43 (D5,B5)", "matrix": [4, 3], "x": 3.25, "y": 4.25},
|
||||
{"label": "K44 (D5,B6)", "matrix": [4, 4], "x": 4.25, "y": 4.25},
|
||||
{"label": "K45 (D5,C6)", "matrix": [4, 5], "x": 5.25, "y": 4.25},
|
||||
{"label": "K46 (D5,C7)", "matrix": [4, 6], "x": 6.25, "y": 4.25},
|
||||
{"label": "K47 (D5,E2)", "matrix": [4, 7], "x": 7.25, "y": 4.25},
|
||||
{"label": "K48 (D5,F7)", "matrix": [4, 8], "x": 8.25, "y": 4.25},
|
||||
{"label": "K49 (D5,F6)", "matrix": [4, 9], "x": 9.25, "y": 4.25},
|
||||
{"label": "K4A (D5,F5)", "matrix": [4, 10], "x": 10.25, "y": 4.25},
|
||||
{"label": "K4B (D5,F4)", "matrix": [4, 11], "x": 11.25, "y": 4.25},
|
||||
{"label": "K4C (D5,B0)", "matrix": [4, 12], "x": 12.25, "y": 4.25, "w": 2.75},
|
||||
{"label": "K4E (D5,B2)", "matrix": [4, 14], "x": 16.5, "y": 4.25},
|
||||
|
||||
{"label": "K50 (D4,D6)", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.5},
|
||||
{"label": "K51 (D4,D7)", "matrix": [5, 1], "x": 1.5, "y": 5.25},
|
||||
{"label": "K52 (D4,B4)", "matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.5},
|
||||
{"label": "K56 (D4,C7)", "matrix": [5, 6], "x": 4, "y": 5.25, "w": 7},
|
||||
{"label": "K57 (D4,E2)", "matrix": [5, 7], "x": 11, "y": 5.25, "w": 1.5},
|
||||
{"label": "K58 (D4,F7)", "matrix": [5, 8], "x": 12.5, "y": 5.25},
|
||||
{"label": "K59 (D4,F6)", "matrix": [5, 9], "x": 13.5, "y": 5.25, "w": 1.5},
|
||||
{"label": "K5D (D4,B1)", "matrix": [5, 13], "x": 15.5, "y": 5.25},
|
||||
{"label": "K5E (D4,B2)", "matrix": [5, 14], "x": 16.5, "y": 5.25},
|
||||
{"label": "K5F (D4,B3)", "matrix": [5, 15], "x": 17.5, "y": 5.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
/* Copyright 2023 Eason <xiaoxuxk@yeah.net>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT(
|
||||
KC_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, MO(1), KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
|
@ -0,0 +1,56 @@
|
|||
/* Copyright 2023 Eason <xiaoxuxk@yeah.net>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[0] = LAYOUT(
|
||||
KC_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, MO(1), KC_PSCR, KC_SCRL, KC_PAUS,
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[1] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
[2] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
[3] = LAYOUT(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
|
||||
};
|
|
@ -0,0 +1,2 @@
|
|||
VIA_ENABLE = yes
|
||||
LTO_ENABLE = yes
|
|
@ -0,0 +1,22 @@
|
|||
# GREATSWORD80
|
||||
A customizable soldering 80% keyboard.
|
||||
|
||||
* Keyboard Maintainer: [eason](https://github.com/EasonQian1)
|
||||
* Hardware Supported: greatsword80
|
||||
* Hardware Availability: [eason](https://github.com/EasonQian1)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make eason/greatsword80:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make eason/greatsword80: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 esc in the keyboard then replug
|
||||
* **Physical reset button**: Briefly press the button on the back of the PCB
|
||||
* **Keycode in layout**: Press the key mapped to `QK_BOOT`
|
|
@ -0,0 +1,12 @@
|
|||
# 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
|
||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
|
@ -0,0 +1,119 @@
|
|||
{
|
||||
"manufacturer": "Dong Jae Shin",
|
||||
"keyboard_name": "Igloo",
|
||||
"maintainer": "Dong Jae Shin",
|
||||
"bootloader": "atmel-dfu",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["F7", "F6", "F5", "F4", "F1", "F0",
|
||||
"B0", "B1", "B2", "B4", "B5", "B6",
|
||||
"C6", "C7", "D5", "D6", "D4"],
|
||||
"rows": ["B7", "D0", "D1", "D2", "D3"]
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"url": "",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0001",
|
||||
"vid": "0xBEAD"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_tkl_nofrow_ansi": {
|
||||
"layout": [
|
||||
{ "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "matrix": [0, 1], "x": 1, "y": 0 },
|
||||
{ "matrix": [0, 2], "x": 2, "y": 0 },
|
||||
{ "matrix": [0, 3], "x": 3, "y": 0 },
|
||||
{ "matrix": [0, 4], "x": 4, "y": 0 },
|
||||
{ "matrix": [0, 5], "x": 5, "y": 0 },
|
||||
{ "matrix": [0, 6], "x": 6, "y": 0 },
|
||||
{ "matrix": [0, 7], "x": 7, "y": 0 },
|
||||
{ "matrix": [0, 8], "x": 8, "y": 0 },
|
||||
{ "matrix": [0, 9], "x": 9, "y": 0 },
|
||||
{ "matrix": [0, 10], "x": 10, "y": 0 },
|
||||
{ "matrix": [0, 11], "x": 11, "y": 0 },
|
||||
{ "matrix": [0, 12], "x": 12, "y": 0 },
|
||||
{ "matrix": [0, 13], "w": 2, "x": 13, "y": 0 },
|
||||
{ "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||
{ "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||
{ "matrix": [0, 16], "x": 17.25, "y": 0 },
|
||||
|
||||
{ "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 },
|
||||
{ "matrix": [1, 1], "x": 1.5, "y": 1 },
|
||||
{ "matrix": [1, 2], "x": 2.5, "y": 1 },
|
||||
{ "matrix": [1, 3], "x": 3.5, "y": 1 },
|
||||
{ "matrix": [1, 4], "x": 4.5, "y": 1 },
|
||||
{ "matrix": [1, 5], "x": 5.5, "y": 1 },
|
||||
{ "matrix": [1, 6], "x": 6.5, "y": 1 },
|
||||
{ "matrix": [1, 7], "x": 7.5, "y": 1 },
|
||||
{ "matrix": [1, 8], "x": 8.5, "y": 1 },
|
||||
{ "matrix": [1, 9], "x": 9.5, "y": 1 },
|
||||
{ "matrix": [1, 10], "x": 10.5, "y": 1 },
|
||||
{ "matrix": [1, 11], "x": 11.5, "y": 1 },
|
||||
{ "matrix": [1, 12], "x": 12.5, "y": 1 },
|
||||
{ "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 },
|
||||
{ "matrix": [1, 14], "x": 15.25, "y": 1 },
|
||||
{ "matrix": [1, 15], "x": 16.25, "y": 1 },
|
||||
{ "matrix": [1, 16], "x": 17.25, "y": 1 },
|
||||
|
||||
{ "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 },
|
||||
{ "matrix": [2, 1], "x": 1.75, "y": 2 },
|
||||
{ "matrix": [2, 2], "x": 2.75, "y": 2 },
|
||||
{ "matrix": [2, 3], "x": 3.75, "y": 2 },
|
||||
{ "matrix": [2, 4], "x": 4.75, "y": 2 },
|
||||
{ "matrix": [2, 5], "x": 5.75, "y": 2 },
|
||||
{ "matrix": [2, 6], "x": 6.75, "y": 2 },
|
||||
{ "matrix": [2, 7], "x": 7.75, "y": 2 },
|
||||
{ "matrix": [2, 8], "x": 8.75, "y": 2 },
|
||||
{ "matrix": [2, 9], "x": 9.75, "y": 2 },
|
||||
{ "matrix": [2, 10], "x": 10.75, "y": 2 },
|
||||
{ "matrix": [2, 11], "x": 11.75, "y": 2 },
|
||||
{ "matrix": [2, 12], "w": 2.25, "x": 12.75, "y": 2 },
|
||||
{ "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 },
|
||||
{ "matrix": [2, 14], "x": 12.75, "y": 2 },
|
||||
{ "matrix": [2, 15], "x": 13, "y": 0 },
|
||||
|
||||
|
||||
{ "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 },
|
||||
{ "matrix": [3, 1], "x": 1.25, "y": 3 },
|
||||
{ "matrix": [3, 2], "x": 2.25, "y": 3 },
|
||||
{ "matrix": [3, 3], "x": 3.25, "y": 3 },
|
||||
{ "matrix": [3, 4], "x": 4.25, "y": 3 },
|
||||
{ "matrix": [3, 5], "x": 5.25, "y": 3 },
|
||||
{ "matrix": [3, 6], "x": 6.25, "y": 3 },
|
||||
{ "matrix": [3, 7], "x": 7.25, "y": 3 },
|
||||
{ "matrix": [3, 8], "x": 8.25, "y": 3 },
|
||||
{ "matrix": [3, 9], "x": 9.25, "y": 3 },
|
||||
{ "matrix": [3, 10], "x": 10.25, "y": 3 },
|
||||
{ "matrix": [3, 11], "x": 11.25, "y": 3 },
|
||||
{ "matrix": [3, 12], "x": 12.25, "y": 3 },
|
||||
{ "matrix": [3, 14], "x": 13.25, "y": 3 },
|
||||
{ "matrix": [3, 15], "x": 16.25, "y": 3 },
|
||||
|
||||
{ "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 },
|
||||
{ "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 },
|
||||
{ "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 },
|
||||
{ "matrix": [4, 3], "x": 6.25, "y": 4 },
|
||||
{ "matrix": [4, 4], "w": 2.25, "x": 4, "y": 4 },
|
||||
{ "matrix": [4, 5], "w": 6.25, "x": 3.75, "y": 4 },
|
||||
{ "matrix": [4, 6], "w": 2.25, "x": 7.25, "y": 4 },
|
||||
{ "matrix": [4, 9], "w": 1.25, "x": 10, "y": 4 },
|
||||
{ "matrix": [4, 10], "w": 1.25, "x": 11.25, "y": 4 },
|
||||
{ "matrix": [4, 11], "w": 1.25, "x": 12.5, "y": 4 },
|
||||
{ "matrix": [4, 12], "w": 1.25, "x": 13.75, "y": 4 },
|
||||
{ "matrix": [4, 13], "w": 1.25, "x": 15, "y": 4 },
|
||||
{ "matrix": [4, 14], "x": 15.25, "y": 4 },
|
||||
{ "matrix": [4, 15], "x": 16.25, "y": 4 },
|
||||
{ "matrix": [4, 16], "x": 17.25, "y": 4 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
Copyright 2023 Dong Jae Shin <djok0127@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
enum layers {
|
||||
_LAYER0,
|
||||
_LAYER1,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_LAYER0] = LAYOUT_tkl_nofrow_ansi(
|
||||
// 0, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
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_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_NONUS_HASH, KC_BSPC,
|
||||
KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[_LAYER1] = LAYOUT_tkl_nofrow_ansi(
|
||||
// 0, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, 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,42 @@
|
|||
/*
|
||||
Copyright 2023 Dong Jae Shin <djok0127@gmail.com>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#include QMK_KEYBOARD_H
|
||||
enum layers {
|
||||
_LAYER0,
|
||||
_LAYER1,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_LAYER0] = LAYOUT_tkl_nofrow_ansi(
|
||||
// 0, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
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_INS, KC_HOME, KC_PGUP,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_NONUS_HASH, KC_BSPC,
|
||||
KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, MO(1), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||
),
|
||||
|
||||
[_LAYER1] = LAYOUT_tkl_nofrow_ansi(
|
||||
// 0, 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
||||
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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, 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 @@
|
|||
# Igloo
|
||||
|
||||
* Keyboard Maintainer: [Chris Shin](https://github.com/djok0127)
|
||||
* Hardware Supported: Igloo PCB
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make igloo:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make igloo: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
|
||||
|
||||
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
|
|
@ -0,0 +1 @@
|
|||
# This file intentionally left blank
|
|
@ -112,8 +112,8 @@
|
|||
{ "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 },
|
||||
{ "matrix": [4, 1], "x": 1.5, "y": 4 },
|
||||
{ "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 },
|
||||
{ "matrix": [4, 3], "w": 7, "x": 4, "y": 4 },
|
||||
{ "matrix": [4, 10], "w": 1.5, "x": 11, "y": 4 },
|
||||
{ "matrix": [4, 7], "w": 7, "x": 4, "y": 4 },
|
||||
{ "matrix": [4, 11], "w": 1.5, "x": 11, "y": 4 },
|
||||
{ "matrix": [4, 12], "x": 13, "y": 4 },
|
||||
{ "matrix": [4, 13], "x": 14, "y": 4 },
|
||||
{ "matrix": [4, 14], "x": 15, "y": 4 }
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
"pid": "0x0110",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"processor": "STM32L433",
|
||||
"processor": "STM32L432",
|
||||
"bootloader": "stm32-dfu",
|
||||
"layouts": {
|
||||
"LAYOUT_ansi_67": {
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
"pid": "0x0111",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"processor": "STM32L433",
|
||||
"processor": "STM32L432",
|
||||
"bootloader": "stm32-dfu",
|
||||
"layouts": {
|
||||
"LAYOUT_ansi_67": {
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
"pid": "0x0112",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"processor": "STM32L433",
|
||||
"processor": "STM32L432",
|
||||
"bootloader": "stm32-dfu",
|
||||
"layouts": {
|
||||
"LAYOUT_iso_68": {
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
"pid": "0x0113",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"processor": "STM32L433",
|
||||
"processor": "STM32L432",
|
||||
"bootloader": "stm32-dfu",
|
||||
"layouts": {
|
||||
"LAYOUT_iso_68": {
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
/* RGB Matrix Configuration */
|
||||
#define DRIVER_1_LED_TOTAL 35
|
||||
#define DRIVER_2_LED_TOTAL 36
|
||||
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
|
||||
|
||||
#define CKLED2001_CURRENT_TUNE { 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D }
|
||||
|
||||
/* Enable caps-lock LED */
|
||||
#define CAPS_LOCK_LED_INDEX 30
|
|
@ -0,0 +1,94 @@
|
|||
{
|
||||
"keyboard_name": "Keychron Q2",
|
||||
"manufacturer": "Keychron",
|
||||
"url": "https://github.com/Keychron",
|
||||
"maintainer": "lalalademaxiya1",
|
||||
"usb": {
|
||||
"vid": "0x3434",
|
||||
"pid": "0x0114",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"processor": "STM32L432",
|
||||
"bootloader": "stm32-dfu",
|
||||
"layouts": {
|
||||
"LAYOUT_jis_71": {
|
||||
"layout": [
|
||||
{"matrix":[0, 0], "x":0, "y":0.25},
|
||||
{"matrix":[0, 1], "x":1, "y":0.25},
|
||||
{"matrix":[0, 2], "x":2, "y":0.25},
|
||||
{"matrix":[0, 3], "x":3, "y":0.25},
|
||||
{"matrix":[0, 4], "x":4, "y":0.25},
|
||||
{"matrix":[0, 5], "x":5, "y":0.25},
|
||||
{"matrix":[0, 6], "x":6, "y":0.25},
|
||||
{"matrix":[0, 7], "x":7, "y":0.25},
|
||||
{"matrix":[0, 8], "x":8, "y":0.25},
|
||||
{"matrix":[0, 9], "x":9, "y":0.25},
|
||||
{"matrix":[0,10], "x":10, "y":0.25},
|
||||
{"matrix":[0,11], "x":11, "y":0.25},
|
||||
{"matrix":[0,12], "x":12, "y":0.25},
|
||||
{"matrix":[0,13], "x":13, "y":0.25},
|
||||
{"matrix":[3, 1], "x":14, "y":0.25},
|
||||
{"matrix":[0,14], "x":15.25, "y":0},
|
||||
|
||||
{"matrix":[1, 0], "x":0, "y":1.25, "w":1.5},
|
||||
{"matrix":[1, 1], "x":1.5, "y":1.25},
|
||||
{"matrix":[1, 2], "x":2.5, "y":1.25},
|
||||
{"matrix":[1, 3], "x":3.5, "y":1.25},
|
||||
{"matrix":[1, 4], "x":4.5, "y":1.25},
|
||||
{"matrix":[1, 5], "x":5.5, "y":1.25},
|
||||
{"matrix":[1, 6], "x":6.5, "y":1.25},
|
||||
{"matrix":[1, 7], "x":7.5, "y":1.25},
|
||||
{"matrix":[1, 8], "x":8.5, "y":1.25},
|
||||
{"matrix":[1, 9], "x":9.5, "y":1.25},
|
||||
{"matrix":[1,10], "x":10.5, "y":1.25},
|
||||
{"matrix":[1,11], "x":11.5, "y":1.25},
|
||||
{"matrix":[1,12], "x":12.5, "y":1.25},
|
||||
{"matrix":[1,14], "x":15.25, "y":1.25},
|
||||
|
||||
{"matrix":[2, 0], "x":0, "y":2.25, "w":1.75},
|
||||
{"matrix":[2, 1], "x":1.75, "y":2.25},
|
||||
{"matrix":[2, 2], "x":2.75, "y":2.25},
|
||||
{"matrix":[2, 3], "x":3.75, "y":2.25},
|
||||
{"matrix":[2, 4], "x":4.75, "y":2.25},
|
||||
{"matrix":[2, 5], "x":5.75, "y":2.25},
|
||||
{"matrix":[2, 6], "x":6.75, "y":2.25},
|
||||
{"matrix":[2, 7], "x":7.75, "y":2.25},
|
||||
{"matrix":[2, 8], "x":8.75, "y":2.25},
|
||||
{"matrix":[2, 9], "x":9.75, "y":2.25},
|
||||
{"matrix":[2,10], "x":10.75, "y":2.25},
|
||||
{"matrix":[2,11], "x":11.75, "y":2.25},
|
||||
{"matrix":[2,13], "x":12.75, "y":2.25},
|
||||
{"matrix":[1,13], "x":13.75, "y":1.25, "w":1.25, "h":2},
|
||||
{"matrix":[2,14], "x":15.25, "y":2.25},
|
||||
|
||||
{"matrix":[3, 0], "x":0, "y":3.25, "w":2.25},
|
||||
{"matrix":[3, 2], "x":2.25, "y":3.25},
|
||||
{"matrix":[3, 3], "x":3.25, "y":3.25},
|
||||
{"matrix":[3, 4], "x":4.25, "y":3.25},
|
||||
{"matrix":[3, 5], "x":5.25, "y":3.25},
|
||||
{"matrix":[3, 6], "x":6.25, "y":3.25},
|
||||
{"matrix":[3, 7], "x":7.25, "y":3.25},
|
||||
{"matrix":[3, 8], "x":8.25, "y":3.25},
|
||||
{"matrix":[3, 9], "x":9.25, "y":3.25},
|
||||
{"matrix":[3,10], "x":10.25, "y":3.25},
|
||||
{"matrix":[3,11], "x":11.25, "y":3.25},
|
||||
{"matrix":[3,12], "x":12.25, "y":3.25},
|
||||
{"matrix":[3,13], "x":13.25, "y":3.25},
|
||||
{"matrix":[3,14], "x":14.25, "y":3.25},
|
||||
|
||||
{"matrix":[4, 0], "x":0, "y":4.25, "w":1.25},
|
||||
{"matrix":[4, 1], "x":1.25, "y":4.25},
|
||||
{"matrix":[4, 2], "x":2.25, "y":4.25, "w":1.25},
|
||||
{"matrix":[4, 3], "x":3.5, "y":4.25},
|
||||
{"matrix":[4, 6], "x":4.5, "y":4.25, "w":4.5},
|
||||
{"matrix":[4, 9], "x":9, "y":4.25, "w":1.25},
|
||||
{"matrix":[4,10], "x":10.25, "y":4.25},
|
||||
{"matrix":[4,11], "x":11.25, "y":4.25},
|
||||
{"matrix":[4,12], "x":12.25, "y":4.25},
|
||||
{"matrix":[4,13], "x":13.25, "y":4.25},
|
||||
{"matrix":[2,12], "x":14.25, "y":4.25},
|
||||
{"matrix":[4,14], "x":15.25, "y":4.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,134 @@
|
|||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
|
||||
const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
|
||||
/* Refer to IS31 manual for these locations
|
||||
* driver
|
||||
* | R location
|
||||
* | | G location
|
||||
* | | | B location
|
||||
* | | | | */
|
||||
{0, C_1, A_1, B_1},
|
||||
{0, C_2, A_2, B_2},
|
||||
{0, C_3, A_3, B_3},
|
||||
{0, C_4, A_4, B_4},
|
||||
{0, C_5, A_5, B_5},
|
||||
{0, C_6, A_6, B_6},
|
||||
{0, C_7, A_7, B_7},
|
||||
{0, C_8, A_8, B_8},
|
||||
{0, C_9, A_9, B_9},
|
||||
{0, C_10, A_10, B_10},
|
||||
{0, C_11, A_11, B_11},
|
||||
{0, C_12, A_12, B_12},
|
||||
{0, C_13, A_13, B_13},
|
||||
{0, C_14, A_14, B_14},
|
||||
{0, C_15, A_15, B_15},
|
||||
{0, C_16, A_16, B_16},
|
||||
|
||||
{0, F_1, D_1, E_1},
|
||||
{0, F_2, D_2, E_2},
|
||||
{0, F_3, D_3, E_3},
|
||||
{0, F_4, D_4, E_4},
|
||||
{0, F_5, D_5, E_5},
|
||||
{0, F_6, D_6, E_6},
|
||||
{0, F_7, D_7, E_7},
|
||||
{0, F_8, D_8, E_8},
|
||||
{0, F_9, D_9, E_9},
|
||||
{0, F_10, D_10, E_10},
|
||||
{0, F_11, D_11, E_11},
|
||||
{0, F_12, D_12, E_12},
|
||||
{0, F_13, D_13, E_13},
|
||||
{0, F_16, D_16, E_16},
|
||||
|
||||
{0, I_1, G_1, H_1},
|
||||
{0, I_2, G_2, H_2},
|
||||
{0, I_3, G_3, H_3},
|
||||
{0, I_4, G_4, H_4},
|
||||
{0, I_5, G_5, H_5},
|
||||
{1, I_6, G_6, H_6},
|
||||
{1, I_7, G_7, H_7},
|
||||
{1, I_8, G_8, H_8},
|
||||
{1, I_9, G_9, H_9},
|
||||
{1, I_10, G_10, H_10},
|
||||
{1, I_11, G_11, H_11},
|
||||
{1, I_12, G_12, H_12},
|
||||
{1, I_14, G_14, H_14},
|
||||
{0, F_14, D_14, E_14},
|
||||
{1, I_16, G_16, H_16},
|
||||
|
||||
{1, C_1, A_1, B_1},
|
||||
{1, C_3, A_3, B_3},
|
||||
{1, C_4, A_4, B_4},
|
||||
{1, C_5, A_5, B_5},
|
||||
{1, C_6, A_6, B_6},
|
||||
{1, C_7, A_7, B_7},
|
||||
{1, C_8, A_8, B_8},
|
||||
{1, C_9, A_9, B_9},
|
||||
{1, C_10, A_10, B_10},
|
||||
{1, C_11, A_11, B_11},
|
||||
{1, C_12, A_12, B_12},
|
||||
{1, C_13, A_13, B_13},
|
||||
{1, C_14, A_14, B_14},
|
||||
{1, C_15, A_15, B_15},
|
||||
|
||||
{1, F_1, D_1, E_1},
|
||||
{1, F_2, D_2, E_2},
|
||||
{1, F_3, D_3, E_3},
|
||||
{1, F_4, D_4, E_4},
|
||||
{1, F_7, D_7, E_7},
|
||||
{1, F_10, D_10, E_10},
|
||||
{1, F_11, D_11, E_11},
|
||||
{1, F_12, D_12, E_12},
|
||||
{1, F_13, D_13, E_13},
|
||||
{1, F_14, D_14, E_14},
|
||||
{1, F_15, D_15, E_15},
|
||||
{1, F_16, D_16, E_16}
|
||||
};
|
||||
|
||||
#define __ NO_LED
|
||||
|
||||
led_config_t g_led_config = {
|
||||
{
|
||||
// Key Matrix to LED Index
|
||||
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 },
|
||||
{ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 43, 29 },
|
||||
{ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 69, 42, 44 },
|
||||
{ 45, 14, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 },
|
||||
{ 59, 60, 61, 62, __, __, 63, __, __, 64, 65, 66, 67, 68, 70 }
|
||||
},
|
||||
{
|
||||
// LED Index to Physical Position
|
||||
{0,4}, {15,4}, {29,4}, {44,4}, {59,4}, {73,4}, {88,4}, {103,4}, {117,4}, {132,4}, {146,4}, {161,4}, {176,4}, {190,4}, {205,4}, {224,0},
|
||||
{4,19}, {22,19}, {37,19}, {51,19}, {66,19}, {81,19}, {95,19}, {110,19}, {125,19}, {139,19}, {154,19}, {168,19}, {183,19}, {224,19},
|
||||
{6,34}, {26,34}, {40,34}, {55,34}, {70,34}, {84,34}, {99,34}, {114,34}, {128,34}, {143,34}, {158,34}, {172,34}, {187,34}, {207,29}, {224,34},
|
||||
{9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {150,49}, {165,49}, {179,49}, {194,49}, {209,49},
|
||||
{2,64}, {18,64}, {35,64}, {51,64}, {92,64}, {134,64}, {150,64}, {165,64}, {179,64}, {194,64}, {209,64}, {223,64},
|
||||
},
|
||||
{
|
||||
// RGB LED Index to Flag
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1
|
||||
}
|
||||
};
|
||||
|
||||
#endif // RGB_MATRIX_ENABLE
|
|
@ -0,0 +1,67 @@
|
|||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// clang-format off
|
||||
|
||||
enum layers{
|
||||
MAC_BASE,
|
||||
WIN_BASE,
|
||||
_FN1,
|
||||
_FN2,
|
||||
_FN3
|
||||
};
|
||||
|
||||
#define KC_TASK LGUI(KC_TAB)
|
||||
#define KC_FLXP LGUI(KC_E)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[MAC_BASE] = LAYOUT_jis_71(
|
||||
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_INT3, KC_BSPC, KC_INS,
|
||||
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_DEL,
|
||||
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_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, MO(_FN1), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[WIN_BASE] = LAYOUT_jis_71(
|
||||
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_INT3, KC_BSPC, KC_INS,
|
||||
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_DEL,
|
||||
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_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_FN1] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN2] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN3] = LAYOUT_jis_71(
|
||||
KC_TILD, 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_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
};
|
|
@ -0,0 +1,74 @@
|
|||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "keychron_common.h"
|
||||
|
||||
// clang-format off
|
||||
|
||||
enum layers{
|
||||
MAC_BASE,
|
||||
WIN_BASE,
|
||||
_FN1,
|
||||
_FN2,
|
||||
_FN3
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[MAC_BASE] = LAYOUT_jis_71(
|
||||
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_INT3, KC_BSPC, KC_INS,
|
||||
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_DEL,
|
||||
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_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LOPTN, KC_LCMMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMMD, MO(_FN1), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[WIN_BASE] = LAYOUT_jis_71(
|
||||
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_INT3, KC_BSPC, KC_INS,
|
||||
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_DEL,
|
||||
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_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_FN1] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN2] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN3] = LAYOUT_jis_71(
|
||||
KC_TILD, 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_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
};
|
||||
|
||||
// clang-format on
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if (!process_record_keychron(keycode, record)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
VIA_ENABLE = yes
|
||||
|
||||
VPATH += keyboards/keychron/common
|
||||
SRC += keychron_common.c
|
|
@ -0,0 +1,67 @@
|
|||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// clang-format off
|
||||
|
||||
enum layers{
|
||||
MAC_BASE,
|
||||
WIN_BASE,
|
||||
_FN1,
|
||||
_FN2,
|
||||
_FN3
|
||||
};
|
||||
|
||||
#define KC_TASK LGUI(KC_TAB)
|
||||
#define KC_FLXP LGUI(KC_E)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[MAC_BASE] = LAYOUT_jis_71(
|
||||
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_INT3, KC_BSPC, KC_INS,
|
||||
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_DEL,
|
||||
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_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, MO(_FN1), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[WIN_BASE] = LAYOUT_jis_71(
|
||||
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_INT3, KC_BSPC, KC_INS,
|
||||
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_DEL,
|
||||
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_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_FN1] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN2] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN3] = LAYOUT_jis_71(
|
||||
KC_TILD, 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_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
};
|
|
@ -0,0 +1 @@
|
|||
VIA_ENABLE = yes
|
|
@ -0,0 +1,21 @@
|
|||
# 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
|
||||
NKRO_ENABLE = yes # Enable USB N-key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
DIP_SWITCH_ENABLE = yes
|
||||
RGB_MATRIX_ENABLE = yes
|
||||
RGB_MATRIX_DRIVER = CKLED2001
|
||||
EEPROM_DRIVER = wear_leveling
|
||||
WEAR_LEVELING_DRIVER = embedded_flash
|
||||
|
||||
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
/* RGB Matrix Configuration */
|
||||
#define DRIVER_1_LED_TOTAL 35
|
||||
#define DRIVER_2_LED_TOTAL 36
|
||||
#define RGB_MATRIX_LED_COUNT (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
|
||||
|
||||
#define CKLED2001_CURRENT_TUNE { 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D, 0xC0, 0xC0, 0x5D }
|
||||
|
||||
/* Encoder Configuration */
|
||||
#define ENCODERS_PAD_A { A10 }
|
||||
#define ENCODERS_PAD_B { B5 }
|
||||
#define ENCODER_RESOLUTION 4
|
||||
#define ENCODER_DEFAULT_POS 0x3
|
||||
|
||||
/* Enable caps-lock LED */
|
||||
#define CAPS_LOCK_LED_INDEX 30
|
|
@ -0,0 +1,94 @@
|
|||
{
|
||||
"keyboard_name": "Keychron Q2",
|
||||
"manufacturer": "Keychron",
|
||||
"url": "https://github.com/Keychron",
|
||||
"maintainer": "lalalademaxiya1",
|
||||
"usb": {
|
||||
"vid": "0x3434",
|
||||
"pid": "0x0115",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"processor": "STM32L432",
|
||||
"bootloader": "stm32-dfu",
|
||||
"layouts": {
|
||||
"LAYOUT_jis_71": {
|
||||
"layout": [
|
||||
{"matrix":[0, 0], "x":0, "y":0.25},
|
||||
{"matrix":[0, 1], "x":1, "y":0.25},
|
||||
{"matrix":[0, 2], "x":2, "y":0.25},
|
||||
{"matrix":[0, 3], "x":3, "y":0.25},
|
||||
{"matrix":[0, 4], "x":4, "y":0.25},
|
||||
{"matrix":[0, 5], "x":5, "y":0.25},
|
||||
{"matrix":[0, 6], "x":6, "y":0.25},
|
||||
{"matrix":[0, 7], "x":7, "y":0.25},
|
||||
{"matrix":[0, 8], "x":8, "y":0.25},
|
||||
{"matrix":[0, 9], "x":9, "y":0.25},
|
||||
{"matrix":[0,10], "x":10, "y":0.25},
|
||||
{"matrix":[0,11], "x":11, "y":0.25},
|
||||
{"matrix":[0,12], "x":12, "y":0.25},
|
||||
{"matrix":[0,13], "x":13, "y":0.25},
|
||||
{"matrix":[3, 1], "x":14, "y":0.25},
|
||||
{"matrix":[0,14], "x":15.25, "y":0},
|
||||
|
||||
{"matrix":[1, 0], "x":0, "y":1.25, "w":1.5},
|
||||
{"matrix":[1, 1], "x":1.5, "y":1.25},
|
||||
{"matrix":[1, 2], "x":2.5, "y":1.25},
|
||||
{"matrix":[1, 3], "x":3.5, "y":1.25},
|
||||
{"matrix":[1, 4], "x":4.5, "y":1.25},
|
||||
{"matrix":[1, 5], "x":5.5, "y":1.25},
|
||||
{"matrix":[1, 6], "x":6.5, "y":1.25},
|
||||
{"matrix":[1, 7], "x":7.5, "y":1.25},
|
||||
{"matrix":[1, 8], "x":8.5, "y":1.25},
|
||||
{"matrix":[1, 9], "x":9.5, "y":1.25},
|
||||
{"matrix":[1,10], "x":10.5, "y":1.25},
|
||||
{"matrix":[1,11], "x":11.5, "y":1.25},
|
||||
{"matrix":[1,12], "x":12.5, "y":1.25},
|
||||
{"matrix":[1,14], "x":15.25, "y":1.25},
|
||||
|
||||
{"matrix":[2, 0], "x":0, "y":2.25, "w":1.75},
|
||||
{"matrix":[2, 1], "x":1.75, "y":2.25},
|
||||
{"matrix":[2, 2], "x":2.75, "y":2.25},
|
||||
{"matrix":[2, 3], "x":3.75, "y":2.25},
|
||||
{"matrix":[2, 4], "x":4.75, "y":2.25},
|
||||
{"matrix":[2, 5], "x":5.75, "y":2.25},
|
||||
{"matrix":[2, 6], "x":6.75, "y":2.25},
|
||||
{"matrix":[2, 7], "x":7.75, "y":2.25},
|
||||
{"matrix":[2, 8], "x":8.75, "y":2.25},
|
||||
{"matrix":[2, 9], "x":9.75, "y":2.25},
|
||||
{"matrix":[2,10], "x":10.75, "y":2.25},
|
||||
{"matrix":[2,11], "x":11.75, "y":2.25},
|
||||
{"matrix":[2,13], "x":12.75, "y":2.25},
|
||||
{"matrix":[1,13], "x":13.75, "y":1.25, "w":1.25, "h":2},
|
||||
{"matrix":[2,14], "x":15.25, "y":2.25},
|
||||
|
||||
{"matrix":[3, 0], "x":0, "y":3.25, "w":2.25},
|
||||
{"matrix":[3, 2], "x":2.25, "y":3.25},
|
||||
{"matrix":[3, 3], "x":3.25, "y":3.25},
|
||||
{"matrix":[3, 4], "x":4.25, "y":3.25},
|
||||
{"matrix":[3, 5], "x":5.25, "y":3.25},
|
||||
{"matrix":[3, 6], "x":6.25, "y":3.25},
|
||||
{"matrix":[3, 7], "x":7.25, "y":3.25},
|
||||
{"matrix":[3, 8], "x":8.25, "y":3.25},
|
||||
{"matrix":[3, 9], "x":9.25, "y":3.25},
|
||||
{"matrix":[3,10], "x":10.25, "y":3.25},
|
||||
{"matrix":[3,11], "x":11.25, "y":3.25},
|
||||
{"matrix":[3,12], "x":12.25, "y":3.25},
|
||||
{"matrix":[3,13], "x":13.25, "y":3.25},
|
||||
{"matrix":[3,14], "x":14.25, "y":3.25},
|
||||
|
||||
{"matrix":[4, 0], "x":0, "y":4.25, "w":1.25},
|
||||
{"matrix":[4, 1], "x":1.25, "y":4.25},
|
||||
{"matrix":[4, 2], "x":2.25, "y":4.25, "w":1.25},
|
||||
{"matrix":[4, 3], "x":3.5, "y":4.25},
|
||||
{"matrix":[4, 6], "x":4.5, "y":4.25, "w":4.5},
|
||||
{"matrix":[4, 9], "x":9, "y":4.25, "w":1.25},
|
||||
{"matrix":[4,10], "x":10.25, "y":4.25},
|
||||
{"matrix":[4,11], "x":11.25, "y":4.25},
|
||||
{"matrix":[4,12], "x":12.25, "y":4.25},
|
||||
{"matrix":[4,13], "x":13.25, "y":4.25},
|
||||
{"matrix":[2,12], "x":14.25, "y":4.25},
|
||||
{"matrix":[4,14], "x":15.25, "y":4.25}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,134 @@
|
|||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
|
||||
const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {
|
||||
/* Refer to IS31 manual for these locations
|
||||
* driver
|
||||
* | R location
|
||||
* | | G location
|
||||
* | | | B location
|
||||
* | | | | */
|
||||
{0, C_1, A_1, B_1},
|
||||
{0, C_2, A_2, B_2},
|
||||
{0, C_3, A_3, B_3},
|
||||
{0, C_4, A_4, B_4},
|
||||
{0, C_5, A_5, B_5},
|
||||
{0, C_6, A_6, B_6},
|
||||
{0, C_7, A_7, B_7},
|
||||
{0, C_8, A_8, B_8},
|
||||
{0, C_9, A_9, B_9},
|
||||
{0, C_10, A_10, B_10},
|
||||
{0, C_11, A_11, B_11},
|
||||
{0, C_12, A_12, B_12},
|
||||
{0, C_13, A_13, B_13},
|
||||
{0, C_14, A_14, B_14},
|
||||
{0, C_15, A_15, B_15},
|
||||
{0, C_16, A_16, B_16},
|
||||
|
||||
{0, F_1, D_1, E_1},
|
||||
{0, F_2, D_2, E_2},
|
||||
{0, F_3, D_3, E_3},
|
||||
{0, F_4, D_4, E_4},
|
||||
{0, F_5, D_5, E_5},
|
||||
{0, F_6, D_6, E_6},
|
||||
{0, F_7, D_7, E_7},
|
||||
{0, F_8, D_8, E_8},
|
||||
{0, F_9, D_9, E_9},
|
||||
{0, F_10, D_10, E_10},
|
||||
{0, F_11, D_11, E_11},
|
||||
{0, F_12, D_12, E_12},
|
||||
{0, F_13, D_13, E_13},
|
||||
{0, F_16, D_16, E_16},
|
||||
|
||||
{0, I_1, G_1, H_1},
|
||||
{0, I_2, G_2, H_2},
|
||||
{0, I_3, G_3, H_3},
|
||||
{0, I_4, G_4, H_4},
|
||||
{0, I_5, G_5, H_5},
|
||||
{1, I_6, G_6, H_6},
|
||||
{1, I_7, G_7, H_7},
|
||||
{1, I_8, G_8, H_8},
|
||||
{1, I_9, G_9, H_9},
|
||||
{1, I_10, G_10, H_10},
|
||||
{1, I_11, G_11, H_11},
|
||||
{1, I_12, G_12, H_12},
|
||||
{1, I_14, G_14, H_14},
|
||||
{0, F_14, D_14, E_14},
|
||||
{1, I_16, G_16, H_16},
|
||||
|
||||
{1, C_1, A_1, B_1},
|
||||
{1, C_3, A_3, B_3},
|
||||
{1, C_4, A_4, B_4},
|
||||
{1, C_5, A_5, B_5},
|
||||
{1, C_6, A_6, B_6},
|
||||
{1, C_7, A_7, B_7},
|
||||
{1, C_8, A_8, B_8},
|
||||
{1, C_9, A_9, B_9},
|
||||
{1, C_10, A_10, B_10},
|
||||
{1, C_11, A_11, B_11},
|
||||
{1, C_12, A_12, B_12},
|
||||
{1, C_13, A_13, B_13},
|
||||
{1, C_14, A_14, B_14},
|
||||
{1, C_15, A_15, B_15},
|
||||
|
||||
{1, F_1, D_1, E_1},
|
||||
{1, F_2, D_2, E_2},
|
||||
{1, F_3, D_3, E_3},
|
||||
{1, F_4, D_4, E_4},
|
||||
{1, F_7, D_7, E_7},
|
||||
{1, F_10, D_10, E_10},
|
||||
{1, F_11, D_11, E_11},
|
||||
{1, F_12, D_12, E_12},
|
||||
{1, F_13, D_13, E_13},
|
||||
{1, F_14, D_14, E_14},
|
||||
{1, F_15, D_15, E_15},
|
||||
{1, F_16, D_16, E_16}
|
||||
};
|
||||
|
||||
#define __ NO_LED
|
||||
|
||||
led_config_t g_led_config = {
|
||||
{
|
||||
// Key Matrix to LED Index
|
||||
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 },
|
||||
{ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 43, 29 },
|
||||
{ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 69, 42, 44 },
|
||||
{ 45, 14, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 },
|
||||
{ 59, 60, 61, 62, __, __, 63, __, __, 64, 65, 66, 67, 68, 70 },
|
||||
},
|
||||
{
|
||||
// LED Index to Physical Position
|
||||
{0,4}, {15,4}, {29,4}, {44,4}, {59,4}, {73,4}, {88,4}, {103,4}, {117,4}, {132,4}, {146,4}, {161,4}, {176,4}, {190,4}, {205,4}, {224,0},
|
||||
{4,19}, {22,19}, {37,19}, {51,19}, {66,19}, {81,19}, {95,19}, {110,19}, {125,19}, {139,19}, {154,19}, {168,19}, {183,19}, {224,19},
|
||||
{6,34}, {26,34}, {40,34}, {55,34}, {70,34}, {84,34}, {99,34}, {114,34}, {128,34}, {143,34}, {158,34}, {172,34}, {187,34}, {207,29}, {224,34},
|
||||
{9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {150,49}, {165,49}, {179,49}, {194,49}, {209,49},
|
||||
{2,64}, {18,64}, {35,64}, {51,64}, {92,64}, {134,64}, {150,64}, {165,64}, {179,64}, {194,64}, {209,64}, {223,64},
|
||||
},
|
||||
{
|
||||
// RGB LED Index to Flag
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
|
||||
}
|
||||
};
|
||||
|
||||
#endif // RGB_MATRIX_ENABLE
|
|
@ -0,0 +1,77 @@
|
|||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// clang-format off
|
||||
|
||||
enum layers{
|
||||
MAC_BASE,
|
||||
WIN_BASE,
|
||||
_FN1,
|
||||
_FN2,
|
||||
_FN3
|
||||
};
|
||||
|
||||
#define KC_TASK LGUI(KC_TAB)
|
||||
#define KC_FLXP LGUI(KC_E)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[MAC_BASE] = LAYOUT_jis_71(
|
||||
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_INT3, KC_BSPC, KC_MUTE,
|
||||
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_DEL,
|
||||
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_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, MO(_FN1), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[WIN_BASE] = LAYOUT_jis_71(
|
||||
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_INT3, KC_BSPC, KC_MUTE,
|
||||
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_DEL,
|
||||
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_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_FN1] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN2] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN3] = LAYOUT_jis_71(
|
||||
KC_TILD, 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_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
};
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||
[MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||
[WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||
[_FN1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
||||
[_FN2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
||||
[_FN3] = { ENCODER_CCW_CW(_______, _______)}
|
||||
};
|
||||
#endif // ENCODER_MAP_ENABLE
|
|
@ -0,0 +1 @@
|
|||
ENCODER_MAP_ENABLE = yes
|
|
@ -0,0 +1,84 @@
|
|||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "keychron_common.h"
|
||||
|
||||
// clang-format off
|
||||
|
||||
enum layers{
|
||||
MAC_BASE,
|
||||
WIN_BASE,
|
||||
_FN1,
|
||||
_FN2,
|
||||
_FN3
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[MAC_BASE] = LAYOUT_jis_71(
|
||||
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_INT3, KC_BSPC, KC_MUTE,
|
||||
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_DEL,
|
||||
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_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LOPTN, KC_LCMMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMMD, MO(_FN1), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[WIN_BASE] = LAYOUT_jis_71(
|
||||
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_INT3, KC_BSPC, KC_MUTE,
|
||||
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_DEL,
|
||||
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_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_FN1] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_MCTL, KC_LPAD, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN2] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN3] = LAYOUT_jis_71(
|
||||
KC_TILD, 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_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
};
|
||||
|
||||
// clang-format on
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||
[MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||
[WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||
[_FN1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
||||
[_FN2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
||||
[_FN3] = { ENCODER_CCW_CW(_______, _______)}
|
||||
};
|
||||
#endif // ENCODER_MAP_ENABLE
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
if (!process_record_keychron(keycode, record)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
VIA_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
||||
|
||||
VPATH += keyboards/keychron/common
|
||||
SRC += keychron_common.c
|
|
@ -0,0 +1,77 @@
|
|||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// clang-format off
|
||||
|
||||
enum layers{
|
||||
MAC_BASE,
|
||||
WIN_BASE,
|
||||
_FN1,
|
||||
_FN2,
|
||||
_FN3
|
||||
};
|
||||
|
||||
#define KC_TASK LGUI(KC_TAB)
|
||||
#define KC_FLXP LGUI(KC_E)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[MAC_BASE] = LAYOUT_jis_71(
|
||||
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_INT3, KC_BSPC, KC_MUTE,
|
||||
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_DEL,
|
||||
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_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LOPT, KC_LCMD, KC_LNG2, KC_SPC, KC_LNG1, KC_RCMD, MO(_FN1), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[WIN_BASE] = LAYOUT_jis_71(
|
||||
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_INT3, KC_BSPC, KC_MUTE,
|
||||
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_DEL,
|
||||
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_HOME,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_INT1, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LWIN, KC_LALT, KC_INT5, KC_SPC, KC_INT4, KC_RALT, MO(_FN2), MO(_FN3), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[_FN1] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_NO, KC_NO, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN2] = LAYOUT_jis_71(
|
||||
KC_GRV, KC_BRID, KC_BRIU, KC_TASK, KC_FLXP, RGB_VAD, RGB_VAI, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, RGB_TOG,
|
||||
RGB_TOG, RGB_MOD, RGB_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||
|
||||
[_FN3] = LAYOUT_jis_71(
|
||||
KC_TILD, 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_VAI, RGB_HUI, RGB_SAI, RGB_SPI, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, RGB_RMOD, RGB_VAD, RGB_HUD, RGB_SAD, RGB_SPD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______)
|
||||
};
|
||||
|
||||
#if defined(ENCODER_MAP_ENABLE)
|
||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
|
||||
[MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||
[WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)},
|
||||
[_FN1] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
||||
[_FN2] = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI)},
|
||||
[_FN3] = { ENCODER_CCW_CW(_______, _______)}
|
||||
};
|
||||
#endif // ENCODER_MAP_ENABLE
|
|
@ -0,0 +1,2 @@
|
|||
VIA_ENABLE = yes
|
||||
ENCODER_MAP_ENABLE = yes
|
|
@ -0,0 +1,22 @@
|
|||
# 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
|
||||
NKRO_ENABLE = yes # Enable USB N-key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
ENCODER_ENABLE = yes # Enable Encoder
|
||||
DIP_SWITCH_ENABLE = yes
|
||||
RGB_MATRIX_ENABLE = yes
|
||||
RGB_MATRIX_DRIVER = CKLED2001
|
||||
EEPROM_DRIVER = wear_leveling
|
||||
WEAR_LEVELING_DRIVER = embedded_flash
|
||||
|
||||
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
/* Copyright 2021 @ Keychron (https://www.keychron.com)
|
||||
/* Copyright 2023 @ Keychron (https://www.keychron.com)
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
|
@ -35,3 +35,45 @@ bool dip_switch_update_kb(uint8_t index, bool active) {
|
|||
}
|
||||
|
||||
#endif // DIP_SWITCH_ENABLE
|
||||
|
||||
#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX)
|
||||
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||
if (!process_record_user(keycode, record)) { return false; }
|
||||
switch (keycode) {
|
||||
case RGB_TOG:
|
||||
if (record->event.pressed) {
|
||||
switch (rgb_matrix_get_flags()) {
|
||||
case LED_FLAG_ALL: {
|
||||
rgb_matrix_set_flags(LED_FLAG_NONE);
|
||||
rgb_matrix_set_color_all(0, 0, 0);
|
||||
} break;
|
||||
default: {
|
||||
rgb_matrix_set_flags(LED_FLAG_ALL);
|
||||
} break;
|
||||
}
|
||||
}
|
||||
if (!rgb_matrix_is_enabled()) {
|
||||
rgb_matrix_set_flags(LED_FLAG_ALL);
|
||||
rgb_matrix_enable();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
|
||||
if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) { return false; }
|
||||
// RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue);
|
||||
|
||||
if (host_keyboard_led_state().caps_lock) {
|
||||
RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 255, 255, 255);
|
||||
} else {
|
||||
if (!rgb_matrix_get_flags()) {
|
||||
RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 0, 0, 0);
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
#endif // CAPS_LOCK_LED_INDEX
|
||||
|
|
|
@ -8,11 +8,11 @@ A customizable 65% keyboard.
|
|||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make keychron/q2/ansi:default
|
||||
make keychron/q2/ansi:default
|
||||
|
||||
Flashing example for this keyboard ([after setting up the bootloadHID flashing environment](https://docs.qmk.fm/#/flashing_bootloadhid))
|
||||
|
||||
make keychron/q2/ansi:default:flash
|
||||
make keychron/q2/ansi:default:flash
|
||||
|
||||
**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard.
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"maintainer": "lalalademaxiya1",
|
||||
"usb": {
|
||||
"vid": "0x3434",
|
||||
"pid": "0x01A1",
|
||||
"pid": "0x03A1",
|
||||
"device_version": "1.0.0"
|
||||
},
|
||||
"processor": "STM32L432",
|
||||
|
|
|
@ -14,45 +14,20 @@ 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
|
||||
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 6
|
||||
#define MATRIX_COLS 17
|
||||
|
||||
/*
|
||||
* 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)
|
||||
*
|
||||
*/
|
||||
|
||||
// Checked with Eagle Schematic
|
||||
#define MATRIX_ROW_PINS { B1, B2, B3, D3, D1, D0 }
|
||||
#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4, B0, B7, E6}
|
||||
|
||||
/* COL2ROW or ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* Define RGB */
|
||||
#define RGBLED_NUM 86
|
||||
#define RGB_MATRIX_LED_COUNT 86
|
||||
#define RGB_DI_PIN D2
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
|
||||
#define RGB_MATRIX_LED_COUNT 126
|
||||
#define RGB_DI_PIN D2
|
||||
|
||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED
|
||||
#define RGB_MATRIX_KEYPRESSES
|
||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
|
||||
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120
|
||||
|
||||
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_ALL
|
||||
#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_CYCLE_LEFT_RIGHT
|
||||
|
||||
#define ENABLE_RGB_MATRIX_ALPHAS_MODS
|
||||
#define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
|
||||
|
@ -107,4 +82,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||
#define ENABLE_RGB_MATRIX_SOLID_SPLASH
|
||||
#define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
|
||||
|
||||
#define EECONFIG_KB_DATA_SIZE 4
|
||||
|
||||
#define CAPS_INDICATOR_INDEX 12
|
||||
|
||||
#endif
|
||||
|
|
|
@ -1,44 +0,0 @@
|
|||
/*
|
||||
Copyright 2020 <contact@vwolf.be>
|
||||
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 "fave84h.h"
|
||||
|
||||
#ifdef RGB_MATRIX_ENABLE
|
||||
led_config_t g_led_config = {
|
||||
{
|
||||
// Key Matrix to LED Index
|
||||
{ 47, NO_LED, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62 },
|
||||
{ 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30 },
|
||||
{ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
|
||||
{ 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, NO_LED, 0, NO_LED, NO_LED, NO_LED },
|
||||
{ 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, NO_LED, 84, NO_LED, NO_LED, 85, NO_LED },
|
||||
{ 72, 71, 70, NO_LED, NO_LED, 69, NO_LED, NO_LED, NO_LED, NO_LED, 68, NO_LED, 67, 66, 65, 64, 63 },
|
||||
}, {
|
||||
// LED Index to Physical Position
|
||||
{ 0, 0 }, { 28, 0 }, { 42, 0 }, { 57, 0 }, { 71, 0 }, { 92, 0 }, { 106, 0 }, { 120, 0 }, { 134, 0 }, { 156, 0 }, { 170, 0 }, { 184, 0 }, { 198, 0 }, { 216, 0 }, { 230, 0 }, { 244, 0 },
|
||||
{ 0, 15 }, { 14, 15 }, { 28, 15 }, { 42, 15 }, { 57, 15 }, { 71, 15 }, { 85, 15 }, { 99, 15 }, { 113, 15 }, { 127, 15 }, { 141, 15 }, { 156, 15 }, { 170, 15 }, { 191, 17 }, { 216, 15 }, { 230, 15 }, { 244, 15 },
|
||||
{ 4, 27 }, { 21, 27 }, { 35, 27 }, { 50, 27 }, { 64, 27 }, { 78, 27 }, { 92, 27 }, { 106, 27 }, { 120, 27 }, { 134, 27 }, { 149, 27 }, { 163, 27 }, { 177, 27 }, { 194, 27 }, { 216, 27 }, { 230, 27 }, { 244, 27 },
|
||||
{ 10, 40 }, { 25, 40 }, { 39, 40 }, { 53, 40 }, { 67, 40 }, { 81, 40 }, { 95, 40 }, { 110, 40 }, { 124, 40 }, { 138, 40 }, { 152, 40 }, { 166, 40 }, { 189, 40 },
|
||||
{ 9, 52 }, { 32, 52 }, { 46, 52 }, { 60, 52 }, { 74, 52 }, { 88, 52 }, { 103, 52 }, { 117, 52 }, { 131, 52 }, { 145, 52 }, { 159, 52 }, { 186, 52 }, { 230, 52 },
|
||||
{ 4, 64 }, { 21, 64 }, { 39, 64 }, { 99, 64 }, { 159, 64 }, { 177, 64 }, { 194, 64 }, { 216, 64 }, { 230, 64 }, { 244, 64 }
|
||||
}, {
|
||||
// LED Index to Flag
|
||||
1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1,
|
||||
9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1,
|
||||
1, 1, 1, 4, 1, 1, 1, 1, 1, 1
|
||||
}
|
||||
};
|
||||
#endif
|
|
@ -1,69 +0,0 @@
|
|||
/*
|
||||
Copyright 2020 <contact@vwolf.be>
|
||||
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 ___ KC_NO
|
||||
|
||||
/*
|
||||
* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐
|
||||
* │00 │ │02 │03 │04 │05 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ │0E │0F │0G │
|
||||
* └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘
|
||||
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───────┐
|
||||
* │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │3C │ │1E │1F │1G │ │1D │ 2u Backspace
|
||||
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ └───────┘
|
||||
* │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2E │2F │2G │
|
||||
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘
|
||||
* │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │
|
||||
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐
|
||||
* │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4C │ │4F │
|
||||
* ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐
|
||||
* │50 │51 │52 │55 │5A │5C │5D │ │5E │5F │5G │
|
||||
* └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘
|
||||
*/
|
||||
|
||||
/* FAve 84H Keymap Definitions */
|
||||
#define LAYOUT_tkl_ansi_tsangan_split_bs( \
|
||||
K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3C, K1E, K1F, K1G, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
|
||||
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4F, \
|
||||
K50, K51, K52, K55, K5A, K5C, K5D, K5E, K5F, K5G \
|
||||
) { \
|
||||
{ K00, ___, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, ___, ___, ___ }, \
|
||||
{ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, ___, K4C, ___, ___, K4F, ___ }, \
|
||||
{ K50, K51, K52, ___, ___, K55, ___, ___, ___, ___, K5A, ___, K5C, K5D, K5E, K5F, K5G } \
|
||||
}
|
||||
|
||||
#define LAYOUT_tkl_ansi_tsangan( \
|
||||
K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
|
||||
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4F, \
|
||||
K50, K51, K52, K55, K5A, K5C, K5D, K5E, K5F, K5G \
|
||||
) { \
|
||||
{ K00, ___, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, ___, ___, ___ }, \
|
||||
{ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, ___, K4C, ___, ___, K4F, ___ }, \
|
||||
{ K50, K51, K52, ___, ___, K55, ___, ___, ___, ___, K5A, ___, K5C, K5D, K5E, K5F, K5G } \
|
||||
}
|
|
@ -1,12 +1,160 @@
|
|||
{
|
||||
"keyboard_name": "FAve 84H",
|
||||
"manufacturer": "Lx3",
|
||||
"url": "",
|
||||
"keyboard_name": "FAve 84H",
|
||||
"maintainer": "ToastyStoemp",
|
||||
"bootloader": "atmel-dfu",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"rgb_matrix": true,
|
||||
"rgblight": false
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "B0", "B7", "E6"],
|
||||
"rows": ["B1", "B2", "B3", "D3", "D1", "D0"]
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"rgb_matrix": {
|
||||
"driver": "WS2812",
|
||||
"layout": [
|
||||
{ "flags": 1, "matrix": [3, 13], "x": 190, "y": 40 },
|
||||
{ "flags": 4, "matrix": [3, 11], "x": 167, "y": 40 },
|
||||
{ "flags": 4, "matrix": [3, 10], "x": 153, "y": 40 },
|
||||
{ "flags": 4, "matrix": [3, 9], "x": 139, "y": 40 },
|
||||
{ "flags": 4, "matrix": [3, 8], "x": 125, "y": 40 },
|
||||
{ "flags": 4, "matrix": [3, 7], "x": 111, "y": 40 },
|
||||
{ "flags": 4, "matrix": [3, 6], "x": 97, "y": 40 },
|
||||
{ "flags": 4, "matrix": [3, 5], "x": 83, "y": 40 },
|
||||
{ "flags": 4, "matrix": [3, 4], "x": 69, "y": 40 },
|
||||
{ "flags": 4, "matrix": [3, 3], "x": 55, "y": 40 },
|
||||
{ "flags": 4, "matrix": [3, 2], "x": 41, "y": 40 },
|
||||
{ "flags": 4, "matrix": [3, 1], "x": 27, "y": 40 },
|
||||
{ "flags": 1, "matrix": [3, 0], "x": 0, "y": 41 },
|
||||
{ "flags": 1, "matrix": [2, 0], "x": 6, "y": 27 },
|
||||
{ "flags": 4, "matrix": [2, 1], "x": 23, "y": 27 },
|
||||
{ "flags": 4, "matrix": [2, 2], "x": 37, "y": 27 },
|
||||
{ "flags": 4, "matrix": [2, 3], "x": 51, "y": 27 },
|
||||
{ "flags": 4, "matrix": [2, 4], "x": 65, "y": 27 },
|
||||
{ "flags": 4, "matrix": [2, 5], "x": 79, "y": 27 },
|
||||
{ "flags": 4, "matrix": [2, 6], "x": 93, "y": 27 },
|
||||
{ "flags": 4, "matrix": [2, 7], "x": 107, "y": 27 },
|
||||
{ "flags": 4, "matrix": [2, 8], "x": 121, "y": 27 },
|
||||
{ "flags": 4, "matrix": [2, 9], "x": 135, "y": 27 },
|
||||
{ "flags": 4, "matrix": [2, 10], "x": 149, "y": 27 },
|
||||
{ "flags": 4, "matrix": [2, 11], "x": 163, "y": 27 },
|
||||
{ "flags": 4, "matrix": [2, 12], "x": 177, "y": 27 },
|
||||
{ "flags": 1, "matrix": [2, 13], "x": 195, "y": 27 },
|
||||
{ "flags": 1, "matrix": [2, 14], "x": 216, "y": 27 },
|
||||
{ "flags": 1, "matrix": [2, 15], "x": 230, "y": 27 },
|
||||
{ "flags": 1, "matrix": [2, 16], "x": 244, "y": 27 },
|
||||
{ "flags": 1, "matrix": [1, 16], "x": 244, "y": 15 },
|
||||
{ "flags": 1, "matrix": [1, 15], "x": 230, "y": 15 },
|
||||
{ "flags": 1, "matrix": [1, 14], "x": 216, "y": 15 },
|
||||
{ "flags": 1, "matrix": [1, 13], "x": 191, "y": 17 },
|
||||
{ "flags": 4, "matrix": [1, 12], "x": 170, "y": 15 },
|
||||
{ "flags": 4, "matrix": [1, 11], "x": 156, "y": 15 },
|
||||
{ "flags": 4, "matrix": [1, 10], "x": 142, "y": 15 },
|
||||
{ "flags": 4, "matrix": [1, 9], "x": 128, "y": 15 },
|
||||
{ "flags": 4, "matrix": [1, 8], "x": 114, "y": 15 },
|
||||
{ "flags": 4, "matrix": [1, 7], "x": 100, "y": 15 },
|
||||
{ "flags": 4, "matrix": [1, 6], "x": 86, "y": 15 },
|
||||
{ "flags": 4, "matrix": [1, 5], "x": 72, "y": 15 },
|
||||
{ "flags": 4, "matrix": [1, 4], "x": 58, "y": 15 },
|
||||
{ "flags": 4, "matrix": [1, 3], "x": 44, "y": 15 },
|
||||
{ "flags": 4, "matrix": [1, 2], "x": 30, "y": 15 },
|
||||
{ "flags": 4, "matrix": [1, 1], "x": 16, "y": 15 },
|
||||
{ "flags": 1, "matrix": [1, 0], "x": 2, "y": 15 },
|
||||
{ "flags": 1, "matrix": [0, 0], "x": 2, "y": 0 },
|
||||
{ "flags": 1, "matrix": [0, 2], "x": 30, "y": 0 },
|
||||
{ "flags": 1, "matrix": [0, 3], "x": 44, "y": 0 },
|
||||
{ "flags": 1, "matrix": [0, 4], "x": 58, "y": 0 },
|
||||
{ "flags": 1, "matrix": [0, 5], "x": 72, "y": 0 },
|
||||
{ "flags": 1, "matrix": [0, 6], "x": 93, "y": 0 },
|
||||
{ "flags": 1, "matrix": [0, 7], "x": 107, "y": 0 },
|
||||
{ "flags": 1, "matrix": [0, 8], "x": 121, "y": 0 },
|
||||
{ "flags": 1, "matrix": [0, 9], "x": 135, "y": 0 },
|
||||
{ "flags": 1, "matrix": [0, 10], "x": 156, "y": 0 },
|
||||
{ "flags": 1, "matrix": [0, 11], "x": 170, "y": 0 },
|
||||
{ "flags": 1, "matrix": [0, 12], "x": 184, "y": 0 },
|
||||
{ "flags": 1, "matrix": [0, 13], "x": 198, "y": 0 },
|
||||
{ "flags": 1, "matrix": [0, 14], "x": 216, "y": 0 },
|
||||
{ "flags": 1, "matrix": [0, 15], "x": 230, "y": 0 },
|
||||
{ "flags": 1, "matrix": [0, 16], "x": 244, "y": 0 },
|
||||
{ "flags": 1, "matrix": [5, 16], "x": 244, "y": 64 },
|
||||
{ "flags": 1, "matrix": [5, 15], "x": 230, "y": 64 },
|
||||
{ "flags": 1, "matrix": [5, 14], "x": 216, "y": 64 },
|
||||
{ "flags": 1, "matrix": [5, 13], "x": 195, "y": 64 },
|
||||
{ "flags": 1, "matrix": [5, 12], "x": 177, "y": 64 },
|
||||
{ "flags": 1, "matrix": [5, 10], "x": 160, "y": 64 },
|
||||
{ "flags": 1, "matrix": [5, 5], "x": 100, "y": 64 },
|
||||
{ "flags": 1, "matrix": [5, 2], "x": 41, "y": 64 },
|
||||
{ "flags": 1, "matrix": [5, 1], "x": 23, "y": 64 },
|
||||
{ "flags": 1, "matrix": [5, 0], "x": 6, "y": 64 },
|
||||
{ "flags": 1, "matrix": [4, 0], "x": 11, "y": 52 },
|
||||
{ "flags": 4, "matrix": [4, 1], "x": 34, "y": 52 },
|
||||
{ "flags": 4, "matrix": [4, 2], "x": 48, "y": 52 },
|
||||
{ "flags": 4, "matrix": [4, 3], "x": 62, "y": 52 },
|
||||
{ "flags": 4, "matrix": [4, 4], "x": 76, "y": 52 },
|
||||
{ "flags": 4, "matrix": [4, 5], "x": 90, "y": 52 },
|
||||
{ "flags": 4, "matrix": [4, 6], "x": 104, "y": 52 },
|
||||
{ "flags": 4, "matrix": [4, 7], "x": 118, "y": 52 },
|
||||
{ "flags": 4, "matrix": [4, 8], "x": 132, "y": 52 },
|
||||
{ "flags": 4, "matrix": [4, 9], "x": 146, "y": 52 },
|
||||
{ "flags": 4, "matrix": [4, 10], "x": 160, "y": 52 },
|
||||
{ "flags": 1, "matrix": [4, 12], "x": 186, "y": 52 },
|
||||
{ "flags": 1, "matrix": [4, 15], "x": 230, "y": 52 },
|
||||
{ "flags": 2, "x": 242, "y": 55 },
|
||||
{ "flags": 2, "x": 227, "y": 55 },
|
||||
{ "flags": 2, "x": 212, "y": 55 },
|
||||
{ "flags": 2, "x": 198, "y": 55 },
|
||||
{ "flags": 2, "x": 183, "y": 55 },
|
||||
{ "flags": 2, "x": 168, "y": 55 },
|
||||
{ "flags": 2, "x": 153, "y": 55 },
|
||||
{ "flags": 2, "x": 138, "y": 55 },
|
||||
{ "flags": 2, "x": 123, "y": 55 },
|
||||
{ "flags": 2, "x": 108, "y": 55 },
|
||||
{ "flags": 2, "x": 93, "y": 55 },
|
||||
{ "flags": 2, "x": 78, "y": 55 },
|
||||
{ "flags": 2, "x": 67, "y": 55 },
|
||||
{ "flags": 2, "x": 49, "y": 55 },
|
||||
{ "flags": 2, "x": 34, "y": 55 },
|
||||
{ "flags": 2, "x": 17, "y": 55 },
|
||||
{ "flags": 2, "x": 6, "y": 55 },
|
||||
{ "flags": 2, "x": 6, "y": 43 },
|
||||
{ "flags": 2, "x": 6, "y": 30 },
|
||||
{ "flags": 2, "x": 6, "y": 18 },
|
||||
{ "flags": 2, "x": 6, "y": 3 },
|
||||
{ "flags": 2, "x": 20, "y": 3 },
|
||||
{ "flags": 2, "x": 35, "y": 3 },
|
||||
{ "flags": 2, "x": 50, "y": 3 },
|
||||
{ "flags": 2, "x": 65, "y": 3 },
|
||||
{ "flags": 2, "x": 80, "y": 3 },
|
||||
{ "flags": 2, "x": 94, "y": 3 },
|
||||
{ "flags": 2, "x": 109, "y": 3 },
|
||||
{ "flags": 2, "x": 124, "y": 3 },
|
||||
{ "flags": 2, "x": 139, "y": 3 },
|
||||
{ "flags": 2, "x": 153, "y": 3 },
|
||||
{ "flags": 2, "x": 168, "y": 3 },
|
||||
{ "flags": 2, "x": 183, "y": 3 },
|
||||
{ "flags": 2, "x": 198, "y": 3 },
|
||||
{ "flags": 2, "x": 212, "y": 3 },
|
||||
{ "flags": 2, "x": 227, "y": 3 },
|
||||
{ "flags": 2, "x": 242, "y": 3 },
|
||||
{ "flags": 2, "x": 242, "y": 18 },
|
||||
{ "flags": 2, "x": 242, "y": 31 },
|
||||
{ "flags": 2, "x": 242, "y": 43 }
|
||||
]
|
||||
},
|
||||
"url": "",
|
||||
"usb": {
|
||||
"vid": "0x4C58",
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0004",
|
||||
"device_version": "0.0.1"
|
||||
"vid": "0x4C58"
|
||||
},
|
||||
"processor": "atmega32u4",
|
||||
"bootloader": "atmel-dfu",
|
||||
|
@ -16,194 +164,194 @@
|
|||
"layouts": {
|
||||
"LAYOUT_tkl_ansi_tsangan_split_bs": {
|
||||
"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.5, "y":0},
|
||||
{"label":"F6", "x":7.5, "y":0},
|
||||
{"label":"F7", "x":8.5, "y":0},
|
||||
{"label":"F8", "x":9.5, "y":0},
|
||||
{"label":"F9", "x":11, "y":0},
|
||||
{"label":"F10", "x":12, "y":0},
|
||||
{"label":"F11", "x":13, "y":0},
|
||||
{"label":"F12", "x":14, "y":0},
|
||||
{"label":"PrtSc", "x":15.25, "y":0},
|
||||
{"label":"Scroll Lock", "x":16.25, "y":0},
|
||||
{"label":"Pause", "x":17.25, "y":0},
|
||||
{ "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "matrix": [0, 2], "x": 2, "y": 0 },
|
||||
{ "matrix": [0, 3], "x": 3, "y": 0 },
|
||||
{ "matrix": [0, 4], "x": 4, "y": 0 },
|
||||
{ "matrix": [0, 5], "x": 5, "y": 0 },
|
||||
{ "matrix": [0, 6], "x": 6.5, "y": 0 },
|
||||
{ "matrix": [0, 7], "x": 7.5, "y": 0 },
|
||||
{ "matrix": [0, 8], "x": 8.5, "y": 0 },
|
||||
{ "matrix": [0, 9], "x": 9.5, "y": 0 },
|
||||
{ "matrix": [0, 10], "x": 11, "y": 0 },
|
||||
{ "matrix": [0, 11], "x": 12, "y": 0 },
|
||||
{ "matrix": [0, 12], "x": 13, "y": 0 },
|
||||
{ "matrix": [0, 13], "x": 14, "y": 0 },
|
||||
{ "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||
{ "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||
{ "matrix": [0, 16], "x": 17.25, "y": 0 },
|
||||
|
||||
{ "matrix": [1, 0], "x": 0, "y": 1.25 },
|
||||
{ "matrix": [1, 1], "x": 1, "y": 1.25 },
|
||||
{ "matrix": [1, 2], "x": 2, "y": 1.25 },
|
||||
{ "matrix": [1, 3], "x": 3, "y": 1.25 },
|
||||
{ "matrix": [1, 4], "x": 4, "y": 1.25 },
|
||||
{ "matrix": [1, 5], "x": 5, "y": 1.25 },
|
||||
{ "matrix": [1, 6], "x": 6, "y": 1.25 },
|
||||
{ "matrix": [1, 7], "x": 7, "y": 1.25 },
|
||||
{ "matrix": [1, 8], "x": 8, "y": 1.25 },
|
||||
{ "matrix": [1, 9], "x": 9, "y": 1.25 },
|
||||
{ "matrix": [1, 10], "x": 10, "y": 1.25 },
|
||||
{ "matrix": [1, 11], "x": 11, "y": 1.25 },
|
||||
{ "matrix": [1, 12], "x": 12, "y": 1.25 },
|
||||
{ "matrix": [1, 13], "x": 13, "y": 1.25 },
|
||||
{ "matrix": [3, 12], "x": 14, "y": 1.25 },
|
||||
{ "matrix": [1, 14], "x": 15.25, "y": 1.25 },
|
||||
{ "matrix": [1, 15], "x": 16.25, "y": 1.25 },
|
||||
{ "matrix": [1, 16], "x": 17.25, "y": 1.25 },
|
||||
|
||||
{"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":7, "y":1.25},
|
||||
{"label":"8*", "x":8, "y":1.25},
|
||||
{"label":"9(", "x":9, "y":1.25},
|
||||
{"label":"0)", "x":10, "y":1.25},
|
||||
{"label":"-_", "x":11, "y":1.25},
|
||||
{"label":"=+", "x":12, "y":1.25},
|
||||
{"label":"Backspace", "x":13, "y":1.25},
|
||||
{"label":"Delete", "x":14, "y":1.25},
|
||||
{"label":"Insert", "x":15.25, "y":1.25},
|
||||
{"label":"Home", "x":16.25, "y":1.25},
|
||||
{"label":"PgUp", "x":17.25, "y":1.25},
|
||||
{ "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 },
|
||||
{ "matrix": [2, 1], "x": 1.5, "y": 2.25 },
|
||||
{ "matrix": [2, 2], "x": 2.5, "y": 2.25 },
|
||||
{ "matrix": [2, 3], "x": 3.5, "y": 2.25 },
|
||||
{ "matrix": [2, 4], "x": 4.5, "y": 2.25 },
|
||||
{ "matrix": [2, 5], "x": 5.5, "y": 2.25 },
|
||||
{ "matrix": [2, 6], "x": 6.5, "y": 2.25 },
|
||||
{ "matrix": [2, 7], "x": 7.5, "y": 2.25 },
|
||||
{ "matrix": [2, 8], "x": 8.5, "y": 2.25 },
|
||||
{ "matrix": [2, 9], "x": 9.5, "y": 2.25 },
|
||||
{ "matrix": [2, 10], "x": 10.5, "y": 2.25 },
|
||||
{ "matrix": [2, 11], "x": 11.5, "y": 2.25 },
|
||||
{ "matrix": [2, 12], "x": 12.5, "y": 2.25 },
|
||||
{ "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 },
|
||||
{ "matrix": [2, 14], "x": 15.25, "y": 2.25 },
|
||||
{ "matrix": [2, 15], "x": 16.25, "y": 2.25 },
|
||||
{ "matrix": [2, 16], "x": 17.25, "y": 2.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":6.5, "y":2.25},
|
||||
{"label":"U", "x":7.5, "y":2.25},
|
||||
{"label":"I", "x":8.5, "y":2.25},
|
||||
{"label":"O", "x":9.5, "y":2.25},
|
||||
{"label":"P", "x":10.5, "y":2.25},
|
||||
{"label":"[{", "x":11.5, "y":2.25},
|
||||
{"label":"]}", "x":12.5, "y":2.25},
|
||||
{"label":"\\|", "x":13.5, "y":2.25, "w":1.5},
|
||||
{"label":"Delete", "x":15.25, "y":2.25},
|
||||
{"label":"End", "x":16.25, "y":2.25},
|
||||
{"label":"PgDn", "x":17.25, "y":2.25},
|
||||
{ "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 },
|
||||
{ "matrix": [3, 1], "x": 1.75, "y": 3.25 },
|
||||
{ "matrix": [3, 2], "x": 2.75, "y": 3.25 },
|
||||
{ "matrix": [3, 3], "x": 3.75, "y": 3.25 },
|
||||
{ "matrix": [3, 4], "x": 4.75, "y": 3.25 },
|
||||
{ "matrix": [3, 5], "x": 5.75, "y": 3.25 },
|
||||
{ "matrix": [3, 6], "x": 6.75, "y": 3.25 },
|
||||
{ "matrix": [3, 7], "x": 7.75, "y": 3.25 },
|
||||
{ "matrix": [3, 8], "x": 8.75, "y": 3.25 },
|
||||
{ "matrix": [3, 9], "x": 9.75, "y": 3.25 },
|
||||
{ "matrix": [3, 10], "x": 10.75, "y": 3.25 },
|
||||
{ "matrix": [3, 11], "x": 11.75, "y": 3.25 },
|
||||
{ "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.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":6.75, "y":3.25},
|
||||
{"label":"J", "x":7.75, "y":3.25},
|
||||
{"label":"K", "x":8.75, "y":3.25},
|
||||
{"label":"L", "x":9.75, "y":3.25},
|
||||
{"label":";:", "x":10.75, "y":3.25},
|
||||
{"label":"'\"", "x":11.75, "y":3.25},
|
||||
{"label":"Enter", "x":12.75, "y":3.25, "w":2.25},
|
||||
{ "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.25 },
|
||||
{ "matrix": [4, 1], "x": 2.25, "y": 4.25 },
|
||||
{ "matrix": [4, 2], "x": 3.25, "y": 4.25 },
|
||||
{ "matrix": [4, 3], "x": 4.25, "y": 4.25 },
|
||||
{ "matrix": [4, 4], "x": 5.25, "y": 4.25 },
|
||||
{ "matrix": [4, 5], "x": 6.25, "y": 4.25 },
|
||||
{ "matrix": [4, 6], "x": 7.25, "y": 4.25 },
|
||||
{ "matrix": [4, 7], "x": 8.25, "y": 4.25 },
|
||||
{ "matrix": [4, 8], "x": 9.25, "y": 4.25 },
|
||||
{ "matrix": [4, 9], "x": 10.25, "y": 4.25 },
|
||||
{ "matrix": [4, 10], "x": 11.25, "y": 4.25 },
|
||||
{ "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.25 },
|
||||
{ "matrix": [4, 15], "x": 16.25, "y": 4.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":7.25, "y":4.25},
|
||||
{"label":"M", "x":8.25, "y":4.25},
|
||||
{"label":",<", "x":9.25, "y":4.25},
|
||||
{"label":".>", "x":10.25, "y":4.25},
|
||||
{"label":"/?", "x":11.25, "y":4.25},
|
||||
{"label":"Shift", "x":12.25, "y":4.25, "w":2.75},
|
||||
{"label":"\u2191", "x":16.25, "y":4.25},
|
||||
|
||||
{"label":"Ctrl", "x":0, "y":5.25, "w":1.5},
|
||||
{"label":"Win", "x":1.5, "y":5.25},
|
||||
{"label":"Alt", "x":2.5, "y":5.25, "w":1.5},
|
||||
{"label":"Space", "x":4, "y":5.25, "w":7},
|
||||
{"label":"Alt", "x":11, "y":5.25, "w":1.5},
|
||||
{"label":"Fn", "x":12.5, "y":5.25},
|
||||
{"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5},
|
||||
{"label":"\u2190", "x":15.25, "y":5.25},
|
||||
{"label":"\u2193", "x":16.25, "y":5.25},
|
||||
{"label":"\u2192", "x":17.25, "y":5.25}
|
||||
{ "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.25 },
|
||||
{ "matrix": [5, 1], "x": 1.5, "y": 5.25 },
|
||||
{ "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.25 },
|
||||
{ "matrix": [5, 5], "w": 7, "x": 4, "y": 5.25 },
|
||||
{ "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.25 },
|
||||
{ "matrix": [5, 12], "x": 12.5, "y": 5.25 },
|
||||
{ "matrix": [5, 13], "w": 1.5, "x": 13.5, "y": 5.25 },
|
||||
{ "matrix": [5, 14], "x": 15.25, "y": 5.25 },
|
||||
{ "matrix": [5, 15], "x": 16.25, "y": 5.25 },
|
||||
{ "matrix": [5, 16], "x": 17.25, "y": 5.25 }
|
||||
]
|
||||
},
|
||||
"LAYOUT_tkl_ansi_tsangan": {
|
||||
"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.5, "y":0},
|
||||
{"label":"F6", "x":7.5, "y":0},
|
||||
{"label":"F7", "x":8.5, "y":0},
|
||||
{"label":"F8", "x":9.5, "y":0},
|
||||
{"label":"F9", "x":11, "y":0},
|
||||
{"label":"F10", "x":12, "y":0},
|
||||
{"label":"F11", "x":13, "y":0},
|
||||
{"label":"F12", "x":14, "y":0},
|
||||
{"label":"PrtSc", "x":15.25, "y":0},
|
||||
{"label":"Scroll Lock", "x":16.25, "y":0},
|
||||
{"label":"Pause", "x":17.25, "y":0},
|
||||
{ "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "matrix": [0, 2], "x": 2, "y": 0 },
|
||||
{ "matrix": [0, 3], "x": 3, "y": 0 },
|
||||
{ "matrix": [0, 4], "x": 4, "y": 0 },
|
||||
{ "matrix": [0, 5], "x": 5, "y": 0 },
|
||||
{ "matrix": [0, 6], "x": 6.5, "y": 0 },
|
||||
{ "matrix": [0, 7], "x": 7.5, "y": 0 },
|
||||
{ "matrix": [0, 8], "x": 8.5, "y": 0 },
|
||||
{ "matrix": [0, 9], "x": 9.5, "y": 0 },
|
||||
{ "matrix": [0, 10], "x": 11, "y": 0 },
|
||||
{ "matrix": [0, 11], "x": 12, "y": 0 },
|
||||
{ "matrix": [0, 12], "x": 13, "y": 0 },
|
||||
{ "matrix": [0, 13], "x": 14, "y": 0 },
|
||||
{ "matrix": [0, 14], "x": 15.25, "y": 0 },
|
||||
{ "matrix": [0, 15], "x": 16.25, "y": 0 },
|
||||
{ "matrix": [0, 16], "x": 17.25, "y": 0 },
|
||||
|
||||
{ "matrix": [1, 0], "x": 0, "y": 1.25 },
|
||||
{ "matrix": [1, 1], "x": 1, "y": 1.25 },
|
||||
{ "matrix": [1, 2], "x": 2, "y": 1.25 },
|
||||
{ "matrix": [1, 3], "x": 3, "y": 1.25 },
|
||||
{ "matrix": [1, 4], "x": 4, "y": 1.25 },
|
||||
{ "matrix": [1, 5], "x": 5, "y": 1.25 },
|
||||
{ "matrix": [1, 6], "x": 6, "y": 1.25 },
|
||||
{ "matrix": [1, 7], "x": 7, "y": 1.25 },
|
||||
{ "matrix": [1, 8], "x": 8, "y": 1.25 },
|
||||
{ "matrix": [1, 9], "x": 9, "y": 1.25 },
|
||||
{ "matrix": [1, 10], "x": 10, "y": 1.25 },
|
||||
{ "matrix": [1, 11], "x": 11, "y": 1.25 },
|
||||
{ "matrix": [1, 12], "x": 12, "y": 1.25 },
|
||||
{ "matrix": [1, 13], "w":2, "x": 13, "y": 1.25 },
|
||||
{ "matrix": [1, 14], "x": 15.25, "y": 1.25 },
|
||||
{ "matrix": [1, 15], "x": 16.25, "y": 1.25 },
|
||||
{ "matrix": [1, 16], "x": 17.25, "y": 1.25 },
|
||||
|
||||
{"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":7, "y":1.25},
|
||||
{"label":"8*", "x":8, "y":1.25},
|
||||
{"label":"9(", "x":9, "y":1.25},
|
||||
{"label":"0)", "x":10, "y":1.25},
|
||||
{"label":"-_", "x":11, "y":1.25},
|
||||
{"label":"=+", "x":12, "y":1.25},
|
||||
{"label":"Backspace", "x":13, "y":1.25, "w":2},
|
||||
{"label":"Insert", "x":15.25, "y":1.25},
|
||||
{"label":"Home", "x":16.25, "y":1.25},
|
||||
{"label":"PgUp", "x":17.25, "y":1.25},
|
||||
{ "matrix": [2, 0], "w": 1.5, "x": 0, "y": 2.25 },
|
||||
{ "matrix": [2, 1], "x": 1.5, "y": 2.25 },
|
||||
{ "matrix": [2, 2], "x": 2.5, "y": 2.25 },
|
||||
{ "matrix": [2, 3], "x": 3.5, "y": 2.25 },
|
||||
{ "matrix": [2, 4], "x": 4.5, "y": 2.25 },
|
||||
{ "matrix": [2, 5], "x": 5.5, "y": 2.25 },
|
||||
{ "matrix": [2, 6], "x": 6.5, "y": 2.25 },
|
||||
{ "matrix": [2, 7], "x": 7.5, "y": 2.25 },
|
||||
{ "matrix": [2, 8], "x": 8.5, "y": 2.25 },
|
||||
{ "matrix": [2, 9], "x": 9.5, "y": 2.25 },
|
||||
{ "matrix": [2, 10], "x": 10.5, "y": 2.25 },
|
||||
{ "matrix": [2, 11], "x": 11.5, "y": 2.25 },
|
||||
{ "matrix": [2, 12], "x": 12.5, "y": 2.25 },
|
||||
{ "matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 2.25 },
|
||||
{ "matrix": [2, 14], "x": 15.25, "y": 2.25 },
|
||||
{ "matrix": [2, 15], "x": 16.25, "y": 2.25 },
|
||||
{ "matrix": [2, 16], "x": 17.25, "y": 2.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":6.5, "y":2.25},
|
||||
{"label":"U", "x":7.5, "y":2.25},
|
||||
{"label":"I", "x":8.5, "y":2.25},
|
||||
{"label":"O", "x":9.5, "y":2.25},
|
||||
{"label":"P", "x":10.5, "y":2.25},
|
||||
{"label":"[{", "x":11.5, "y":2.25},
|
||||
{"label":"]}", "x":12.5, "y":2.25},
|
||||
{"label":"\\|", "x":13.5, "y":2.25, "w":1.5},
|
||||
{"label":"Delete", "x":15.25, "y":2.25},
|
||||
{"label":"End", "x":16.25, "y":2.25},
|
||||
{"label":"PgDn", "x":17.25, "y":2.25},
|
||||
{ "matrix": [3, 0], "w": 1.75, "x": 0, "y": 3.25 },
|
||||
{ "matrix": [3, 1], "x": 1.75, "y": 3.25 },
|
||||
{ "matrix": [3, 2], "x": 2.75, "y": 3.25 },
|
||||
{ "matrix": [3, 3], "x": 3.75, "y": 3.25 },
|
||||
{ "matrix": [3, 4], "x": 4.75, "y": 3.25 },
|
||||
{ "matrix": [3, 5], "x": 5.75, "y": 3.25 },
|
||||
{ "matrix": [3, 6], "x": 6.75, "y": 3.25 },
|
||||
{ "matrix": [3, 7], "x": 7.75, "y": 3.25 },
|
||||
{ "matrix": [3, 8], "x": 8.75, "y": 3.25 },
|
||||
{ "matrix": [3, 9], "x": 9.75, "y": 3.25 },
|
||||
{ "matrix": [3, 10], "x": 10.75, "y": 3.25 },
|
||||
{ "matrix": [3, 11], "x": 11.75, "y": 3.25 },
|
||||
{ "matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 3.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":6.75, "y":3.25},
|
||||
{"label":"J", "x":7.75, "y":3.25},
|
||||
{"label":"K", "x":8.75, "y":3.25},
|
||||
{"label":"L", "x":9.75, "y":3.25},
|
||||
{"label":";:", "x":10.75, "y":3.25},
|
||||
{"label":"'\"", "x":11.75, "y":3.25},
|
||||
{"label":"Enter", "x":12.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":7.25, "y":4.25},
|
||||
{"label":"M", "x":8.25, "y":4.25},
|
||||
{"label":",<", "x":9.25, "y":4.25},
|
||||
{"label":".>", "x":10.25, "y":4.25},
|
||||
{"label":"/?", "x":11.25, "y":4.25},
|
||||
{"label":"Shift", "x":12.25, "y":4.25, "w":2.75},
|
||||
{"label":"\u2191", "x":16.25, "y":4.25},
|
||||
|
||||
{"label":"Ctrl", "x":0, "y":5.25, "w":1.5},
|
||||
{"label":"Win", "x":1.5, "y":5.25},
|
||||
{"label":"Alt", "x":2.5, "y":5.25, "w":1.5},
|
||||
{"label":"Space", "x":4, "y":5.25, "w":7},
|
||||
{"label":"Alt", "x":11, "y":5.25, "w":1.5},
|
||||
{"label":"Fn", "x":12.5, "y":5.25},
|
||||
{"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5},
|
||||
{"label":"\u2190", "x":15.25, "y":5.25},
|
||||
{"label":"\u2193", "x":16.25, "y":5.25},
|
||||
{"label":"\u2192", "x":17.25, "y":5.25}
|
||||
{ "matrix": [4, 0], "w": 2.25, "x": 0, "y": 4.25 },
|
||||
{ "matrix": [4, 1], "x": 2.25, "y": 4.25 },
|
||||
{ "matrix": [4, 2], "x": 3.25, "y": 4.25 },
|
||||
{ "matrix": [4, 3], "x": 4.25, "y": 4.25 },
|
||||
{ "matrix": [4, 4], "x": 5.25, "y": 4.25 },
|
||||
{ "matrix": [4, 5], "x": 6.25, "y": 4.25 },
|
||||
{ "matrix": [4, 6], "x": 7.25, "y": 4.25 },
|
||||
{ "matrix": [4, 7], "x": 8.25, "y": 4.25 },
|
||||
{ "matrix": [4, 8], "x": 9.25, "y": 4.25 },
|
||||
{ "matrix": [4, 9], "x": 10.25, "y": 4.25 },
|
||||
{ "matrix": [4, 10], "x": 11.25, "y": 4.25 },
|
||||
{ "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.25 },
|
||||
{ "matrix": [4, 15], "x": 16.25, "y": 4.25 },
|
||||
|
||||
{ "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.25 },
|
||||
{ "matrix": [5, 1], "x": 1.5, "y": 5.25 },
|
||||
{ "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.25 },
|
||||
{ "matrix": [5, 5], "w": 7, "x": 4, "y": 5.25 },
|
||||
{ "matrix": [5, 10], "w": 1.5, "x": 11, "y": 5.25 },
|
||||
{ "matrix": [5, 12], "x": 12.5, "y": 5.25 },
|
||||
{ "matrix": [5, 13], "w": 1.5, "x": 13.5, "y": 5.25 },
|
||||
{ "matrix": [5, 14], "x": 15.25, "y": 5.25 },
|
||||
{ "matrix": [5, 15], "x": 16.25, "y": 5.25 },
|
||||
{ "matrix": [5, 16], "x": 17.25, "y": 5.25 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -37,8 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EE_CLR,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, 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_MPRV, KC_VOLD, KC_MNXT
|
||||
),
|
||||
|
||||
)
|
||||
};
|
||||
|
||||
bool rgb_matrix_indicators_user(void) {
|
||||
|
|
|
@ -57,14 +57,135 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
|
||||
)
|
||||
};
|
||||
|
||||
bool rgb_matrix_indicators_user(void) {
|
||||
led_t host_leds = host_keyboard_led_state();
|
||||
if (host_leds.caps_lock) {
|
||||
rgb_matrix_set_color(12, 254, 189, 41); // set caps lock led color first number is index, R G B
|
||||
}
|
||||
return false;
|
||||
// Single Indicator memory layout
|
||||
typedef struct _indicator_config_t {
|
||||
uint8_t h;
|
||||
uint8_t s;
|
||||
uint8_t v;
|
||||
bool enabled;
|
||||
} indicator_config;
|
||||
|
||||
// Board memory layout
|
||||
typedef struct _fave_config_t {
|
||||
indicator_config caps;
|
||||
} fave_config;
|
||||
|
||||
fave_config fave;
|
||||
|
||||
void eeconfig_init_user(void) {
|
||||
// Default values
|
||||
fave.caps.h = 0;
|
||||
fave.caps.s = 0;
|
||||
fave.caps.v = RGB_MATRIX_MAXIMUM_BRIGHTNESS;
|
||||
fave.caps.enabled = true;
|
||||
|
||||
// Write default value to EEPROM now
|
||||
eeconfig_update_kb_datablock(&fave);
|
||||
}
|
||||
|
||||
enum via_fave {
|
||||
id_caps_indicator_enabled = 1,
|
||||
id_caps_indicator_brightness = 2,
|
||||
id_caps_indicator_color = 3
|
||||
};
|
||||
|
||||
//On Keyboard startup
|
||||
void keyboard_post_init_user(void) {
|
||||
//Read our custom menu variables from memory
|
||||
eeconfig_read_kb_datablock(&fave);
|
||||
}
|
||||
|
||||
bool rgb_matrix_indicators_user(void) {
|
||||
if (fave.caps.enabled) {
|
||||
// The rgb_matrix_set_color function needs an RGB code to work, so first the indicator color is cast to an HSV value and then translated to RGB
|
||||
HSV hsv_caps_indicator_color = {fave.caps.h, fave.caps.s, fave.caps.v};
|
||||
RGB rgb_caps_indicator_color = hsv_to_rgb(hsv_caps_indicator_color);
|
||||
if (host_keyboard_led_state().caps_lock)
|
||||
rgb_matrix_set_color(CAPS_INDICATOR_INDEX, rgb_caps_indicator_color.r, rgb_caps_indicator_color.g, rgb_caps_indicator_color.b);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void fave_config_set_value(uint8_t *data) {
|
||||
// data = [ value_id, value_data ]
|
||||
uint8_t *value_id = &(data[0]);
|
||||
uint8_t *value_data = &(data[1]);
|
||||
|
||||
switch (*value_id) {
|
||||
case id_caps_indicator_enabled: {
|
||||
fave.caps.enabled = value_data[0];
|
||||
break;
|
||||
}
|
||||
case id_caps_indicator_brightness: {
|
||||
fave.caps.v = value_data[0];
|
||||
break;
|
||||
}
|
||||
case id_caps_indicator_color: {
|
||||
fave.caps.h = value_data[0];
|
||||
fave.caps.s = value_data[1];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fave_config_get_value(uint8_t *data) {
|
||||
// data = [ value_id, value_data ]
|
||||
uint8_t *value_id = &(data[0]);
|
||||
uint8_t *value_data = &(data[1]);
|
||||
|
||||
switch (*value_id) {
|
||||
case id_caps_indicator_enabled: {
|
||||
value_data[0] = fave.caps.enabled;
|
||||
break;
|
||||
}
|
||||
case id_caps_indicator_brightness: {
|
||||
value_data[0] = fave.caps.v;
|
||||
break;
|
||||
}
|
||||
case id_caps_indicator_color: {
|
||||
value_data[0] = fave.caps.h;
|
||||
value_data[1] = fave.caps.s;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void fave_config_save(void) {
|
||||
eeconfig_update_kb_datablock(&fave);
|
||||
}
|
||||
|
||||
void via_custom_value_command_kb(uint8_t *data, uint8_t length) {
|
||||
// data = [ command_id, channel_id, value_id, value_data ]
|
||||
uint8_t *command_id = &(data[0]);
|
||||
uint8_t *channel_id = &(data[1]);
|
||||
uint8_t *value_id_and_data = &(data[2]);
|
||||
|
||||
if (*channel_id == id_custom_channel) {
|
||||
switch (*command_id) {
|
||||
case id_custom_set_value: {
|
||||
fave_config_set_value(value_id_and_data);
|
||||
break;
|
||||
}
|
||||
case id_custom_get_value: {
|
||||
fave_config_get_value(value_id_and_data);
|
||||
break;
|
||||
}
|
||||
case id_custom_save: {
|
||||
fave_config_save();
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
// Unhandled message.
|
||||
*command_id = id_unhandled;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
*command_id = id_unhandled;
|
||||
}
|
||||
|
|
|
@ -1,17 +1,2 @@
|
|||
# Processor frequency
|
||||
F_CPU = 8000000
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
|
||||
MOUSEKEY_ENABLE = no # Mouse keys
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||
CONSOLE_ENABLE = no # Console for debug
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
NKRO_ENABLE = yes # Enable N-Key Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
AUDIO_ENABLE = no # Audio output
|
||||
RGB_MATRIX_ENABLE = yes
|
||||
RGB_MATRIX_DRIVER = WS2812
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
/* Copyright 2023 Florent Linguenheld (@FLinguenheld)
|
||||
*
|
||||
* 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
|
||||
|
||||
/* Flash */
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior
|
||||
#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // Timeout window in ms in which the double tap can occur.
|
||||
|
||||
/* OLED */
|
||||
#undef OLED_FONT_H
|
||||
#define OLED_FONT_H "./oled/glcdfont.c"
|
||||
|
||||
#define OLED_TIMEOUT 25000
|
||||
#define OLED_BRIGHTNESS 60 // Protect my eyesss
|
||||
#define SPLIT_LAYER_STATE_ENABLE
|
||||
#define SPLIT_MODS_ENABLE
|
||||
#define SPLIT_OLED_ENABLE
|
||||
|
||||
/* Auto shift ♥ */
|
||||
#define AUTO_SHIFT_TIMEOUT 115
|
||||
|
||||
/* Redefine CTRL + space (See space cadet shift) */
|
||||
#define LCPO_KEYS KC_LCTL, KC_TRNS, KC_SPC
|
||||
|
||||
/* Unicode */
|
||||
// #define UNICODE_SELECTED_MODES UC_LNX
|
||||
#define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX
|
||||
|
||||
/* leader */
|
||||
#define LEADER_PER_KEY_TIMING
|
||||
#define LEADER_TIMEOUT 280
|
||||
#define LEADER_NO_TIMEOUT
|
||||
|
||||
/* Mouse */
|
||||
#define MK_3_SPEED
|
||||
#define MK_MOMENTARY_ACCEL
|
||||
|
||||
#define MK_C_OFFSET_0 1
|
||||
#define MK_C_INTERVAL_0 12
|
||||
|
||||
#define MK_C_OFFSET_1 4
|
||||
#define MK_C_INTERVAL_1 18
|
||||
|
||||
#define MK_C_OFFSET_UNMOD 13
|
||||
#define MK_C_INTERVAL_UNMOD 15
|
||||
|
||||
#define MK_C_OFFSET_2 25
|
||||
#define MK_C_INTERVAL_2 10
|
||||
|
||||
|
||||
#define MK_W_OFFSET_0 1
|
||||
#define MK_W_INTERVAL_0 160
|
||||
|
||||
#define MK_W_OFFSET_1 2
|
||||
#define MK_W_INTERVAL_1 120
|
||||
|
||||
#define MK_W_OFFSET_UNMOD 4
|
||||
#define MK_W_INTERVAL_UNMOD 70
|
||||
|
||||
#define MK_W_OFFSET_2 10
|
||||
#define MK_W_INTERVAL_2 30
|
|
@ -0,0 +1,199 @@
|
|||
// Copyright 2023 Florent Linguenheld (@FLinguenheld)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "keycodes.h"
|
||||
|
||||
/* Only for basis letters
|
||||
Exceptions like Tab or Enter */
|
||||
bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
|
||||
|
||||
switch (keycode) {
|
||||
|
||||
case KC_TAB:
|
||||
case KC_ENT:
|
||||
|
||||
// --
|
||||
case KC_A:
|
||||
case KC_B:
|
||||
case KC_C:
|
||||
case KC_D:
|
||||
case KC_E:
|
||||
case KC_F:
|
||||
case KC_G:
|
||||
case KC_H:
|
||||
case KC_I:
|
||||
case KC_J:
|
||||
case KC_K:
|
||||
case KC_L:
|
||||
case KC_M:
|
||||
case KC_N:
|
||||
case KC_O:
|
||||
case KC_P:
|
||||
case KC_Q:
|
||||
case KC_R:
|
||||
case KC_S:
|
||||
case KC_T:
|
||||
case KC_U:
|
||||
case KC_V:
|
||||
case KC_W:
|
||||
case KC_X:
|
||||
case KC_Y:
|
||||
case KC_Z:
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return get_custom_auto_shifted_key(keycode, record);
|
||||
}
|
||||
|
||||
|
||||
/* Custom auto shift
|
||||
I use this instead of tap dance because double tap is horrible
|
||||
Add here the letter or the custom enum, then add in press_user and press_release the actions */
|
||||
bool get_custom_auto_shifted_key(uint16_t keycode, keyrecord_t *record) {
|
||||
switch(keycode) {
|
||||
|
||||
case KC_BSPC:
|
||||
case KC_LABK: // Easy indent with vim
|
||||
case KC_RABK:
|
||||
|
||||
/* French */
|
||||
case CS_E_ACUTE:
|
||||
|
||||
case CS_A_GRAVE:
|
||||
case CS_E_GRAVE:
|
||||
case CS_I_GRAVE:
|
||||
case CS_O_GRAVE:
|
||||
case CS_U_GRAVE:
|
||||
|
||||
case CS_A_CIRCUMFLEX:
|
||||
case CS_E_CIRCUMFLEX:
|
||||
case CS_I_CIRCUMFLEX:
|
||||
case CS_O_CIRCUMFLEX:
|
||||
case CS_U_CIRCUMFLEX:
|
||||
|
||||
case CS_A_DIAERESIS:
|
||||
case CS_E_DIAERESIS:
|
||||
case CS_I_DIAERESIS:
|
||||
case CS_O_DIAERESIS:
|
||||
case CS_U_DIAERESIS:
|
||||
case CS_Y_DIAERESIS:
|
||||
|
||||
case CS_C_CEDILLA:
|
||||
case CS_AE:
|
||||
case CS_OE:
|
||||
|
||||
return true;
|
||||
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
void autoshift_press_user(uint16_t keycode, bool shifted, keyrecord_t *record) {
|
||||
switch(keycode) {
|
||||
|
||||
case KC_BSPC:
|
||||
register_code16((!shifted) ? KC_BSPC : KC_DEL);
|
||||
break;
|
||||
|
||||
case KC_LABK:
|
||||
if (shifted) { send_unicode_string("<<"); }
|
||||
else { send_unicode_string("<"); } break;
|
||||
|
||||
case KC_RABK:
|
||||
if (shifted) { send_unicode_string(">>"); }
|
||||
else { send_unicode_string(">"); } break;
|
||||
|
||||
/* French
|
||||
Release is not necessary with 'send_unicode_string()' */
|
||||
case CS_E_ACUTE:
|
||||
if (shifted) { send_unicode_string("É"); }
|
||||
else { send_unicode_string("é"); } break;
|
||||
|
||||
case CS_A_GRAVE:
|
||||
if (shifted) { send_unicode_string("À"); }
|
||||
else { send_unicode_string("à"); } break;
|
||||
case CS_E_GRAVE:
|
||||
if (shifted) { send_unicode_string("È"); }
|
||||
else { send_unicode_string("è"); } break;
|
||||
case CS_I_GRAVE:
|
||||
if (shifted) { send_unicode_string("Ì"); }
|
||||
else { send_unicode_string("ì"); } break;
|
||||
case CS_O_GRAVE:
|
||||
if (shifted) { send_unicode_string("Ò"); }
|
||||
else { send_unicode_string("ò"); } break;
|
||||
case CS_U_GRAVE:
|
||||
if (shifted) { send_unicode_string("Ù"); }
|
||||
else { send_unicode_string("ù"); } break;
|
||||
|
||||
case CS_A_CIRCUMFLEX:
|
||||
if (shifted) { send_unicode_string("Â"); }
|
||||
else { send_unicode_string("â"); } break;
|
||||
case CS_E_CIRCUMFLEX:
|
||||
if (shifted) { send_unicode_string("Ê"); }
|
||||
else { send_unicode_string("ê"); } break;
|
||||
case CS_I_CIRCUMFLEX:
|
||||
if (shifted) { send_unicode_string("Î"); }
|
||||
else { send_unicode_string("î"); } break;
|
||||
case CS_O_CIRCUMFLEX:
|
||||
if (shifted) { send_unicode_string("Ô"); }
|
||||
else { send_unicode_string("ô"); } break;
|
||||
case CS_U_CIRCUMFLEX:
|
||||
if (shifted) { send_unicode_string("Û"); }
|
||||
else { send_unicode_string("û"); } break;
|
||||
|
||||
case CS_A_DIAERESIS:
|
||||
if (shifted) { send_unicode_string("Ä"); }
|
||||
else { send_unicode_string("ä"); } break;
|
||||
case CS_E_DIAERESIS:
|
||||
if (shifted) { send_unicode_string("Ë"); }
|
||||
else { send_unicode_string("ë"); } break;
|
||||
case CS_I_DIAERESIS:
|
||||
if (shifted) { send_unicode_string("Ï"); }
|
||||
else { send_unicode_string("ï"); } break;
|
||||
case CS_O_DIAERESIS:
|
||||
if (shifted) { send_unicode_string("Ö"); }
|
||||
else { send_unicode_string("ö"); } break;
|
||||
case CS_U_DIAERESIS:
|
||||
if (shifted) { send_unicode_string("Ü"); }
|
||||
else { send_unicode_string("ü"); } break;
|
||||
case CS_Y_DIAERESIS:
|
||||
if (shifted) { send_unicode_string("Ÿ"); }
|
||||
else { send_unicode_string("ÿ"); } break;
|
||||
|
||||
case CS_C_CEDILLA:
|
||||
if (shifted) { send_unicode_string("Ç"); }
|
||||
else { send_unicode_string("ç"); } break;
|
||||
case CS_AE:
|
||||
if (shifted) { send_unicode_string("Æ"); }
|
||||
else { send_unicode_string("æ"); } break;
|
||||
case CS_OE:
|
||||
if (shifted) { send_unicode_string("Œ"); }
|
||||
else { send_unicode_string("œ"); } break;
|
||||
|
||||
|
||||
default:
|
||||
if (shifted) {
|
||||
add_weak_mods(MOD_BIT(KC_LSFT));
|
||||
}
|
||||
/* & 0xFF gets the Tap key for Tap Holds, required when using Retro Shift */
|
||||
register_code16((IS_RETRO(keycode)) ? keycode & 0xFF : keycode);
|
||||
}
|
||||
}
|
||||
|
||||
void autoshift_release_user(uint16_t keycode, bool shifted, keyrecord_t *record) {
|
||||
switch(keycode) {
|
||||
|
||||
case KC_BSPC:
|
||||
unregister_code16((!shifted) ? KC_BSPC : KC_DEL);
|
||||
break;
|
||||
|
||||
default:
|
||||
/* & 0xFF gets the Tap key for Tap Holds, required when using Retro Shift
|
||||
The IS_RETRO check isn't really necessary here, always using
|
||||
keycode & 0xFF would be fine. */
|
||||
unregister_code16((IS_RETRO(keycode)) ? keycode & 0xFF : keycode);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,275 @@
|
|||
// Copyright 2023 Florent Linguenheld (@FLinguenheld)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "keycodes.h"
|
||||
|
||||
/* How to :
|
||||
- Add an entry in the enum
|
||||
- Create a new sequence of keys
|
||||
- Link the enum to this sequence in the key_combos table
|
||||
|
||||
For macros :
|
||||
- Same steps
|
||||
- And add the macro in the process_combo_event() function
|
||||
*/
|
||||
|
||||
enum combos {
|
||||
LEADER,
|
||||
BOOTLOADER,
|
||||
|
||||
LAYER_ADJUST,
|
||||
LAYER_FN,
|
||||
LAYER_LEFT_HAND,
|
||||
|
||||
/* French */
|
||||
E_ACUTE,
|
||||
C_CEDILLA,
|
||||
E_A,
|
||||
E_O,
|
||||
|
||||
A_GRAVE,
|
||||
E_GRAVE,
|
||||
I_GRAVE,
|
||||
O_GRAVE,
|
||||
U_GRAVE,
|
||||
|
||||
A_CIRCUMFLEX,
|
||||
E_CIRCUMFLEX,
|
||||
I_CIRCUMFLEX,
|
||||
O_CIRCUMFLEX,
|
||||
U_CIRCUMFLEX,
|
||||
|
||||
A_DIAERESIS,
|
||||
E_DIAERESIS,
|
||||
I_DIAERESIS,
|
||||
O_DIAERESIS,
|
||||
U_DIAERESIS,
|
||||
Y_DIAERESIS,
|
||||
|
||||
/* -- */
|
||||
AMPERSAND,
|
||||
AT_SIGN,
|
||||
BACKSLASH,
|
||||
CIRCUMFLEX,
|
||||
COLON,
|
||||
DOLLAR,
|
||||
EQUAL,
|
||||
EXCLAMATION_MARK,
|
||||
GRAVE,
|
||||
HASH,
|
||||
MINUS,
|
||||
PERCENT,
|
||||
PIPE,
|
||||
PLUS,
|
||||
QUESTION_MARK,
|
||||
QUOTE,
|
||||
QUOTE_DOUBLE,
|
||||
SEMICOLON,
|
||||
SLASH,
|
||||
STAR,
|
||||
TILDE,
|
||||
UNDERSCORE,
|
||||
|
||||
ANGLE_BRACKET_LEFT,
|
||||
ANGLE_BRACKET_RIGHT,
|
||||
|
||||
BRACKET_LEFT,
|
||||
BRACKET_RIGHT,
|
||||
CURLY_BRACKET_LEFT,
|
||||
CURLY_BRACKET_RIGHT,
|
||||
PARENTHESIS_LEFT,
|
||||
PARENTHESIS_RIGHT,
|
||||
|
||||
/* -- */
|
||||
ALT_SHIFT,
|
||||
CONTROL_SHIFT,
|
||||
CONTROL_ALT,
|
||||
CONTROL_SHIFT_ALT,
|
||||
RIGHT_ALT,
|
||||
|
||||
/* One hand special */
|
||||
CONTROL_RIGHT,
|
||||
CONTROL_SHIFT_RIGHT,
|
||||
|
||||
// DEL_LEFT,
|
||||
SHIFT_LEFT,
|
||||
ALTGR_LEFT,
|
||||
CONTROL_SHIFT_LEFT,
|
||||
|
||||
/* Just to replace the define in config.h */
|
||||
COMBO_LENGTH,
|
||||
};
|
||||
uint16_t COMBO_LEN = COMBO_LENGTH;
|
||||
|
||||
|
||||
/* Sequences fo keys */
|
||||
const uint16_t PROGMEM combo_leader[] = {LT(_MOUSE, KC_COMM), LT(_ARROWS, KC_DOT), COMBO_END};
|
||||
const uint16_t PROGMEM combo_bootloader[] = {KC_K, KC_TAB, KC_Z, KC_BSPC, KC_V, KC_J, COMBO_END};
|
||||
|
||||
const uint16_t PROGMEM combo_adjust[] = {KC_LCPO, LT(_NUMERIC, KC_ENT), COMBO_END};
|
||||
const uint16_t PROGMEM combo_fn[] = {LT(_NUMERIC, KC_ENT), KC_N, COMBO_END};
|
||||
const uint16_t PROGMEM combo_left_hand[] = {KC_LCPO, GUI_T(KC_ESC), COMBO_END};
|
||||
|
||||
/* -- */
|
||||
// const uint16_t PROGMEM combo_enter_shifted[] = {LT(_NUMERIC, KC_ENT), KC_S, COMBO_END};
|
||||
const uint16_t PROGMEM combo_control_shift[] = {KC_LCPO, KC_S, COMBO_END};
|
||||
const uint16_t PROGMEM combo_control_alt[] = {KC_LCPO, KC_LALT, COMBO_END};
|
||||
const uint16_t PROGMEM combo_control_shift_alt[] = {KC_LCPO, KC_S, KC_A, COMBO_END};
|
||||
const uint16_t PROGMEM combo_right_alt[] = {KC_LAPO, KC_G, COMBO_END};
|
||||
const uint16_t PROGMEM combo_alt_shift[] = {KC_LALT, KC_S, COMBO_END};
|
||||
|
||||
/* -- */
|
||||
const uint16_t PROGMEM combo_e_acute[] = {KC_LCPO, KC_E, COMBO_END};
|
||||
const uint16_t PROGMEM combo_c_cedilla[] = {KC_LCPO, KC_I, COMBO_END};
|
||||
const uint16_t PROGMEM combo_ea[] = {KC_LCPO, KC_A, COMBO_END};
|
||||
const uint16_t PROGMEM combo_eo[] = {KC_LCPO, KC_O, COMBO_END};
|
||||
|
||||
const uint16_t PROGMEM combo_a_grave[] = {LT(_MOUSE, KC_COMM), KC_A, COMBO_END};
|
||||
const uint16_t PROGMEM combo_e_grave[] = {LT(_MOUSE, KC_COMM), KC_E, COMBO_END};
|
||||
const uint16_t PROGMEM combo_i_grave[] = {LT(_MOUSE, KC_COMM), KC_I, COMBO_END};
|
||||
const uint16_t PROGMEM combo_o_grave[] = {LT(_MOUSE, KC_COMM), KC_O, COMBO_END};
|
||||
const uint16_t PROGMEM combo_u_grave[] = {LT(_MOUSE, KC_COMM), KC_U, COMBO_END};
|
||||
|
||||
const uint16_t PROGMEM combo_a_circumflex[] = {KC_C, KC_A, COMBO_END};
|
||||
const uint16_t PROGMEM combo_e_circumflex[] = {KC_C, KC_E, COMBO_END};
|
||||
const uint16_t PROGMEM combo_i_circumflex[] = {KC_C, KC_I, COMBO_END};
|
||||
const uint16_t PROGMEM combo_o_circumflex[] = {KC_C, KC_O, COMBO_END};
|
||||
const uint16_t PROGMEM combo_u_circumflex[] = {KC_C, KC_U, COMBO_END};
|
||||
|
||||
const uint16_t PROGMEM combo_a_diaeresis[] = {KC_T, KC_A, COMBO_END};
|
||||
const uint16_t PROGMEM combo_e_diaeresis[] = {KC_T, KC_E, COMBO_END};
|
||||
const uint16_t PROGMEM combo_i_diaeresis[] = {KC_T, KC_I, COMBO_END};
|
||||
const uint16_t PROGMEM combo_o_diaeresis[] = {KC_T, KC_O, COMBO_END};
|
||||
const uint16_t PROGMEM combo_u_diaeresis[] = {KC_T, KC_U, COMBO_END};
|
||||
const uint16_t PROGMEM combo_y_diaeresis[] = {KC_T, KC_Y, COMBO_END};
|
||||
|
||||
/* -- */
|
||||
const uint16_t PROGMEM combo_ampersand[] = {KC_I, KC_E, COMBO_END};
|
||||
const uint16_t PROGMEM combo_at_sign[] = {KC_Q, KC_Y, COMBO_END};
|
||||
const uint16_t PROGMEM combo_backslash[] = {KC_D, KC_R, COMBO_END};
|
||||
const uint16_t PROGMEM combo_circumflex[] = {KC_T, KC_D, COMBO_END};
|
||||
const uint16_t PROGMEM combo_colon[] = {KC_C, KC_G, COMBO_END};
|
||||
const uint16_t PROGMEM combo_dollar[] = {KC_D, KC_L, COMBO_END};
|
||||
const uint16_t PROGMEM combo_equal[] = {KC_T, KC_H, COMBO_END};
|
||||
const uint16_t PROGMEM combo_exclamation_mark[] = {KC_O, KC_W, COMBO_END};
|
||||
const uint16_t PROGMEM combo_grave[] = {KC_T, KC_G, COMBO_END};
|
||||
const uint16_t PROGMEM combo_hash[] = {KC_I, KC_O, COMBO_END};
|
||||
const uint16_t PROGMEM combo_minus[] = {KC_T, KC_R, COMBO_END};
|
||||
const uint16_t PROGMEM combo_percent[] = {KC_O, KC_U, COMBO_END};
|
||||
const uint16_t PROGMEM combo_pipe[] = {KC_E, KC_U, COMBO_END};
|
||||
const uint16_t PROGMEM combo_plus[] = {KC_T, KC_L, COMBO_END};
|
||||
const uint16_t PROGMEM combo_question_mark[] = {KC_B, KC_O, COMBO_END};
|
||||
const uint16_t PROGMEM combo_quote[] = {KC_T, KC_N, COMBO_END};
|
||||
const uint16_t PROGMEM combo_quote_double[] = {KC_A, KC_U, COMBO_END};
|
||||
const uint16_t PROGMEM combo_semicolon[] = {KC_G, KC_H, COMBO_END};
|
||||
const uint16_t PROGMEM combo_slash[] = {KC_S, KC_L, COMBO_END};
|
||||
const uint16_t PROGMEM combo_star[] = {KC_S, KC_T, COMBO_END};
|
||||
const uint16_t PROGMEM combo_tilde[] = {KC_I, KC_U, COMBO_END};
|
||||
const uint16_t PROGMEM combo_underscore[] = {KC_S, KC_R, COMBO_END};
|
||||
|
||||
const uint16_t PROGMEM combo_angle_bracket_left[] = {KC_C, KC_S, COMBO_END};
|
||||
const uint16_t PROGMEM combo_angle_bracket_right[] = {KC_S, KC_H, COMBO_END};
|
||||
|
||||
const uint16_t PROGMEM combo_bracket_left[] = {KC_Q, KC_U, COMBO_END};
|
||||
const uint16_t PROGMEM combo_bracket_right[] = {KC_E, KC_Y, COMBO_END};
|
||||
const uint16_t PROGMEM combo_curly_bracket_left[] = {KC_X, KC_E, COMBO_END};
|
||||
const uint16_t PROGMEM combo_curly_bracket_right[] = {KC_I, KC_Q, COMBO_END};
|
||||
const uint16_t PROGMEM combo_parenthesis_left[] = {KC_X, KC_U, COMBO_END};
|
||||
const uint16_t PROGMEM combo_parenthesis_right[] = {KC_I, KC_Y, COMBO_END};
|
||||
|
||||
/* One hand special */
|
||||
const uint16_t PROGMEM combo_control_right[] = {LT(_NUMERIC, KC_ENT), KC_R, COMBO_END};
|
||||
const uint16_t PROGMEM combo_control_shift_right[] = {LT(_NUMERIC, KC_ENT), KC_S, COMBO_END};
|
||||
|
||||
const uint16_t PROGMEM combo_shift_left[] = {KC_LCPO, KC_LALT, COMBO_END};
|
||||
// const uint16_t PROGMEM combo_altgr_left[] = {LT(_MOUSE, KC_COMM), KC_LALT, COMBO_END};
|
||||
// const uint16_t PROGMEM combo_del_left[] = {GUI_T(KC_ESC), KC_K, COMBO_END};
|
||||
const uint16_t PROGMEM combo_control_shift_left[] = {LT(_MOUSE, KC_COMM), KC_LALT, COMBO_END};
|
||||
|
||||
|
||||
/* Sequences fo keys */
|
||||
combo_t key_combos[] = {
|
||||
[LEADER] = COMBO(combo_leader, KC_LEAD),
|
||||
[BOOTLOADER] = COMBO(combo_bootloader, QK_BOOTLOADER),
|
||||
|
||||
[LAYER_ADJUST] = COMBO(combo_adjust, OSL(_ADJUST)),
|
||||
[LAYER_FN] = COMBO(combo_fn, OSL(_FN)),
|
||||
[LAYER_LEFT_HAND] = COMBO(combo_left_hand, OSL(_LEFT_HAND)),
|
||||
|
||||
/* -- */
|
||||
// [ENTER_SHIFTED] = COMBO(combo_enter_shifted, S(KC_ENT)),
|
||||
[ALT_SHIFT] = COMBO(combo_alt_shift, A(S(XXXXXXX))),
|
||||
[CONTROL_SHIFT] = COMBO(combo_control_shift, C(S(XXXXXXX))),
|
||||
[CONTROL_ALT] = COMBO(combo_control_alt, C(A(XXXXXXX))),
|
||||
[CONTROL_SHIFT_ALT] = COMBO(combo_control_shift_alt, C(S(A(XXXXXXX)))),
|
||||
[RIGHT_ALT] = COMBO(combo_right_alt, KC_RALT),
|
||||
|
||||
/* French */
|
||||
[E_ACUTE] = COMBO(combo_e_acute, CS_E_ACUTE),
|
||||
[C_CEDILLA] = COMBO(combo_c_cedilla, CS_C_CEDILLA),
|
||||
[E_A] = COMBO(combo_ea, CS_AE),
|
||||
[E_O] = COMBO(combo_eo, CS_OE),
|
||||
|
||||
[A_GRAVE] = COMBO(combo_a_grave, CS_A_GRAVE),
|
||||
[E_GRAVE] = COMBO(combo_e_grave, CS_E_GRAVE),
|
||||
[I_GRAVE] = COMBO(combo_i_grave, CS_I_GRAVE),
|
||||
[O_GRAVE] = COMBO(combo_o_grave, CS_O_GRAVE),
|
||||
[U_GRAVE] = COMBO(combo_u_grave, CS_U_GRAVE),
|
||||
|
||||
[A_CIRCUMFLEX] = COMBO(combo_a_circumflex, CS_A_CIRCUMFLEX),
|
||||
[E_CIRCUMFLEX] = COMBO(combo_e_circumflex, CS_E_CIRCUMFLEX),
|
||||
[I_CIRCUMFLEX] = COMBO(combo_i_circumflex, CS_I_CIRCUMFLEX),
|
||||
[O_CIRCUMFLEX] = COMBO(combo_o_circumflex, CS_O_CIRCUMFLEX),
|
||||
[U_CIRCUMFLEX] = COMBO(combo_u_circumflex, CS_U_CIRCUMFLEX),
|
||||
|
||||
[A_DIAERESIS] = COMBO(combo_a_diaeresis, CS_A_DIAERESIS),
|
||||
[E_DIAERESIS] = COMBO(combo_e_diaeresis, CS_E_DIAERESIS),
|
||||
[I_DIAERESIS] = COMBO(combo_i_diaeresis, CS_I_DIAERESIS),
|
||||
[O_DIAERESIS] = COMBO(combo_o_diaeresis, CS_O_DIAERESIS),
|
||||
[U_DIAERESIS] = COMBO(combo_u_diaeresis, CS_U_DIAERESIS),
|
||||
[Y_DIAERESIS] = COMBO(combo_y_diaeresis, CS_Y_DIAERESIS),
|
||||
|
||||
/* -- */
|
||||
[AMPERSAND] = COMBO(combo_ampersand, KC_AMPR),
|
||||
[AT_SIGN] = COMBO(combo_at_sign, KC_AT),
|
||||
[BACKSLASH] = COMBO(combo_backslash, KC_BSLS),
|
||||
[CIRCUMFLEX] = COMBO(combo_circumflex, KC_CIRC),
|
||||
[COLON] = COMBO(combo_colon, KC_COLON),
|
||||
[DOLLAR] = COMBO(combo_dollar, KC_DLR),
|
||||
[EQUAL] = COMBO(combo_equal, KC_EQL),
|
||||
[EXCLAMATION_MARK] = COMBO(combo_exclamation_mark, KC_EXCLAIM),
|
||||
[GRAVE] = COMBO(combo_grave, KC_GRV),
|
||||
[HASH] = COMBO(combo_hash, KC_HASH),
|
||||
[MINUS] = COMBO(combo_minus, KC_MINS),
|
||||
[PERCENT] = COMBO(combo_percent, KC_PERC),
|
||||
[PIPE] = COMBO(combo_pipe, KC_PIPE),
|
||||
[PLUS] = COMBO(combo_plus, KC_PLUS),
|
||||
[QUESTION_MARK] = COMBO(combo_question_mark, KC_QUESTION),
|
||||
[QUOTE] = COMBO(combo_quote, KC_QUOTE),
|
||||
[QUOTE_DOUBLE] = COMBO(combo_quote_double, KC_DOUBLE_QUOTE),
|
||||
[SEMICOLON] = COMBO(combo_semicolon, KC_SEMICOLON),
|
||||
[SLASH] = COMBO(combo_slash, KC_SLSH),
|
||||
[STAR] = COMBO(combo_star, KC_ASTR),
|
||||
[TILDE] = COMBO(combo_tilde, KC_TILD),
|
||||
[UNDERSCORE] = COMBO(combo_underscore, KC_UNDS),
|
||||
|
||||
[ANGLE_BRACKET_LEFT] = COMBO(combo_angle_bracket_left, KC_LABK),
|
||||
[ANGLE_BRACKET_RIGHT] = COMBO(combo_angle_bracket_right, KC_RABK),
|
||||
|
||||
[BRACKET_LEFT] = COMBO(combo_bracket_left, KC_LEFT_BRACKET),
|
||||
[BRACKET_RIGHT] = COMBO(combo_bracket_right, KC_RIGHT_BRACKET),
|
||||
[CURLY_BRACKET_LEFT] = COMBO(combo_curly_bracket_left, KC_LEFT_CURLY_BRACE),
|
||||
[CURLY_BRACKET_RIGHT] = COMBO(combo_curly_bracket_right, KC_RIGHT_CURLY_BRACE),
|
||||
[PARENTHESIS_LEFT] = COMBO(combo_parenthesis_left, KC_LEFT_PAREN),
|
||||
[PARENTHESIS_RIGHT] COMBO(combo_parenthesis_right, KC_RIGHT_PAREN),
|
||||
|
||||
/* One hand special */
|
||||
[CONTROL_RIGHT] = COMBO(combo_control_right, KC_RCTL),
|
||||
[CONTROL_SHIFT_RIGHT] = COMBO(combo_control_shift_right, C(S(XXXXXXX))),
|
||||
|
||||
[SHIFT_LEFT] = COMBO(combo_shift_left, KC_LSFT),
|
||||
// [ALTGR_LEFT] = COMBO(combo_altgr_left, KC_ALGR),
|
||||
[CONTROL_SHIFT_LEFT] = COMBO(combo_control_shift_left, C(S(XXXXXXX))),
|
||||
// [DEL_LEFT] = COMBO(combo_del_left, KC_BSPC),
|
||||
};
|
|
@ -0,0 +1,268 @@
|
|||
// Copyright 2023 Florent Linguenheld (@FLinguenheld)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
LEADER_EXTERNS();
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
LEADER_DICTIONARY() {
|
||||
leading = false;
|
||||
leader_end();
|
||||
|
||||
// SEQ_ONE_KEY(KC_F) {
|
||||
// // Anything you can do in a macro.
|
||||
// SEND_STRING("QMK is awesome."); }
|
||||
|
||||
|
||||
SEQ_TWO_KEYS(KC_M, KC_S) {
|
||||
SEND_STRING("f@linguenheld.fr"); }
|
||||
SEQ_TWO_KEYS(KC_M, KC_L) {
|
||||
SEND_STRING("florent@linguenheld.fr"); }
|
||||
SEQ_TWO_KEYS(KC_F, KC_L) {
|
||||
SEND_STRING("FLinguenheld"); }
|
||||
|
||||
SEQ_THREE_KEYS(KC_T, KC_E, KC_S) {
|
||||
SEND_STRING("test01234"); }
|
||||
SEQ_THREE_KEYS(KC_A, KC_D, KC_M) {
|
||||
SEND_STRING("admin01234"); }
|
||||
|
||||
SEQ_ONE_KEY(KC_C) {
|
||||
SEND_STRING(" | xclip -r -selection clipboard"); }
|
||||
|
||||
/* Degree */
|
||||
SEQ_THREE_KEYS(KC_D, KC_E, KC_G) {
|
||||
send_unicode_string("°"); }
|
||||
|
||||
/* Copyright / Register */
|
||||
SEQ_THREE_KEYS(KC_C, KC_O, KC_P) {
|
||||
send_unicode_string("©"); }
|
||||
SEQ_THREE_KEYS(KC_R, KC_E, KC_G) {
|
||||
send_unicode_string("®"); }
|
||||
|
||||
/* Diameter */
|
||||
SEQ_THREE_KEYS(KC_D, KC_I, KC_A) {
|
||||
send_unicode_string("ø"); }
|
||||
SEQ_FOUR_KEYS(KC_D, KC_I, KC_A, KC_M) {
|
||||
send_unicode_string("Ø"); }
|
||||
|
||||
/* Currency */
|
||||
SEQ_THREE_KEYS(KC_E, KC_U, KC_R) {
|
||||
send_unicode_string("€"); }
|
||||
SEQ_THREE_KEYS(KC_P, KC_O, KC_U) {
|
||||
send_unicode_string("£"); }
|
||||
SEQ_THREE_KEYS(KC_Y, KC_E, KC_N) {
|
||||
send_unicode_string("¥"); }
|
||||
SEQ_THREE_KEYS(KC_C, KC_E, KC_N) {
|
||||
send_unicode_string("¢"); }
|
||||
|
||||
/* Fractions */
|
||||
SEQ_THREE_KEYS(KC_F, KC_C, KC_T) {
|
||||
send_unicode_string("¼"); }
|
||||
SEQ_THREE_KEYS(KC_F, KC_C, KC_G) {
|
||||
send_unicode_string("½"); }
|
||||
SEQ_THREE_KEYS(KC_F, KC_H, KC_T) {
|
||||
send_unicode_string("¾"); }
|
||||
|
||||
/* Maths */
|
||||
SEQ_THREE_KEYS(KC_M, KC_U, KC_L) {
|
||||
send_unicode_string("×"); }
|
||||
SEQ_THREE_KEYS(KC_D, KC_I, KC_V) {
|
||||
send_unicode_string("÷"); }
|
||||
SEQ_TWO_KEYS(KC_P, KC_M) {
|
||||
send_unicode_string("±"); }
|
||||
SEQ_THREE_KEYS(KC_I, KC_N, KC_E) {
|
||||
send_unicode_string("≠"); }
|
||||
SEQ_THREE_KEYS(KC_A, KC_L, KC_M) {
|
||||
send_unicode_string("≈"); }
|
||||
SEQ_THREE_KEYS(KC_S, KC_Q, KC_U) {
|
||||
send_unicode_string("√"); }
|
||||
SEQ_THREE_KEYS(KC_I, KC_N, KC_F) {
|
||||
send_unicode_string("∞"); }
|
||||
SEQ_TWO_KEYS(KC_LABK, KC_LABK) {
|
||||
send_unicode_string("≤"); }
|
||||
SEQ_TWO_KEYS(KC_RABK, KC_RABK) {
|
||||
send_unicode_string("≥"); }
|
||||
|
||||
/* Greek */
|
||||
SEQ_TWO_KEYS(KC_P, KC_I) {
|
||||
send_unicode_string("π"); }
|
||||
SEQ_THREE_KEYS(KC_P, KC_I, KC_I) {
|
||||
send_unicode_string("Π"); }
|
||||
|
||||
SEQ_THREE_KEYS(KC_O, KC_M, KC_E) {
|
||||
send_unicode_string("ω"); }
|
||||
SEQ_FOUR_KEYS(KC_O, KC_M, KC_E, KC_G) {
|
||||
send_unicode_string("Ω"); }
|
||||
|
||||
/* Icons */
|
||||
SEQ_THREE_KEYS(KC_F, KC_L, KC_A) {
|
||||
send_unicode_string("⚡"); }
|
||||
SEQ_THREE_KEYS(KC_S, KC_T, KC_A) {
|
||||
send_unicode_string("⭐"); }
|
||||
SEQ_THREE_KEYS(KC_S, KC_P, KC_A) {
|
||||
send_unicode_string("✨"); }
|
||||
SEQ_THREE_KEYS(KC_P, KC_O, KC_P) {
|
||||
send_unicode_string("🎉"); }
|
||||
SEQ_THREE_KEYS(KC_R, KC_E, KC_C) {
|
||||
send_unicode_string("♻️"); }
|
||||
SEQ_THREE_KEYS(KC_L, KC_O, KC_V) {
|
||||
send_unicode_string("❤️"); }
|
||||
SEQ_THREE_KEYS(KC_F, KC_I, KC_R) {
|
||||
send_unicode_string("🔥"); }
|
||||
SEQ_THREE_KEYS(KC_B, KC_O, KC_M) {
|
||||
send_unicode_string("💣"); }
|
||||
SEQ_FOUR_KEYS(KC_B, KC_O, KC_U, KC_M) {
|
||||
send_unicode_string("💥"); }
|
||||
SEQ_THREE_KEYS(KC_R, KC_O, KC_C) {
|
||||
send_unicode_string("🚀"); }
|
||||
SEQ_THREE_KEYS(KC_T, KC_E, KC_L) {
|
||||
send_unicode_string("🔭"); }
|
||||
SEQ_THREE_KEYS(KC_M, KC_A, KC_G) {
|
||||
send_unicode_string("🔎"); }
|
||||
SEQ_THREE_KEYS(KC_W, KC_A, KC_R) {
|
||||
send_unicode_string("⚠️"); }
|
||||
|
||||
SEQ_THREE_KEYS(KC_B, KC_U, KC_L) {
|
||||
send_unicode_string("💡"); }
|
||||
SEQ_FOUR_KEYS(KC_I, KC_N, KC_F, KC_O) {
|
||||
send_unicode_string("ℹ️"); }
|
||||
SEQ_THREE_KEYS(KC_G, KC_E, KC_A) {
|
||||
send_unicode_string("⚙️"); }
|
||||
SEQ_THREE_KEYS(KC_L, KC_I, KC_N) {
|
||||
send_unicode_string("🔗"); }
|
||||
SEQ_THREE_KEYS(KC_P, KC_I, KC_N) {
|
||||
send_unicode_string("📌"); }
|
||||
SEQ_FOUR_KEYS(KC_F, KC_L, KC_A, KC_G) {
|
||||
send_unicode_string("🚩"); }
|
||||
SEQ_THREE_KEYS(KC_B, KC_A, KC_L) {
|
||||
send_unicode_string("🎈"); }
|
||||
SEQ_THREE_KEYS(KC_G, KC_I, KC_F) {
|
||||
send_unicode_string("🎁"); }
|
||||
|
||||
SEQ_THREE_KEYS(KC_P, KC_E, KC_N) {
|
||||
send_unicode_string("✏️"); }
|
||||
SEQ_THREE_KEYS(KC_K, KC_E, KC_Y) {
|
||||
send_unicode_string("🔑"); }
|
||||
SEQ_THREE_KEYS(KC_B, KC_O, KC_X) {
|
||||
send_unicode_string("🧰"); }
|
||||
|
||||
SEQ_TWO_KEYS(KC_O, KC_K) {
|
||||
send_unicode_string("👌"); }
|
||||
SEQ_THREE_KEYS(KC_O, KC_W, KC_D) {
|
||||
send_unicode_string("⛔"); }
|
||||
|
||||
SEQ_ONE_KEY(KC_V) {
|
||||
send_unicode_string("✓"); }
|
||||
SEQ_TWO_KEYS(KC_V, KC_B) {
|
||||
send_unicode_string("☑"); }
|
||||
SEQ_TWO_KEYS(KC_V, KC_G) {
|
||||
send_unicode_string("✅"); }
|
||||
|
||||
SEQ_ONE_KEY(KC_X) {
|
||||
send_unicode_string("✗"); }
|
||||
SEQ_TWO_KEYS(KC_X, KC_B) {
|
||||
send_unicode_string("☒"); }
|
||||
SEQ_TWO_KEYS(KC_X, KC_G) {
|
||||
send_unicode_string("❎"); }
|
||||
SEQ_TWO_KEYS(KC_X, KC_R) {
|
||||
send_unicode_string("❌"); }
|
||||
|
||||
SEQ_ONE_KEY(KC_QUESTION) {
|
||||
send_unicode_string("❔"); }
|
||||
SEQ_ONE_KEY(KC_EXCLAIM) {
|
||||
send_unicode_string("❕"); }
|
||||
SEQ_TWO_KEYS(KC_QUESTION, KC_QUESTION) {
|
||||
send_unicode_string("❓"); }
|
||||
SEQ_TWO_KEYS(KC_EXCLAIM, KC_EXCLAIM) {
|
||||
send_unicode_string("❗"); }
|
||||
|
||||
SEQ_THREE_KEYS(KC_C, KC_O, KC_F) {
|
||||
send_unicode_string("☕"); }
|
||||
SEQ_THREE_KEYS(KC_U, KC_M, KC_B) {
|
||||
send_unicode_string("☔"); }
|
||||
|
||||
SEQ_THREE_KEYS(KC_L, KC_O, KC_L) {
|
||||
send_unicode_string("😀"); }
|
||||
SEQ_THREE_KEYS(KC_M, KC_D, KC_R) {
|
||||
send_unicode_string("🤣"); }
|
||||
SEQ_THREE_KEYS(KC_K, KC_I, KC_S) {
|
||||
send_unicode_string("😙"); }
|
||||
SEQ_THREE_KEYS(KC_A, KC_N, KC_G) {
|
||||
send_unicode_string("😇"); }
|
||||
SEQ_THREE_KEYS(KC_G, KC_L, KC_A) {
|
||||
send_unicode_string("😎"); }
|
||||
SEQ_THREE_KEYS(KC_A, KC_N, KC_G) {
|
||||
send_unicode_string("🤬"); }
|
||||
SEQ_THREE_KEYS(KC_F, KC_E, KC_A) {
|
||||
send_unicode_string("😱"); }
|
||||
SEQ_THREE_KEYS(KC_N, KC_E, KC_U) {
|
||||
send_unicode_string("😐"); }
|
||||
SEQ_THREE_KEYS(KC_T, KC_H, KC_I) {
|
||||
send_unicode_string("🤔"); }
|
||||
SEQ_THREE_KEYS(KC_Z, KC_I, KC_P) {
|
||||
send_unicode_string("🤐"); }
|
||||
SEQ_THREE_KEYS(KC_S, KC_U, KC_R) {
|
||||
send_unicode_string("😯"); }
|
||||
SEQ_THREE_KEYS(KC_R, KC_O, KC_L) {
|
||||
send_unicode_string("🙄"); }
|
||||
SEQ_THREE_KEYS(KC_M, KC_O, KC_O) {
|
||||
send_unicode_string("🌝"); }
|
||||
SEQ_THREE_KEYS(KC_H, KC_U, KC_G) {
|
||||
send_unicode_string("🫂"); }
|
||||
|
||||
SEQ_THREE_KEYS(KC_H, KC_E, KC_N) {
|
||||
send_unicode_string("🐔"); }
|
||||
SEQ_THREE_KEYS(KC_R, KC_O, KC_O) {
|
||||
send_unicode_string("🐓"); }
|
||||
SEQ_THREE_KEYS(KC_D, KC_U, KC_C) {
|
||||
send_unicode_string("🦆"); }
|
||||
SEQ_THREE_KEYS(KC_P, KC_E, KC_A) {
|
||||
send_unicode_string("🦚"); }
|
||||
SEQ_THREE_KEYS(KC_B, KC_I, KC_R) {
|
||||
send_unicode_string("🐦"); }
|
||||
|
||||
/* Subscript / superscript */
|
||||
SEQ_THREE_KEYS(KC_U, KC_P, KC_F) {
|
||||
send_unicode_string("⁰"); }
|
||||
SEQ_THREE_KEYS(KC_D, KC_N, KC_F) {
|
||||
send_unicode_string("₀"); }
|
||||
SEQ_THREE_KEYS(KC_U, KC_P, KC_C) {
|
||||
send_unicode_string("¹"); }
|
||||
SEQ_THREE_KEYS(KC_D, KC_N, KC_C) {
|
||||
send_unicode_string("₁"); }
|
||||
SEQ_THREE_KEYS(KC_U, KC_P, KC_G) {
|
||||
send_unicode_string("²"); }
|
||||
SEQ_THREE_KEYS(KC_D, KC_N, KC_G) {
|
||||
send_unicode_string("₂"); }
|
||||
SEQ_THREE_KEYS(KC_U, KC_P, KC_H) {
|
||||
send_unicode_string("³"); }
|
||||
SEQ_THREE_KEYS(KC_D, KC_N, KC_H) {
|
||||
send_unicode_string("₃"); }
|
||||
SEQ_THREE_KEYS(KC_U, KC_P, KC_T) {
|
||||
send_unicode_string("⁴"); }
|
||||
SEQ_THREE_KEYS(KC_D, KC_N, KC_T) {
|
||||
send_unicode_string("₄"); }
|
||||
SEQ_THREE_KEYS(KC_U, KC_P, KC_S) {
|
||||
send_unicode_string("⁵"); }
|
||||
SEQ_THREE_KEYS(KC_D, KC_N, KC_S) {
|
||||
send_unicode_string("₅"); }
|
||||
SEQ_THREE_KEYS(KC_U, KC_P, KC_R) {
|
||||
send_unicode_string("⁶"); }
|
||||
SEQ_THREE_KEYS(KC_D, KC_N, KC_R) {
|
||||
send_unicode_string("₆"); }
|
||||
SEQ_THREE_KEYS(KC_U, KC_P, KC_P) {
|
||||
send_unicode_string("⁷"); }
|
||||
SEQ_THREE_KEYS(KC_D, KC_N, KC_P) {
|
||||
send_unicode_string("₇"); }
|
||||
SEQ_THREE_KEYS(KC_U, KC_P, KC_D) {
|
||||
send_unicode_string("⁸"); }
|
||||
SEQ_THREE_KEYS(KC_D, KC_N, KC_D) {
|
||||
send_unicode_string("₈"); }
|
||||
SEQ_THREE_KEYS(KC_U, KC_P, KC_L) {
|
||||
send_unicode_string("⁹"); }
|
||||
SEQ_THREE_KEYS(KC_D, KC_N, KC_L) {
|
||||
send_unicode_string("₉"); }
|
||||
|
||||
};
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
// Copyright 2023 Florent Linguenheld (@FLinguenheld)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
enum layers {
|
||||
_BASE,
|
||||
_NUMERIC,
|
||||
_ARROWS,
|
||||
_MOUSE,
|
||||
_ADJUST,
|
||||
_FN,
|
||||
_LEFT_HAND,
|
||||
};
|
||||
|
||||
enum custom_keys {
|
||||
UNICODE = SAFE_RANGE, // Shortcut to write unicodes, see numeric layer
|
||||
|
||||
/* See auto-shift */
|
||||
CS_E_ACUTE,
|
||||
|
||||
CS_A_GRAVE,
|
||||
CS_E_GRAVE,
|
||||
CS_I_GRAVE,
|
||||
CS_O_GRAVE,
|
||||
CS_U_GRAVE,
|
||||
|
||||
CS_C_CEDILLA,
|
||||
CS_AE,
|
||||
CS_OE,
|
||||
|
||||
CS_A_CIRCUMFLEX,
|
||||
CS_E_CIRCUMFLEX,
|
||||
CS_I_CIRCUMFLEX,
|
||||
CS_O_CIRCUMFLEX,
|
||||
CS_U_CIRCUMFLEX,
|
||||
|
||||
CS_A_DIAERESIS,
|
||||
CS_E_DIAERESIS,
|
||||
CS_I_DIAERESIS,
|
||||
CS_O_DIAERESIS,
|
||||
CS_U_DIAERESIS,
|
||||
CS_Y_DIAERESIS,
|
||||
};
|
|
@ -0,0 +1,133 @@
|
|||
/* Copyright 2023 Florent Linguenheld (@FLinguenheld)
|
||||
*
|
||||
* 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
|
||||
#include "keycodes.h"
|
||||
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
|
||||
/* Macros */
|
||||
switch (keycode) {
|
||||
|
||||
case UNICODE:
|
||||
if (record->event.pressed) {
|
||||
register_code(KC_LCTL);
|
||||
register_code(KC_LSFT);
|
||||
tap_code16(KC_U);
|
||||
} else {
|
||||
unregister_code(KC_LCTL);
|
||||
unregister_code(KC_LSFT);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
|
||||
[_BASE] = LAYOUT(
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
GUI_T(KC_ESC) , KC_B , KC_O , KC_W , KC_BSPC , KC_J , KC_P , KC_D , KC_L , KC_F ,
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
KC_A , KC_I , KC_E , KC_U , KC_TAB , KC_V , KC_T , KC_S , KC_R , KC_N ,
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
KC_LALT , KC_X , KC_Q , KC_Y , KC_K , KC_Z , KC_C , KC_G , KC_H , KC_M ,
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||
LT(_MOUSE, KC_COMM) , KC_LCPO , LT(_NUMERIC, KC_ENT) , LT(_ARROWS, KC_DOT)
|
||||
// |-------------------------+----/* Space ctl */------| |-------------------------+-------------------------|
|
||||
),
|
||||
|
||||
[_NUMERIC] = LAYOUT(
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
_______ , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , KC_7 , KC_8 , KC_9 , KC_DOT ,
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , KC_4 , KC_5 , KC_6 , KC_0 ,
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
_______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_1 , KC_2 , KC_3 , KC_COMM ,
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||
XXXXXXX , UNICODE , XXXXXXX , XXXXXXX
|
||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||
),
|
||||
|
||||
[_MOUSE] = LAYOUT(
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
KC_MS_WH_LEFT , KC_MS_WH_UP , KC_MS_WH_DOWN , KC_MS_WH_RIGHT, _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
KC_MS_LEFT , KC_MS_UP , KC_MS_DOWN , KC_MS_RIGHT , _______ , XXXXXXX , KC_MS_ACCEL0 , KC_MS_ACCEL1 , KC_MS_ACCEL2 , XXXXXXX ,
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
KC_MS_BTN1 , XXXXXXX , KC_MS_BTN3 , KC_MS_BTN2 , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||
XXXXXXX , _______ , KC_MS_BTN1 , KC_MS_BTN2
|
||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||
),
|
||||
|
||||
[_ARROWS] = LAYOUT(
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
_______ , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , KC_HOME , KC_PAGE_DOWN , KC_PAGE_UP , KC_END ,
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , KC_LEFT , KC_DOWN , KC_UP , KC_RIGHT ,
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
_______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , C(KC_D) , C(KC_U) , XXXXXXX ,
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||
XXXXXXX , _______ , XXXXXXX , XXXXXXX
|
||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||
),
|
||||
|
||||
[_ADJUST] = LAYOUT(
|
||||
//|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+---------------+-----------------|
|
||||
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_PRINT_SCREEN , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_AUDIO_VOL_UP ,
|
||||
//|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+---------------+-----------------|
|
||||
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,S(KC_PRINT_SCREEN), XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,KC_AUDIO_VOL_DOWN,
|
||||
//|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+---------------+-----------------|
|
||||
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_AUDIO_MUTE ,
|
||||
//|---------------+---------------+---------------+---------------+------------------| |---------------+---------------+---------------+---------------+-----------------|
|
||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||
XXXXXXX , _______ , XXXXXXX , XXXXXXX
|
||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||
),
|
||||
|
||||
[_FN] = LAYOUT(
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
_______ , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , KC_F7 , KC_F8 , KC_F9 , KC_F10 ,
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , KC_F4 , KC_F5 , KC_F6 , KC_F11 ,
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
_______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , KC_F1 , KC_F2 , KC_F3 , KC_F12 ,
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||
XXXXXXX , _______ , XXXXXXX , XXXXXXX
|
||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||
),
|
||||
|
||||
[_LEFT_HAND] = LAYOUT(
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
_______ , XXXXXXX , XXXXXXX , XXXXXXX , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
XXXXXXX , C(KC_X) , C(KC_C) , C(KC_V) , _______ , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
_______ , XXXXXXX , XXXXXXX , C(KC_Z) , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX , XXXXXXX ,
|
||||
//|---------------+---------------+---------------+---------------+---------------| |---------------+---------------+---------------+---------------+---------------|
|
||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||
XXXXXXX , _______ , XXXXXXX , XXXXXXX
|
||||
// |-------------------------+-------------------------| |-------------------------+-------------------------|
|
||||
),
|
||||
};
|
|
@ -0,0 +1,232 @@
|
|||
// Copyright 2023 Florent Linguenheld (@FLinguenheld)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include "progmem.h"
|
||||
|
||||
/* Online editor: https://joric.github.io/qle/ */
|
||||
static const unsigned char PROGMEM font[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6,
|
||||
0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0xE6,
|
||||
0xE6, 0xE6, 0x06, 0x06, 0xE6, 0xE6,
|
||||
0xE6, 0xFE, 0xFE, 0x06, 0x06, 0xFE,
|
||||
0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFC,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3F, 0x7F, 0x70, 0x60, 0x67, 0x67,
|
||||
0x67, 0x67, 0x67, 0x7F, 0x7F, 0x7F,
|
||||
0x7F, 0x7F, 0x60, 0x60, 0x7F, 0x7F,
|
||||
0x7F, 0x7F, 0x7F, 0x60, 0x60, 0x67,
|
||||
0x67, 0x67, 0x67, 0x67, 0x7F, 0x3F,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6,
|
||||
0xE6, 0xE6, 0x06, 0x0E, 0xFE, 0xFE,
|
||||
0x06, 0x06, 0xFE, 0xFE, 0xFE, 0xFE,
|
||||
0xFE, 0xFE, 0xE6, 0xE6, 0xE6, 0x06,
|
||||
0x06, 0xE6, 0xE6, 0xE6, 0xFE, 0xFC,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFC, 0xFE, 0x0E, 0x06, 0x66, 0x66,
|
||||
0x66, 0x66, 0xE6, 0xFE, 0xFE, 0x06,
|
||||
0x06, 0x66, 0x66, 0x66, 0xE6, 0xE6,
|
||||
0xFE, 0xFE, 0xE6, 0xE6, 0xE6, 0x06,
|
||||
0x06, 0xE6, 0xE6, 0xE6, 0xFE, 0xFC,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3F, 0x7F, 0x60, 0x60, 0x7C, 0x7C,
|
||||
0x7C, 0x7C, 0x60, 0x60, 0x7F, 0x7F,
|
||||
0x60, 0x60, 0x67, 0x67, 0x67, 0x67,
|
||||
0x67, 0x7F, 0x7F, 0x7F, 0x7F, 0x60,
|
||||
0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3F, 0x7F, 0x67, 0x66, 0x66, 0x66,
|
||||
0x66, 0x60, 0x70, 0x7F, 0x7F, 0x60,
|
||||
0x60, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F,
|
||||
0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x60,
|
||||
0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x3F,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6,
|
||||
0xE6, 0x06, 0x0E, 0xFE, 0xFE, 0x0E,
|
||||
0x06, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6,
|
||||
0xFE, 0xFE, 0x06, 0x06, 0x66, 0x66,
|
||||
0x66, 0x66, 0x06, 0x0E, 0xFE, 0xFC,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xFC, 0xFE, 0x0E, 0x06, 0xE6, 0xE6,
|
||||
0xE6, 0xE6, 0xE6, 0xFE, 0xFE, 0x06,
|
||||
0x06, 0xCE, 0x9E, 0x9E, 0xCE, 0x06,
|
||||
0x06, 0xFE, 0xFE, 0x06, 0x06, 0xE6,
|
||||
0xE6, 0xE6, 0x0E, 0x1E, 0xFE, 0xFC,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3F, 0x7F, 0x60, 0x60, 0x7C, 0x7C,
|
||||
0x7C, 0x60, 0x60, 0x7F, 0x7F, 0x70,
|
||||
0x60, 0x67, 0x67, 0x64, 0x60, 0x70,
|
||||
0x7F, 0x7F, 0x60, 0x60, 0x7E, 0x7E,
|
||||
0x78, 0x70, 0x62, 0x67, 0x7F, 0x3F,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x3F, 0x7F, 0x70, 0x60, 0x67, 0x67,
|
||||
0x67, 0x67, 0x67, 0x7F, 0x7F, 0x60,
|
||||
0x60, 0x7F, 0x7F, 0x7F, 0x7F, 0x60,
|
||||
0x60, 0x7F, 0x7F, 0x60, 0x60, 0x67,
|
||||
0x67, 0x67, 0x70, 0x78, 0x7F, 0x3F,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
|
@ -0,0 +1,457 @@
|
|||
// Copyright 2023 Florent Linguenheld (@FLinguenheld)
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "keycodes.h"
|
||||
|
||||
/* Leader state */
|
||||
static bool is_leader_active = false;
|
||||
void leader_start(void) {
|
||||
is_leader_active = true;
|
||||
}
|
||||
void leader_end(void) {
|
||||
is_leader_active = false;
|
||||
}
|
||||
|
||||
|
||||
void oled_display(void) {
|
||||
|
||||
/* Layers */
|
||||
switch (get_highest_layer(layer_state)) {
|
||||
|
||||
case _BASE: ;
|
||||
if (is_keyboard_master()) {
|
||||
static const char PROGMEM qmk_logo_master[] = {
|
||||
// 'raven', 32x128px
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
|
||||
0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x8f, 0x5f, 0x31, 0x79, 0x33, 0x7f,
|
||||
0x3b, 0x71, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x4c, 0x02, 0x01, 0x95, 0xff, 0xb5, 0x05, 0x02, 0x4c, 0x30,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x7e, 0x01, 0x01, 0x01, 0x7e, 0x40, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0,
|
||||
0xf0, 0xf8, 0xfc, 0xfc, 0xfe, 0xfe, 0xfe, 0xfe, 0xfc, 0x7c, 0x7c, 0xf8, 0xf0, 0xe0, 0x80, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xcf, 0xef, 0xe7, 0xf3, 0xfb, 0xf9,
|
||||
0xfd, 0xfc, 0xfe, 0xff, 0xff, 0xff, 0x7f, 0x3f, 0x0f, 0x0e, 0x1a, 0x23, 0x43, 0x3f, 0x03, 0x00,
|
||||
0x00, 0x0c, 0x1e, 0x1f, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x80, 0x40, 0xe0, 0xbf, 0x33,
|
||||
0x30, 0x60, 0x20, 0x21, 0xff, 0x20, 0x60, 0x20, 0x40, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0xf8,
|
||||
0xfc, 0xfc, 0x7c, 0x00, 0x00, 0x00, 0x7c, 0xfc, 0xfc, 0xf8, 0x00, 0xff, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x30,
|
||||
0x20, 0x30, 0x20, 0x32, 0x20, 0x32, 0x20, 0x30, 0x20, 0x1c, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
oled_write_raw_P(qmk_logo_master, sizeof(qmk_logo_master));
|
||||
|
||||
} else {
|
||||
static const char PROGMEM qmk_logo_slave[] = {
|
||||
// 'birds', 32x128px
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x40, 0xc0, 0xe0, 0xd0, 0x88, 0x84, 0x04, 0x04, 0xc4, 0xc4, 0x08, 0x08, 0x10, 0x60, 0x80,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xf8, 0x46, 0x81, 0x02, 0x02, 0x06, 0x04, 0x04, 0x04, 0x74, 0x84, 0x06, 0x03, 0x81,
|
||||
0x42, 0x24, 0x18, 0x10, 0xa0, 0x40, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x06, 0x08, 0x11, 0x12, 0x24, 0x24, 0x48, 0xc8, 0x48, 0x48, 0xc9, 0x49, 0x4a,
|
||||
0x4a, 0x26, 0x25, 0x25, 0x14, 0x14, 0x14, 0x1d, 0x15, 0x2e, 0x54, 0x60, 0x40, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x01, 0x05, 0x02, 0x03, 0x02, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x80, 0x40, 0x20, 0x10, 0x08, 0x08, 0x08, 0x08, 0x88, 0xc8, 0x08, 0x30, 0xc0, 0xc0, 0x80, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x18, 0x04, 0x03,
|
||||
0x00, 0x00, 0x00, 0x80, 0x80, 0x70, 0x18, 0x00, 0x00, 0x00, 0x80, 0x70, 0x0f, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x70, 0x50, 0x48, 0x48, 0x24, 0x24, 0x12, 0x0a, 0x05, 0x09, 0x13, 0x12, 0x22, 0x22,
|
||||
0xe1, 0x21, 0x21, 0x20, 0xe0, 0x20, 0x20, 0x10, 0x08, 0x04, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x04, 0x07, 0x04, 0x00, 0x04, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
oled_write_raw_P(qmk_logo_slave, sizeof(qmk_logo_slave));
|
||||
}
|
||||
break;
|
||||
|
||||
case _NUMERIC: ;
|
||||
static const char PROGMEM qmk_numeric[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf0, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x03, 0x07, 0x0f, 0x1e,
|
||||
0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x03, 0x87, 0x87, 0x87, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e,
|
||||
0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0e, 0x1c, 0x38, 0x70, 0xe0,
|
||||
0xe0, 0x70, 0x38, 0x1c, 0x0e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xc7, 0xc7, 0xc7, 0xc7, 0xc7,
|
||||
0xc7, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x3f, 0x38, 0x38, 0x38, 0x38, 0x38,
|
||||
0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x1c, 0x1c, 0x1c, 0x1c,
|
||||
0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xfc, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x06, 0x06, 0x06, 0x06,
|
||||
0x06, 0x06, 0x0e, 0x1e, 0x3e, 0x77, 0xe7, 0xc3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0,
|
||||
0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0xff, 0xff,
|
||||
0xff, 0xff, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3,
|
||||
0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e,
|
||||
0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
oled_write_raw_P(qmk_numeric, sizeof(qmk_numeric));
|
||||
break;
|
||||
|
||||
case _MOUSE: ;
|
||||
static const char PROGMEM qmk_mouse[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x3e, 0x3c, 0x78, 0xf0, 0xe0, 0xc0,
|
||||
0xc0, 0xe0, 0xf0, 0x78, 0x3c, 0x3e, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03,
|
||||
0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x81, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
|
||||
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc1, 0x81, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
|
||||
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc1, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0xc1, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x7f, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70,
|
||||
0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70,
|
||||
0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
|
||||
0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
|
||||
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x81, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1,
|
||||
0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1,
|
||||
0xc1, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1, 0xc1,
|
||||
0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
oled_write_raw_P(qmk_mouse, sizeof(qmk_mouse));
|
||||
break;
|
||||
|
||||
case _ARROWS: ;
|
||||
static const char PROGMEM qmk_arrows[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc,
|
||||
0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x3e, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0xff, 0xff,
|
||||
0xff, 0xff, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3e, 0x7c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03,
|
||||
0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0x7c, 0x3c, 0x1c, 0x0c,
|
||||
0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x0c, 0x1e, 0x3f, 0x7f, 0xff, 0xff, 0xff, 0xde, 0x9e, 0x1e, 0x1e, 0x1e,
|
||||
0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x1e, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x0f, 0x0e, 0x0c,
|
||||
0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
|
||||
0x30, 0x70, 0xf0, 0xf0, 0xe0, 0xc0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
|
||||
0x78, 0x78, 0x78, 0x79, 0x7b, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0x78, 0x30, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20,
|
||||
0x30, 0x38, 0x3c, 0x3e, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0,
|
||||
0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x7c, 0xf8, 0xf0, 0xe0, 0xc0, 0x80, 0xff, 0xff,
|
||||
0xff, 0xff, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0x7c, 0x3e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f,
|
||||
0x3f, 0x1f, 0x0f, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
oled_write_raw_P(qmk_arrows, sizeof(qmk_arrows));
|
||||
break;
|
||||
|
||||
case _ADJUST: ;
|
||||
static const char PROGMEM qmk_adjust[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x38, 0x38, 0x38, 0x38, 0x38,
|
||||
0x38, 0x38, 0x38, 0x38, 0x38, 0xf8, 0xf8, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38, 0x38, 0x38,
|
||||
0x38, 0x38, 0x38, 0x38, 0x38, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x07, 0x07, 0x07, 0x07,
|
||||
0x07, 0x07, 0x07, 0x07, 0x0f, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0xc0, 0xc0, 0xc0, 0xc0,
|
||||
0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xff, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0xe1, 0xe1, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1,
|
||||
0xe1, 0xe1, 0xe1, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x3f, 0x3f, 0x38,
|
||||
0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
|
||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3,
|
||||
0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0xc3, 0x83, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1,
|
||||
0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0xf0, 0xf0,
|
||||
0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||
0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f,
|
||||
0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
oled_write_raw_P(qmk_adjust, sizeof(qmk_adjust));
|
||||
break;
|
||||
|
||||
case _FN: ;
|
||||
static const char PROGMEM qmk_fn[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
|
||||
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
|
||||
0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
|
||||
0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
|
||||
0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x7f, 0xfe, 0xf8, 0xe0, 0x80, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0xfe,
|
||||
0xf8, 0xe0, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
|
||||
0x07, 0x1f, 0x7f, 0xfe, 0xf8, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x07, 0x1f, 0x7f, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
oled_write_raw_P(qmk_fn, sizeof(qmk_fn));
|
||||
break;
|
||||
|
||||
case _LEFT_HAND: ;
|
||||
static const char PROGMEM qmk_left_hand[] = {
|
||||
// 'layers_left_hand', 32x128px
|
||||
0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xe1, 0xf1, 0xf1, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x0f, 0x1f, 0x1f, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80,
|
||||
0x71, 0x71, 0x71, 0x70, 0x70, 0xf0, 0xf0, 0xf0, 0x70, 0x70, 0x70, 0x70, 0x70, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xff, 0xff, 0xff,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xf0, 0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x3c, 0xfc, 0xf8, 0xf0,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0x1c, 0xff, 0xff, 0xff,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xe3, 0xe3,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x0f, 0x1e, 0x3c, 0x78, 0xf0, 0xe0, 0xc0, 0xff, 0xff, 0xff,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x1f, 0x1f, 0x1f,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x07, 0x07, 0x07, 0x07, 0x07, 0x0f, 0x1e, 0xfc, 0xf8, 0xf0,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xf0, 0x78, 0x3f, 0x1f, 0x0f
|
||||
};
|
||||
|
||||
oled_write_raw_P(qmk_left_hand, sizeof(qmk_left_hand));
|
||||
break;
|
||||
}
|
||||
|
||||
/* Leader */
|
||||
if (is_leader_active) {
|
||||
|
||||
static const char PROGMEM qmk_leader[] = {
|
||||
0x00, 0x00, 0xf8, 0xf8, 0x78, 0x38, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18,
|
||||
0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x38, 0x78, 0xf8, 0xf8, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xf8, 0xf8, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc0, 0xc0, 0xc0,
|
||||
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1,
|
||||
0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x18, 0x18, 0x18,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x87, 0x87, 0x87, 0x87, 0x87,
|
||||
0x87, 0x87, 0x87, 0x87, 0x87, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc3, 0xc3, 0xc3,
|
||||
0xc3, 0xc3, 0xc3, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xfe, 0xfe, 0x00, 0x0e, 0x0e,
|
||||
0x0e, 0x0e, 0x0e, 0xfe, 0xfc, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x7f, 0x7f, 0x00, 0x70, 0x70,
|
||||
0x70, 0x70, 0x70, 0x7f, 0x3f, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xf8, 0xf8, 0x38, 0x38, 0x38,
|
||||
0x38, 0x38, 0x38, 0x38, 0x38, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xc6, 0xc6, 0xc6,
|
||||
0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe1, 0xe1, 0xe1, 0xe1, 0xe1,
|
||||
0xe1, 0xe1, 0xe1, 0xe1, 0xc1, 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0x38, 0x38, 0x38,
|
||||
0x78, 0xf8, 0xf8, 0xbf, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x07, 0x07, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x03, 0x07, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xff, 0xff, 0x00, 0x00,
|
||||
0x00, 0x00, 0x07, 0x07, 0x07, 0x07, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06,
|
||||
0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x07, 0x07, 0x07, 0x07, 0x00, 0x00
|
||||
};
|
||||
|
||||
oled_write_raw_P(qmk_leader, sizeof(qmk_leader));
|
||||
}
|
||||
|
||||
/* Modifier keys */
|
||||
if (get_mods()) {
|
||||
|
||||
if (get_mods() & MOD_MASK_CTRL) {
|
||||
|
||||
oled_write_char(0x01, false);
|
||||
oled_write_char(0x02, false);
|
||||
oled_write_char(0x03, false);
|
||||
oled_write_char(0x04, false);
|
||||
oled_write_char(0x05, false);
|
||||
|
||||
oled_write_char(0x21, false);
|
||||
oled_write_char(0x22, false);
|
||||
oled_write_char(0x23, false);
|
||||
oled_write_char(0x24, false);
|
||||
oled_write_char(0x25, false);
|
||||
}
|
||||
if (get_mods() & MOD_BIT(KC_LALT)) {
|
||||
|
||||
oled_write_char(0x41, false);
|
||||
oled_write_char(0x42, false);
|
||||
oled_write_char(0x43, false);
|
||||
oled_write_char(0x44, false);
|
||||
oled_write_char(0x45, false);
|
||||
|
||||
oled_write_char(0x61, false);
|
||||
oled_write_char(0x62, false);
|
||||
oled_write_char(0x63, false);
|
||||
oled_write_char(0x64, false);
|
||||
oled_write_char(0x65, false);
|
||||
}
|
||||
if (get_mods() & MOD_BIT(KC_RALT)) {
|
||||
|
||||
oled_write_char(0x81, false);
|
||||
oled_write_char(0x82, false);
|
||||
oled_write_char(0x83, false);
|
||||
oled_write_char(0x84, false);
|
||||
oled_write_char(0x85, false);
|
||||
|
||||
oled_write_char(0xA1, false);
|
||||
oled_write_char(0xA2, false);
|
||||
oled_write_char(0xA3, false);
|
||||
oled_write_char(0xA4, false);
|
||||
oled_write_char(0xA5, false);
|
||||
}
|
||||
if (get_mods() & MOD_MASK_SHIFT) {
|
||||
|
||||
oled_write_char(0x4B, false);
|
||||
oled_write_char(0x4C, false);
|
||||
oled_write_char(0x4D, false);
|
||||
oled_write_char(0x4E, false);
|
||||
oled_write_char(0x4F, false);
|
||||
|
||||
oled_write_char(0x6B, false);
|
||||
oled_write_char(0x6C, false);
|
||||
oled_write_char(0x6D, false);
|
||||
oled_write_char(0x6E, false);
|
||||
oled_write_char(0x6F, false);
|
||||
}
|
||||
if (get_mods() & MOD_MASK_GUI) {
|
||||
|
||||
oled_write_char(0x8B, false);
|
||||
oled_write_char(0x8C, false);
|
||||
oled_write_char(0x8D, false);
|
||||
oled_write_char(0x8E, false);
|
||||
oled_write_char(0x8F, false);
|
||||
|
||||
oled_write_char(0xAB, false);
|
||||
oled_write_char(0xAC, false);
|
||||
oled_write_char(0xAD, false);
|
||||
oled_write_char(0xAE, false);
|
||||
oled_write_char(0xAF, false);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
bool oled_task_user(void) {
|
||||
oled_display();
|
||||
return false;
|
||||
}
|
|
@ -0,0 +1,130 @@
|
|||
### Custom aurora sweep keymap
|
||||
|
||||
|
||||
This keymap is inspired by [optimot](https://bepo.fr/) which is a French layout.
|
||||
Nonetheless all French characters are sent in unicode, so it works with the standard US ANSI layout.
|
||||
|
||||
It uses the *best* qmk features :
|
||||
- combos ♥
|
||||
- auto shift
|
||||
- leader
|
||||
|
||||
I tried to optimise key positions for neovim and i3wm while limit digrams.
|
||||
The oled screens are used to display the current layout, the modifier keys and the leader key.
|
||||
|
||||
![oledmodifiers](https://i.imgur.com/on95jx0.png)
|
||||
![oledmouse](https://i.imgur.com/PwkR6P2.png)
|
||||
|
||||
#### Install
|
||||
|
||||
Clone this repo in the folder :
|
||||
|
||||
~/qmk_firmware/keyboards/splitkb/aurora/sweep/keymaps/
|
||||
|
||||
#### Compile and flash
|
||||
|
||||
Navigate into the keymap folder and launch this command for both sides :
|
||||
|
||||
qmk compile && qmk flash
|
||||
|
||||
and :
|
||||
|
||||
Click twice on the flash button and use nautilus for instance to clic on the keyboard.
|
||||
Don't forget to flash with the double tap bootloader define before soldering.
|
||||
|
||||
#### Links
|
||||
|
||||
[qmk](https://docs.qmk.fm/#/)
|
||||
[ferris sweep](https://github.com/davidphilipbarr/Sweep)
|
||||
[splitkb](https://splitkb.com)
|
||||
|
||||
#### Layouts
|
||||
|
||||
![base](https://i.imgur.com/E3hRkxW.png)
|
||||
![numeric](https://i.imgur.com/GeC0reE.png)
|
||||
![mouse](https://i.imgur.com/QhsWVrE.png)
|
||||
![arrows](https://i.imgur.com/4sAfGAt.png)
|
||||
![adjust](https://i.imgur.com/hcoN2P8.png)
|
||||
![fn](https://i.imgur.com/dVunqFF.png)
|
||||
![left hand](https://i.imgur.com/fk5YJj6.png)
|
||||
![combo](https://i.imgur.com/aZ8TpuY.png)
|
||||
![combo2](https://i.imgur.com/QayRuFA.png)
|
||||
![combo3](https://i.imgur.com/YpnbMeh.png)
|
||||
|
||||
#### French
|
||||
|
||||
| - | |
|
||||
|------------------|------------------------|
|
||||
| space + e | é |
|
||||
| space + i | ç |
|
||||
| space + a | æ |
|
||||
| space + o | œ |
|
||||
| comma + a | à |
|
||||
| comma + e | è |
|
||||
| comma + i | ì |
|
||||
| comma + o | ò |
|
||||
| comma + u | ù |
|
||||
| enter + a | â |
|
||||
| enter + e | ê |
|
||||
| enter + i | î |
|
||||
| enter + o | ô |
|
||||
| enter + u | û |
|
||||
| dot + a | ä |
|
||||
| dot + e | ë |
|
||||
| dot + i | ï |
|
||||
| dot + o | ö |
|
||||
| dot + u | ü |
|
||||
| dot + y | ÿ |
|
||||
|
||||
|
||||
#### Leader
|
||||
|
||||
| - | |
|
||||
|--------------------|------------------------|
|
||||
| M + S | mail short |
|
||||
| M + L | mail long |
|
||||
| D + E + G | ° |
|
||||
| C + O + P | © |
|
||||
| R + E + G | ® |
|
||||
| D + I + A | ø |
|
||||
| D + I + A + M | Ø |
|
||||
| E + U + R | € |
|
||||
| P + O + U | £ |
|
||||
| Y + E + N | ¥ |
|
||||
| C + E + N | ¢ |
|
||||
| P + I | π |
|
||||
| P + I + I | Π |
|
||||
| O + M + E | ω |
|
||||
| O + M + E + G | Ω |
|
||||
| U + P + F | ⁰ |
|
||||
| D + N + F | ₀ |
|
||||
|
||||
| - | |
|
||||
|--------------------|------------------------|
|
||||
| M + U + L | × |
|
||||
| D + I + V | ÷ |
|
||||
| P + M | ± |
|
||||
| I + N + E | ≠ |
|
||||
| A + L + M | ≈ |
|
||||
| S + Q + U | √ |
|
||||
| I + N + F | ∞ |
|
||||
| < + < | ≤ |
|
||||
| > + > | ≥ |
|
||||
| F + S + T | ¼ |
|
||||
| F + S + G | ½ |
|
||||
| F + H + T | ¾ |
|
||||
|
||||
| - | |
|
||||
|--------------------|------------------------|
|
||||
| F + L + A | ⚡ |
|
||||
| S + P + A | ✨ |
|
||||
| O + W + D | ⛔ |
|
||||
| C + O + F | ☕ |
|
||||
| U + M + B | ☔ |
|
||||
| Y + E + S | ✅ |
|
||||
| N + O | ❎ |
|
||||
| C + R + O | ❌ |
|
||||
| ? | ❔ |
|
||||
| ! | ❕ |
|
||||
| ? + ? | ❓ |
|
||||
| ! + ! | ❗ |
|
|
@ -0,0 +1,22 @@
|
|||
LTO_ENABLE = yes
|
||||
CONVERT_TO = elite_pi
|
||||
|
||||
SRC += features/auto_shift.c
|
||||
SRC += features/combo.c
|
||||
SRC += features/leader.c
|
||||
SRC += oled/oled.c
|
||||
|
||||
OLED_ENABLE = yes
|
||||
OLED_DRIVER = SSD1306
|
||||
|
||||
MOUSEKEY_ENABLE = yes
|
||||
AUTO_SHIFT_ENABLE = yes
|
||||
AUTO_SHIFT_MODIFIERS = no
|
||||
COMBO_ENABLE = yes
|
||||
LEADER_ENABLE = yes
|
||||
|
||||
# Recommended for space cadet shift
|
||||
COMMAND_ENABLE = no
|
||||
|
||||
UNICODE_ENABLE = yes
|
||||
SEND_STRING_ENABLE = yes
|
|
@ -0,0 +1,18 @@
|
|||
/* Copyright 2022 vertex
|
||||
*
|
||||
* 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 "arc60h.h"
|
|
@ -0,0 +1,36 @@
|
|||
/* Copyright 2022 vertex
|
||||
*
|
||||
* 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 ___ KC_NO
|
||||
|
||||
|
||||
#define LAYOUT_all( \
|
||||
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \
|
||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
|
||||
K40, K41, K43, K46, K4B, K4C, K4E \
|
||||
) { \
|
||||
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___, K1E }, \
|
||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D, ___ }, \
|
||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \
|
||||
{ K40, K41, ___, K43, ___, ___, K46, ___, ___, ___, ___, K4B, K4C, ___, K4E } \
|
||||
}
|
|
@ -0,0 +1,59 @@
|
|||
/* Copyright 2022 vertex
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define MATRIX_COL_PINS { B9, B8, B7, B6, B5, B4, B3, B11, A15, A10, A9, B14, B13, B12, A5 }
|
||||
#define MATRIX_ROW_PINS { B10, B1, B0, A7, A6 }
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
#define LED_CAPS_LOCK_PIN C13
|
||||
#define LED_PIN_ON_STATE 0
|
||||
|
||||
#define RGBLIGHT_EFFECT_BREATHING
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||
#define RGBLIGHT_EFFECT_SNAKE
|
||||
#define RGBLIGHT_EFFECT_KNIGHT
|
||||
#define RGBLIGHT_EFFECT_CHRISTMAS
|
||||
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
#define RGBLIGHT_EFFECT_RGB_TEST
|
||||
#define RGBLIGHT_EFFECT_ALTERNATING
|
||||
#define RGBLIGHT_EFFECT_TWINKLE
|
||||
#define RGB_DI_PIN B15
|
||||
#define RGBLED_NUM 9
|
||||
#define WS2812_SPI SPID2
|
||||
#define WS2812_SPI_MOSI_PAL_MODE 5
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Feature disable options
|
||||
* These options are also useful to firmware size reduction.
|
||||
*/
|
||||
#define FORCE_NKRO
|
||||
|
||||
|
||||
/* disable debug print */
|
||||
//#define NO_DEBUG
|
||||
|
||||
/* disable print */
|
||||
//#define NO_PRINT
|
||||
|
||||
/* disable action features */
|
||||
//#define NO_ACTION_LAYER
|
||||
//#define NO_ACTION_TAPPING
|
||||
//#define NO_ACTION_ONESHOT
|
|
@ -0,0 +1,25 @@
|
|||
/* Copyright 2022 vertex
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
|
||||
/*
|
||||
* This file was auto-generated by:
|
||||
* `qmk chibios-confmigrate -i keyboards/bt66tech/bt66tech60/halconf.h -r platforms/chibios/common/configs/halconf.h`
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#define HAL_USE_SPI TRUE
|
||||
|
||||
#include_next <halconf.h>
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue