@ -1,3 +1,18 @@ | |||||
/* Copyright 2021 DZTECH <moyi4681@live.cn> | |||||
* | |||||
* 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 | #pragma once | ||||
#include "config_common.h" | #include "config_common.h" |
@ -1,117 +1,17 @@ | |||||
/* Copyright 2021 DZTECH <moyi4681@live.cn> | |||||
* | |||||
* 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 "dz65rgb.h" | #include "dz65rgb.h" | ||||
#ifdef RGB_MATRIX_ENABLE | |||||
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { | |||||
{ 0, C8_8, C7_8, C6_8 }, | |||||
{ 0, C9_8, C7_7, C6_7 }, | |||||
{ 0, C9_7, C8_7, C6_6 }, | |||||
{ 0, C9_6, C8_6, C7_6 }, | |||||
{ 0, C9_5, C8_5, C7_5 }, | |||||
{ 0, C9_4, C8_4, C7_4 }, | |||||
{ 0, C9_3, C8_3, C7_3 }, | |||||
{ 0, C9_2, C8_2, C7_2 }, | |||||
{ 0, C9_1, C8_1, C7_1 }, | |||||
{ 0, C2_9, C3_9, C4_9 }, | |||||
{ 0, C1_9, C3_10, C4_10 }, | |||||
{ 0, C1_10, C2_10, C4_11 }, | |||||
{ 0, C1_11, C2_11, C3_11 }, | |||||
{ 0, C1_13, C2_13, C3_13 }, | |||||
{ 0, C1_14, C2_14, C3_14 }, | |||||
{ 0, C1_7, C2_7, C3_7 }, | |||||
{ 0, C1_6, C2_6, C3_6 }, | |||||
{ 0, C1_5, C2_5, C3_5 }, | |||||
{ 0, C1_4, C2_4, C3_4 }, | |||||
{ 0, C1_3, C2_3, C3_3 }, | |||||
{ 0, C1_2, C2_2, C4_3 }, | |||||
{ 0, C1_1, C3_2, C4_2 }, | |||||
{ 0, C2_1, C3_1, C4_1 }, | |||||
{ 0, C9_9, C8_9, C7_9 }, | |||||
{ 0, C9_10, C8_10, C7_10 }, | |||||
{ 0, C9_11, C8_11, C7_11 }, | |||||
{ 0, C9_12, C8_12, C7_12 }, | |||||
{ 0, C9_13, C8_13, C7_13 }, | |||||
{ 0, C9_14, C8_14, C7_14 }, | |||||
{ 0, C1_15, C2_15, C3_15 }, | |||||
{ 0, C1_8, C2_8, C3_8 }, | |||||
{ 1, C9_6, C8_6, C7_6 }, | |||||
{ 1, C9_5, C8_5, C7_5 }, | |||||
{ 1, C9_4, C8_4, C7_4 }, | |||||
{ 1, C9_3, C8_3, C7_3 }, | |||||
{ 1, C9_2, C8_2, C7_2 }, | |||||
{ 1, C9_1, C8_1, C7_1 }, | |||||
{ 1, C2_9, C3_9, C4_9 }, | |||||
{ 1, C1_9, C3_10, C4_10 }, | |||||
{ 1, C1_10, C2_10, C4_11 }, | |||||
{ 1, C1_11, C2_11, C3_11 }, | |||||
{ 1, C1_12, C2_12, C3_12 }, | |||||
{ 1, C1_13, C2_13, C3_13 }, | |||||
{ 0, C1_16, C2_16, C3_16 }, | |||||
{ 1, C9_8, C7_7, C6_7 }, | |||||
{ 1, C1_5, C2_5, C3_5 }, | |||||
{ 1, C1_4, C2_4, C3_4 }, | |||||
{ 1, C1_3, C2_3, C3_3 }, | |||||
{ 1, C1_2, C2_2, C4_3 }, | |||||
{ 1, C1_1, C3_2, C4_2 }, | |||||
{ 1, C9_9, C8_9, C7_9 }, | |||||
{ 1, C9_10, C8_10, C7_10 }, | |||||
{ 1, C9_11, C8_11, C7_11 }, | |||||
{ 1, C9_12, C8_12, C7_12 }, | |||||
{ 1, C1_14, C2_14, C3_14 }, | |||||
{ 1, C1_15, C2_15, C3_15 }, | |||||
{ 1, C1_16, C2_16, C3_16 }, | |||||
{ 0, C9_15, C8_15, C6_14 }, | |||||
{ 1, C8_8, C7_8, C6_8 }, | |||||
{ 1, C1_8, C2_8, C3_8 }, | |||||
{ 1, C1_7, C2_7, C3_7 }, | |||||
{ 1, C2_1, C3_1, C4_1 }, | |||||
{ 1, C9_14, C8_14, C7_14 }, | |||||
{ 1, C9_15, C8_15, C6_14 }, | |||||
{ 1, C9_16, C7_15, C6_15 }, | |||||
{ 1, C8_16, C7_16, C6_16 }, | |||||
{ 0, C8_16, C7_16, C6_16 }, | |||||
{ 0, C9_16, C7_15, C6_15 } | |||||
}; | |||||
led_config_t g_led_config = { | |||||
{ | |||||
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, | |||||
{ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, | |||||
{ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 }, | |||||
{ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 }, | |||||
{ 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, NO_LED, 66, 67 } | |||||
}, { | |||||
{ 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 }, | |||||
{ 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 }, | |||||
{ 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 }, | |||||
{ 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 }, | |||||
{ 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 } | |||||
}, { | |||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, | |||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, | |||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, | |||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, | |||||
1, 1, 1, 4, 1, 1, 1, 1, 1, 1 | |||||
} | |||||
}; | |||||
void suspend_power_down_kb(void) { | |||||
rgb_matrix_set_suspend_state(true); | |||||
suspend_power_down_user(); | |||||
} | |||||
void suspend_wakeup_init_kb(void) { | |||||
rgb_matrix_set_suspend_state(false); | |||||
suspend_wakeup_init_user(); | |||||
} | |||||
__attribute__ ((weak)) | |||||
void rgb_matrix_indicators_user(void) { | |||||
if (host_keyboard_led_state().caps_lock) { | |||||
rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); | |||||
} | |||||
} | |||||
#endif |
@ -1,19 +1,28 @@ | |||||
/* Copyright 2021 DZTECH <moyi4681@live.cn> | |||||
* | |||||
* 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 | #pragma once | ||||
#ifdef KEYBOARD_dztech_dz65rgb_v1 | |||||
#include "v1.h" | |||||
#endif | |||||
#ifdef KEYBOARD_dztech_dz65rgb_v2 | |||||
#include "v2.h" | |||||
#endif | |||||
#ifdef KEYBOARD_dztech_dz65rgb_v3 | |||||
#include "v3.h" | |||||
#endif | |||||
#include "quantum.h" | #include "quantum.h" | ||||
#define XXX KC_NO | |||||
#define LAYOUT_65_ansi( \ | |||||
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, K1D, K1E, \ | |||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ | |||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ | |||||
K40, K41, K42, K45, K48, K49, K4A, K4B, K4D, 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, K1D, K1E }, \ | |||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \ | |||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E }, \ | |||||
{ K40, K41, K42, XXX, XXX, K45, XXX, XXX, K48, K49, K4A, K4B, XXX, K4D, K4E } \ | |||||
} |
@ -0,0 +1,16 @@ | |||||
# DZ65RGB V1 | |||||
A customizable 65% RGB keyboard. | |||||
* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681) | |||||
* Hardware Supported: DZ65RGB V1 | |||||
* Hardware Availability: [KBDfans](https://kbdfans.com/) | |||||
## Making firmware | |||||
Make example for this keyboard (after setting up your build environment): | |||||
make dztech/dz65rgb/v1:default | |||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). | |||||
@ -0,0 +1,123 @@ | |||||
/* Copyright 2019 DZTECH <moyi4681@live.cn> | |||||
* | |||||
* 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 "v1.h" | |||||
#ifdef RGB_MATRIX_ENABLE | |||||
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { | |||||
{ 0, C8_8, C7_8, C6_8 }, | |||||
{ 0, C9_8, C7_7, C6_7 }, | |||||
{ 0, C9_7, C8_7, C6_6 }, | |||||
{ 0, C9_6, C8_6, C7_6 }, | |||||
{ 0, C9_5, C8_5, C7_5 }, | |||||
{ 0, C9_4, C8_4, C7_4 }, | |||||
{ 0, C9_3, C8_3, C7_3 }, | |||||
{ 0, C9_2, C8_2, C7_2 }, | |||||
{ 0, C9_1, C8_1, C7_1 }, | |||||
{ 0, C2_9, C3_9, C4_9 }, | |||||
{ 0, C1_9, C3_10, C4_10 }, | |||||
{ 0, C1_10, C2_10, C4_11 }, | |||||
{ 0, C1_11, C2_11, C3_11 }, | |||||
{ 0, C1_13, C2_13, C3_13 }, | |||||
{ 0, C1_14, C2_14, C3_14 }, | |||||
{ 0, C1_7, C2_7, C3_7 }, | |||||
{ 0, C1_6, C2_6, C3_6 }, | |||||
{ 0, C1_5, C2_5, C3_5 }, | |||||
{ 0, C1_4, C2_4, C3_4 }, | |||||
{ 0, C1_3, C2_3, C3_3 }, | |||||
{ 0, C1_2, C2_2, C4_3 }, | |||||
{ 0, C1_1, C3_2, C4_2 }, | |||||
{ 0, C2_1, C3_1, C4_1 }, | |||||
{ 0, C9_9, C8_9, C7_9 }, | |||||
{ 0, C9_10, C8_10, C7_10 }, | |||||
{ 0, C9_11, C8_11, C7_11 }, | |||||
{ 0, C9_12, C8_12, C7_12 }, | |||||
{ 0, C9_13, C8_13, C7_13 }, | |||||
{ 0, C9_14, C8_14, C7_14 }, | |||||
{ 0, C1_15, C2_15, C3_15 }, | |||||
{ 0, C1_8, C2_8, C3_8 }, | |||||
{ 1, C9_6, C8_6, C7_6 }, | |||||
{ 1, C9_5, C8_5, C7_5 }, | |||||
{ 1, C9_4, C8_4, C7_4 }, | |||||
{ 1, C9_3, C8_3, C7_3 }, | |||||
{ 1, C9_2, C8_2, C7_2 }, | |||||
{ 1, C9_1, C8_1, C7_1 }, | |||||
{ 1, C2_9, C3_9, C4_9 }, | |||||
{ 1, C1_9, C3_10, C4_10 }, | |||||
{ 1, C1_10, C2_10, C4_11 }, | |||||
{ 1, C1_11, C2_11, C3_11 }, | |||||
{ 1, C1_12, C2_12, C3_12 }, | |||||
{ 1, C1_13, C2_13, C3_13 }, | |||||
{ 0, C1_16, C2_16, C3_16 }, | |||||
{ 1, C9_8, C7_7, C6_7 }, | |||||
{ 1, C1_5, C2_5, C3_5 }, | |||||
{ 1, C1_4, C2_4, C3_4 }, | |||||
{ 1, C1_3, C2_3, C3_3 }, | |||||
{ 1, C1_2, C2_2, C4_3 }, | |||||
{ 1, C1_1, C3_2, C4_2 }, | |||||
{ 1, C9_9, C8_9, C7_9 }, | |||||
{ 1, C9_10, C8_10, C7_10 }, | |||||
{ 1, C9_11, C8_11, C7_11 }, | |||||
{ 1, C9_12, C8_12, C7_12 }, | |||||
{ 1, C1_14, C2_14, C3_14 }, | |||||
{ 1, C1_15, C2_15, C3_15 }, | |||||
{ 1, C1_16, C2_16, C3_16 }, | |||||
{ 0, C9_15, C8_15, C6_14 }, | |||||
{ 1, C8_8, C7_8, C6_8 }, | |||||
{ 1, C1_8, C2_8, C3_8 }, | |||||
{ 1, C1_7, C2_7, C3_7 }, | |||||
{ 1, C2_1, C3_1, C4_1 }, | |||||
{ 1, C9_14, C8_14, C7_14 }, | |||||
{ 1, C9_15, C8_15, C6_14 }, | |||||
{ 1, C9_16, C7_15, C6_15 }, | |||||
{ 1, C8_16, C7_16, C6_16 }, | |||||
{ 0, C8_16, C7_16, C6_16 }, | |||||
{ 0, C9_16, C7_15, C6_15 } | |||||
}; | |||||
led_config_t g_led_config = { | |||||
{ | |||||
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, | |||||
{ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, | |||||
{ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 }, | |||||
{ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 }, | |||||
{ 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, NO_LED, 66, 67 } | |||||
}, { | |||||
{ 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 }, | |||||
{ 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 }, | |||||
{ 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 }, | |||||
{ 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 }, | |||||
{ 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 } | |||||
}, { | |||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, | |||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, | |||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, | |||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, | |||||
1, 1, 1, 4, 1, 1, 1, 1, 1, 1 | |||||
} | |||||
}; | |||||
__attribute__ ((weak)) | |||||
void rgb_matrix_indicators_user(void) { | |||||
if (host_keyboard_led_state().caps_lock) { | |||||
rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); | |||||
} | |||||
} | |||||
#endif |
@ -0,0 +1,34 @@ | |||||
/* Copyright 2019 DZTECH <moyi4681@live.cn> | |||||
* | |||||
* This program is free software: you can redistribute it and/or modify | |||||
* it under the terms of the GNU General Public License as published by | |||||
* the Free Software Foundation, either version 2 of the License, or | |||||
* (at your option) any later version. | |||||
* | |||||
* This program is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU General Public License | |||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||||
*/ | |||||
#pragma once | |||||
#include "quantum.h" | |||||
#define XXX KC_NO | |||||
#define LAYOUT_65_ansi( \ | |||||
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, K1D, K1E, \ | |||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ | |||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ | |||||
K40, K41, K42, K45, K48, K49, K4A, K4B, K4D, 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, K1D, K1E }, \ | |||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \ | |||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E }, \ | |||||
{ K40, K41, K42, XXX, XXX, K45, XXX, XXX, K48, K49, K4A, K4B, XXX, K4D, K4E } \ | |||||
} |
@ -0,0 +1,16 @@ | |||||
# DZ65RGB V2 | |||||
A customizable 65% RGB keyboard. | |||||
* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681) | |||||
* Hardware Supported: DZ65RGB V2 | |||||
* Hardware Availability: [KBDfans](https://kbdfans.com/) | |||||
## Making firmware | |||||
Make example for this keyboard (after setting up your build environment): | |||||
make dztech/dz65rgb/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). | |||||
@ -0,0 +1,123 @@ | |||||
/* Copyright 2020 DZTECH <moyi4681@live.cn> | |||||
* | |||||
* 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 "v2.h" | |||||
#ifdef RGB_MATRIX_ENABLE | |||||
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { | |||||
{ 0, C8_8, C7_8, C6_8 }, | |||||
{ 0, C9_8, C7_7, C6_7 }, | |||||
{ 0, C9_7, C8_7, C6_6 }, | |||||
{ 0, C9_6, C8_6, C7_6 }, | |||||
{ 0, C9_5, C8_5, C7_5 }, | |||||
{ 0, C9_4, C8_4, C7_4 }, | |||||
{ 0, C9_3, C8_3, C7_3 }, | |||||
{ 0, C9_2, C8_2, C7_2 }, | |||||
{ 0, C9_1, C8_1, C7_1 }, | |||||
{ 0, C2_9, C3_9, C4_9 }, | |||||
{ 0, C1_9, C3_10, C4_10 }, | |||||
{ 0, C1_10, C2_10, C4_11 }, | |||||
{ 0, C1_11, C2_11, C3_11 }, | |||||
{ 0, C1_13, C2_13, C3_13 }, | |||||
{ 0, C1_14, C2_14, C3_14 }, | |||||
{ 0, C1_7, C2_7, C3_7 }, | |||||
{ 0, C1_6, C2_6, C3_6 }, | |||||
{ 0, C1_5, C2_5, C3_5 }, | |||||
{ 0, C1_4, C2_4, C3_4 }, | |||||
{ 0, C1_3, C2_3, C3_3 }, | |||||
{ 0, C1_2, C2_2, C4_3 }, | |||||
{ 0, C1_1, C3_2, C4_2 }, | |||||
{ 0, C2_1, C3_1, C4_1 }, | |||||
{ 0, C9_9, C8_9, C7_9 }, | |||||
{ 0, C9_10, C8_10, C7_10 }, | |||||
{ 0, C9_11, C8_11, C7_11 }, | |||||
{ 0, C9_12, C8_12, C7_12 }, | |||||
{ 0, C9_13, C8_13, C7_13 }, | |||||
{ 0, C9_14, C8_14, C7_14 }, | |||||
{ 0, C1_15, C2_15, C3_15 }, | |||||
{ 0, C1_8, C2_8, C3_8 }, | |||||
{ 1, C9_6, C8_6, C7_6 }, | |||||
{ 1, C9_5, C8_5, C7_5 }, | |||||
{ 1, C9_4, C8_4, C7_4 }, | |||||
{ 1, C9_3, C8_3, C7_3 }, | |||||
{ 1, C9_2, C8_2, C7_2 }, | |||||
{ 1, C9_1, C8_1, C7_1 }, | |||||
{ 1, C2_9, C3_9, C4_9 }, | |||||
{ 1, C1_9, C3_10, C4_10 }, | |||||
{ 1, C1_10, C2_10, C4_11 }, | |||||
{ 1, C1_11, C2_11, C3_11 }, | |||||
{ 1, C1_12, C2_12, C3_12 }, | |||||
{ 1, C1_13, C2_13, C3_13 }, | |||||
{ 0, C1_16, C2_16, C3_16 }, | |||||
{ 1, C9_8, C7_7, C6_7 }, | |||||
{ 1, C1_5, C2_5, C3_5 }, | |||||
{ 1, C1_4, C2_4, C3_4 }, | |||||
{ 1, C1_3, C2_3, C3_3 }, | |||||
{ 1, C1_2, C2_2, C4_3 }, | |||||
{ 1, C1_1, C3_2, C4_2 }, | |||||
{ 1, C9_9, C8_9, C7_9 }, | |||||
{ 1, C9_10, C8_10, C7_10 }, | |||||
{ 1, C9_11, C8_11, C7_11 }, | |||||
{ 1, C9_12, C8_12, C7_12 }, | |||||
{ 1, C1_14, C2_14, C3_14 }, | |||||
{ 1, C1_15, C2_15, C3_15 }, | |||||
{ 1, C1_16, C2_16, C3_16 }, | |||||
{ 0, C9_15, C8_15, C6_14 }, | |||||
{ 1, C8_8, C7_8, C6_8 }, | |||||
{ 1, C1_8, C2_8, C3_8 }, | |||||
{ 1, C1_7, C2_7, C3_7 }, | |||||
{ 1, C2_1, C3_1, C4_1 }, | |||||
{ 1, C9_14, C8_14, C7_14 }, | |||||
{ 1, C9_15, C8_15, C6_14 }, | |||||
{ 1, C9_16, C7_15, C6_15 }, | |||||
{ 1, C8_16, C7_16, C6_16 }, | |||||
{ 0, C8_16, C7_16, C6_16 }, | |||||
{ 0, C9_16, C7_15, C6_15 } | |||||
}; | |||||
led_config_t g_led_config = { | |||||
{ | |||||
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, | |||||
{ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, | |||||
{ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 }, | |||||
{ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 }, | |||||
{ 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, NO_LED, 66, 67 } | |||||
}, { | |||||
{ 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 }, | |||||
{ 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 }, | |||||
{ 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 }, | |||||
{ 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 }, | |||||
{ 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 } | |||||
}, { | |||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, | |||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, | |||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, | |||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, | |||||
1, 1, 1, 4, 1, 1, 1, 1, 1, 1 | |||||
} | |||||
}; | |||||
__attribute__ ((weak)) | |||||
void rgb_matrix_indicators_user(void) { | |||||
if (host_keyboard_led_state().caps_lock) { | |||||
rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); | |||||
} | |||||
} | |||||
#endif |
@ -0,0 +1,34 @@ | |||||
/* Copyright 2020 DZTECH <moyi4681@live.cn> | |||||
* | |||||
* This program is free software: you can redistribute it and/or modify | |||||
* it under the terms of the GNU General Public License as published by | |||||
* the Free Software Foundation, either version 2 of the License, or | |||||
* (at your option) any later version. | |||||
* | |||||
* This program is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU General Public License | |||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||||
*/ | |||||
#pragma once | |||||
#include "quantum.h" | |||||
#define XXX KC_NO | |||||
#define LAYOUT_65_ansi( \ | |||||
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, K1D, K1E, \ | |||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ | |||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \ | |||||
K40, K41, K42, K45, K48, K49, K4A, K4B, K4D, 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, K1D, K1E }, \ | |||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \ | |||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, K3E }, \ | |||||
{ K40, K41, K42, XXX, XXX, K45, XXX, XXX, K48, K49, K4A, K4B, XXX, K4D, K4E } \ | |||||
} |
@ -0,0 +1,57 @@ | |||||
/* Copyright 2021 DZTECH <moyi4681@live.cn> | |||||
* | |||||
* This program is free software: you can redistribute it and/or modify | |||||
* it under the terms of the GNU General Public License as published by | |||||
* the Free Software Foundation, either version 2 of the License, or | |||||
* (at your option) any later version. | |||||
* | |||||
* This program is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU General Public License | |||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||||
*/ | |||||
#pragma once | |||||
#include "config_common.h" | |||||
/* USB Device descriptor parameter */ | |||||
#define VENDOR_ID 0x445A | |||||
#define PRODUCT_ID 0x1424 | |||||
#define DEVICE_VER 0x0003 | |||||
#define MANUFACTURER DZTECH | |||||
#define PRODUCT DZ65RGBV3 | |||||
/* key matrix size */ | |||||
#define MATRIX_ROWS 5 | |||||
#define MATRIX_COLS 15 | |||||
#define MATRIX_ROW_PINS { F0, F1, F4, E6, C6 } | |||||
#define MATRIX_COL_PINS { F7, F6, F5, C7, B0, B1, B2, B3, B4, D7, D6, D4, D5, D3, D2} | |||||
#define UNUSED_PINS | |||||
/* COL2ROW, ROW2COL*/ | |||||
#define DIODE_DIRECTION COL2ROW | |||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | |||||
#define DEBOUNCE 5 | |||||
/* disable these deprecated features by default */ | |||||
#define NO_ACTION_MACRO | |||||
#define NO_ACTION_FUNCTION | |||||
#ifdef RGB_MATRIX_ENABLE | |||||
#define RGB_DISABLE_AFTER_TIMEOUT 0 // number of ticks to wait until disabling effects | |||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended | |||||
#define USB_SUSPEND_WAKEUP_DELAY 5000 | |||||
#define RGB_MATRIX_KEYPRESSES | |||||
#define RGB_MATRIX_LED_PROCESS_LIMIT 4 | |||||
#define RGB_MATRIX_LED_FLUSH_LIMIT 26 | |||||
#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL | |||||
#define DRIVER_ADDR_1 0b0110000 | |||||
#define DRIVER_ADDR_2 0b0110000 // this is here for compliancy reasons. | |||||
#define DRIVER_COUNT 1 | |||||
#define DRIVER_1_LED_TOTAL 68 | |||||
#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL | |||||
#define DRIVER_INDICATOR_LED_TOTAL 0 | |||||
#endif |
@ -0,0 +1,19 @@ | |||||
# DZ65RGB V3 | |||||
A customizable 65% RGB keyboard. | |||||
* Keyboard Maintainer: [moyi4681](https://github.com/moyi4681) | |||||
* Hardware Supported: DZ65RGB V3 | |||||
* Hardware Availability: [KBDfans](https://kbdfans.com/) | |||||
## Bootloader mode | |||||
To put in bootloader mode, hold the `Esc` key while plugging in the USB cable. or use reset key behind the pcb. | |||||
## Making firmware | |||||
Make example for this keyboard (after setting up your build environment): | |||||
make dztech/dz65rgb/v3:default | |||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). |
@ -0,0 +1,24 @@ | |||||
# MCU name | |||||
MCU = atmega32u4 | |||||
# Bootloader selection | |||||
BOOTLOADER = lufa-ms | |||||
# Build Options | |||||
# change yes to no to disable | |||||
# | |||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration | |||||
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 | |||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | |||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | |||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||||
NKRO_ENABLE = yes # USB Nkey Rollover | |||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality | |||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow | |||||
BLUETOOTH_ENABLE = no # Enable Bluetooth | |||||
AUDIO_ENABLE = no # Audio output | |||||
RGB_MATRIX_ENABLE = yes # Use RGB matrix | |||||
RGB_MATRIX_DRIVER = IS31FL3741 |
@ -0,0 +1,125 @@ | |||||
/* Copyright 2021 DZTECH <moyi4681@live.cn> | |||||
* | |||||
* 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 "v3.h" | |||||
#ifdef RGB_MATRIX_ENABLE | |||||
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { | |||||
{0, CS21_SW1, CS20_SW1, CS19_SW1}, | |||||
{0, CS21_SW2, CS20_SW2, CS19_SW2}, | |||||
{0, CS21_SW3, CS20_SW3, CS19_SW3}, | |||||
{0, CS21_SW4, CS20_SW4, CS19_SW4}, | |||||
{0, CS21_SW5, CS20_SW5, CS19_SW5}, | |||||
{0, CS21_SW6, CS20_SW6, CS19_SW6}, | |||||
{0, CS21_SW7, CS20_SW7, CS19_SW7}, | |||||
{0, CS21_SW8, CS20_SW8, CS19_SW8}, | |||||
{0, CS24_SW1, CS23_SW1, CS22_SW1}, | |||||
{0, CS24_SW2, CS23_SW2, CS22_SW2}, | |||||
{0, CS24_SW3, CS23_SW3, CS22_SW3}, | |||||
{0, CS24_SW4, CS23_SW4, CS22_SW4}, | |||||
{0, CS24_SW5, CS23_SW5, CS22_SW5}, | |||||
{0, CS24_SW6, CS23_SW6, CS22_SW6}, | |||||
{0, CS24_SW7, CS23_SW7, CS22_SW7}, | |||||
{0, CS15_SW1, CS14_SW1, CS13_SW1}, | |||||
{0, CS15_SW2, CS14_SW2, CS13_SW2}, | |||||
{0, CS15_SW3, CS14_SW3, CS13_SW3}, | |||||
{0, CS15_SW4, CS14_SW4, CS13_SW4}, | |||||
{0, CS15_SW5, CS14_SW5, CS13_SW5}, | |||||
{0, CS15_SW6, CS14_SW6, CS13_SW6}, | |||||
{0, CS15_SW7, CS14_SW7, CS13_SW7}, | |||||
{0, CS15_SW8, CS14_SW8, CS13_SW8}, | |||||
{0, CS30_SW1, CS29_SW1, CS28_SW1}, | |||||
{0, CS30_SW2, CS29_SW2, CS28_SW2}, | |||||
{0, CS30_SW3, CS29_SW3, CS28_SW3}, | |||||
{0, CS30_SW4, CS29_SW4, CS28_SW4}, | |||||
{0, CS30_SW5, CS29_SW5, CS28_SW5}, | |||||
{0, CS30_SW6, CS29_SW6, CS28_SW6}, | |||||
{0, CS30_SW7, CS29_SW7, CS28_SW7}, | |||||
{0, CS12_SW1, CS11_SW1, CS10_SW1}, | |||||
{0, CS12_SW2, CS11_SW2, CS10_SW2}, | |||||
{0, CS12_SW3, CS11_SW3, CS10_SW3}, | |||||
{0, CS12_SW4, CS11_SW4, CS10_SW4}, | |||||
{0, CS12_SW5, CS11_SW5, CS10_SW5}, | |||||
{0, CS12_SW6, CS11_SW6, CS10_SW6}, | |||||
{0, CS12_SW7, CS11_SW7, CS10_SW7}, | |||||
{0, CS12_SW8, CS11_SW8, CS10_SW8}, | |||||
{0, CS33_SW1, CS32_SW1, CS31_SW1}, | |||||
{0, CS33_SW2, CS32_SW2, CS31_SW2}, | |||||
{0, CS33_SW3, CS32_SW3, CS31_SW3}, | |||||
{0, CS33_SW4, CS32_SW4, CS31_SW4}, | |||||
{0, CS33_SW5, CS32_SW5, CS31_SW5}, | |||||
{0, CS33_SW7, CS32_SW7, CS31_SW7}, | |||||
{0, CS9_SW1, CS8_SW1, CS7_SW1}, | |||||
{0, CS9_SW2, CS8_SW2, CS7_SW2}, | |||||
{0, CS9_SW3, CS8_SW3, CS7_SW3}, | |||||
{0, CS9_SW4, CS8_SW4, CS7_SW4}, | |||||
{0, CS9_SW5, CS8_SW5, CS7_SW5}, | |||||
{0, CS9_SW6, CS8_SW6, CS7_SW6}, | |||||
{0, CS9_SW7, CS8_SW7, CS7_SW7}, | |||||
{0, CS9_SW8, CS8_SW8, CS7_SW8}, | |||||
{0, CS36_SW1, CS35_SW1, CS34_SW1}, | |||||
{0, CS36_SW2, CS35_SW2, CS34_SW2}, | |||||
{0, CS36_SW3, CS35_SW3, CS34_SW3}, | |||||
{0, CS36_SW4, CS35_SW4, CS34_SW4}, | |||||
{0, CS36_SW5, CS35_SW5, CS34_SW5}, | |||||
{0, CS36_SW7, CS35_SW7, CS34_SW7}, | |||||
{0, CS3_SW1, CS2_SW1, CS1_SW1}, | |||||
{0, CS3_SW2, CS2_SW2, CS1_SW2}, | |||||
{0, CS3_SW3, CS2_SW3, CS1_SW3}, | |||||
{0, CS3_SW6, CS2_SW6, CS1_SW6}, | |||||
{0, CS39_SW1, CS38_SW1, CS37_SW1}, | |||||
{0, CS39_SW2, CS38_SW2, CS37_SW2}, | |||||
{0, CS39_SW3, CS38_SW3, CS37_SW3}, | |||||
{0, CS39_SW4, CS38_SW4, CS37_SW4}, | |||||
{0, CS39_SW5, CS38_SW5, CS37_SW5}, | |||||
{0, CS39_SW7, CS38_SW7, CS37_SW7} | |||||
}; | |||||
led_config_t g_led_config = { { | |||||
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, | |||||
{ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, | |||||
{ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 }, | |||||
{ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, NO_LED,55, 56, 57 }, | |||||
{ 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 } | |||||
}, { | |||||
{0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0}, | |||||
{4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16}, | |||||
{6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32}, | |||||
{9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48}, | |||||
{ 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 } | |||||
}, { | |||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, | |||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, | |||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, | |||||
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, | |||||
1, 1, 1, 4, 1, 1, 1, 1, 1, 1 | |||||
} }; | |||||
__attribute__ ((weak)) | |||||
void rgb_matrix_indicators_user(void) | |||||
{ | |||||
if (host_keyboard_led_state().caps_lock) | |||||
{ | |||||
rgb_matrix_set_color(30, 0xFF, 0xFF, 0xFF); | |||||
} | |||||
} | |||||
#endif |
@ -0,0 +1,35 @@ | |||||
/* Copyright 2021 DZTECH <moyi4681@live.cn> | |||||
* | |||||
* This program is free software: you can redistribute it and/or modify | |||||
* it under the terms of the GNU General Public License as published by | |||||
* the Free Software Foundation, either version 2 of the License, or | |||||
* (at your option) any later version. | |||||
* | |||||
* This program is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU General Public License | |||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||||
*/ | |||||
#pragma once | |||||
#include "quantum.h" | |||||
#define XXX KC_NO | |||||
#define LAYOUT_65_ansi( \ | |||||
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, K1D, K1E, \ | |||||
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ | |||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, K3D, K3E, \ | |||||
K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D, 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, K1D, K1E }, \ | |||||
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, K2E }, \ | |||||
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, XXX, K3C, K3D, K3E }, \ | |||||
{ K40, K41, K42, XXX, XXX, K45, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D, K4E } \ | |||||
} |
@ -0,0 +1,29 @@ | |||||
/* Copyright 2021 Mats Nilsson | |||||
* | |||||
* 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 EE_HANDS | |||||
#undef RGBLED_NUM | |||||
#define RGBLIGHT_ANIMATIONS | |||||
#define RGBLED_NUM 12 | |||||
#define RGBLIGHT_HUE_STEP 8 | |||||
#define RGBLIGHT_SAT_STEP 8 | |||||
#define RGBLIGHT_VAL_STEP 8 | |||||
#define RGBLIGHT_SPLIT \ | |||||
{ 6, 6 } | |||||
#define RGBLIGHT_SLEEP |
@ -0,0 +1,94 @@ | |||||
/* Copyright 2021 Mats Nilsson | |||||
* | |||||
* 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 "mnil.h" | |||||
const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {5, 5, 5, 5}; | |||||
#define HSV_DEFAULT 32, 255, 255 | |||||
layer_state_t layer_state_set_user(layer_state_t state) { | |||||
state = update_tri_layer_state(state, _SYMBOLS, _NAVIGATION, _NUMPAD); | |||||
switch (get_highest_layer(state)) { | |||||
case _NUMPAD: | |||||
rgblight_sethsv_noeeprom(HSV_GREEN); | |||||
break; | |||||
case _NAVIGATION: | |||||
rgblight_sethsv_noeeprom(HSV_MAGENTA); | |||||
break; | |||||
case _SYMBOLS: | |||||
rgblight_sethsv_noeeprom(HSV_AZURE); | |||||
break; | |||||
default: // for any other layers, or the default layer | |||||
rgblight_sethsv_noeeprom(HSV_DEFAULT); | |||||
break; | |||||
} | |||||
return state; | |||||
} | |||||
// clang-format off | |||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||
[_COLEMAK] = LAYOUT( | |||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ | |||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, | |||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ | |||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, TD(OAA), KC_NO, | |||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ | |||||
KC_LSFT, TD(AAE), KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_NO, | |||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | |||||
KC_LCTL, KC_Z, KC_X, KC_C, KC_D, KC_V, _NAV_SPC, _SYM_ENT,KC_K, KC_H, KC_COMM, KC_DOT, SE_MINS, KC_LGUI, | |||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ | |||||
KC_LGUI, SFT_TAB, _NAV_SPC, _SYM_ENT,CTL_BSPC,ALT_DEL), | |||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘ | |||||
[_SYMBOLS] = LAYOUT( | |||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ | |||||
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_TRNS, | |||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ | |||||
KC_TRNS, KC_NO, SE_PIPE, SE_LBRC, SE_RBRC, KC_NO, S(KC_5), SE_QUES, SE_AT, SE_EQL, SE_DLR, KC_TRNS, | |||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ | |||||
KC_TRNS, SE_LCBR, SE_RCBR, SE_LPRN, SE_RPRN, KC_NO, SE_PLUS, S(KC_1), S(KC_2), S(KC_3), SE_AMPR, KC_TRNS, | |||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | |||||
KC_TRNS, M_TILD, M_CIRC, SE_LESS, SE_GRTR, KC_NO, KC_TRNS, KC_TRNS, SE_APOS, SE_SLSH, SE_BSLS, SE_ASTR, M_BTCK, KC_TRNS, | |||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), | |||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘ | |||||
[_NAVIGATION] = LAYOUT( | |||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ | |||||
KC_TRNS, KC_NO, CUT, COPY, PASTE, AUTOFILL, KC_NO, KC_HOME, KC_WH_D, KC_WH_U, KC_END, KC_NO, | |||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ | |||||
KC_TRNS, KC_ACL0, KC_ACL1, KC_BTN2, KC_BTN1, KC_LCTL, KC_WH_L, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_WH_R, | |||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | |||||
KC_TRNS, KC_ACL2, KC_BTN4, KC_BTN3, KC_BTN5, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LCTL, | |||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), | |||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘ | |||||
[_NUMPAD] = LAYOUT( | |||||
//┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐ | |||||
RGB_TOG, RGB_M_P, RGB_M_B, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RESET, | |||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ | |||||
KC_TRNS, QUIT, WIN, MVWSL , MVWSR, CRYWS, TERM, KC_7, KC_8, KC_9, KC_COMM, KC_NO, | |||||
//├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤ | |||||
KC_TRNS, CS_TAB, C_TAB, PRVWS, NXTWS, I3MOD, OPEN, KC_4, KC_5, KC_6, KC_0, KC_NO, | |||||
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┼────────┼────────┼────────┤ | |||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, MOVWS, KC_TRNS, KC_TRNS, BROWSER, KC_1, KC_2, KC_3, KC_DOT, KC_NO, | |||||
//└────────┴────────┴────────┴───┬────┴───┬────┴───┬────┴───┬────┘ └───┬────┴───┬────┴───┬────┴───┬────┴────────┴────────┴────────┘ | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), | |||||
// └────────┴────────┴────────┘ └────────┴────────┴────────┘ | |||||
}; | |||||
// clang-format on |
@ -0,0 +1,2 @@ | |||||
# mnil's iris keymap | |||||
Read my user settings [here](../../../../../users/mnil/readme.md) for more details. |
@ -0,0 +1 @@ | |||||
RGBLIGHT_ENABLE = yes |
@ -0,0 +1,69 @@ | |||||
/* Copyright 2020 rate | |||||
* | |||||
* 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 "keymap_jp.h" | |||||
enum layer_names { | |||||
_QWERTY = 0, | |||||
_FN, | |||||
_NUM | |||||
}; | |||||
enum custom_keycodes { | |||||
RGB_RST = SAFE_RANGE | |||||
}; | |||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||
[_QWERTY] = LAYOUT( | |||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_DEL, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, | |||||
KC_0, KC_ZKHK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, JP_MINS, JP_CIRC, JP_YEN, KC_BSPC, KC_DEL, | |||||
KC_H, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT, JP_LBRC, KC_HOME, | |||||
KC_U, KC_ENT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_SCLN, JP_COLN, JP_RBRC, KC_ENT, KC_END, | |||||
KC_VOLU, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_RSFT, KC_PGUP, | |||||
KC_VOLD, KC_LCTRL, KC_LGUI, KC_LALT, KC_LALT, LT(_NUM, KC_M), KC_SPC, LT(_FN, KC_SPC), KC_MPLY, JP_KANA, KC_UP, KC_DOWN, KC_INS, KC_RCTRL, KC_PGDN | |||||
), | |||||
[_FN] = LAYOUT( | |||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||||
RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||||
RGB_VAD, _______, _______, _______, _______, KC_UP, _______, _______, KC_HOME, KC_END, _______, KC_PGUP, _______, _______, _______, | |||||
_______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, KC_PGDN, _______, _______, _______, _______, | |||||
RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, | |||||
RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD | |||||
), | |||||
[_NUM] = LAYOUT( | |||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||||
RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PMNS, _______, _______, _______, _______, | |||||
RGB_VAD, KC_7, KC_8, KC_9, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, _______, | |||||
_______, KC_4, KC_5, KC_6, _______, _______, _______, KC_4, KC_5, KC_6, _______, KC_PPLS, KC_PAST, _______, _______, _______, | |||||
RGB_HUI, KC_1, KC_2, KC_3, KC_0, JP_DOT, _______, KC_1, KC_2, KC_3, _______, KC_PSLS, _______, _______, RGB_SAI, | |||||
RGB_HUD, _______, _______, _______, _______, _______, _______, KC_0, _______, JP_DOT, _______, _______, _______, _______, RGB_SAD | |||||
) | |||||
}; | |||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||||
switch (keycode) { | |||||
case RGB_RST: | |||||
if (record->event.pressed) { | |||||
eeconfig_update_rgblight_default(); | |||||
rgblight_enable(); | |||||
} | |||||
break; | |||||
} | |||||
return true; | |||||
} |
@ -0,0 +1,78 @@ | |||||
/* Copyright 2020 rate | |||||
* | |||||
* 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 "keymap_jp.h" | |||||
enum layer_names { | |||||
_QWERTY = 0, | |||||
_FN, | |||||
_NUM, | |||||
_RESERVE | |||||
}; | |||||
enum custom_keycodes { | |||||
RGB_RST = SAFE_RANGE | |||||
}; | |||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||
[_QWERTY] = LAYOUT( | |||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_DEL, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, | |||||
KC_0, KC_ZKHK, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, JP_MINS, JP_CIRC, JP_YEN, KC_BSPC, KC_DEL, | |||||
KC_H, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT, JP_LBRC, KC_HOME, | |||||
KC_U, KC_ENT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_SCLN, JP_COLN, JP_RBRC, KC_ENT, KC_END, | |||||
KC_VOLU, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JP_COMM, JP_DOT, JP_SLSH, JP_BSLS, KC_RSFT, KC_PGUP, | |||||
KC_VOLD, KC_LCTRL, KC_LGUI, KC_LALT, KC_LALT, LT(_NUM, KC_M), KC_SPC, LT(_FN, KC_SPC), KC_MPLY, JP_KANA, KC_UP, KC_DOWN, KC_INS, KC_RCTRL, KC_PGDN | |||||
), | |||||
[_FN] = LAYOUT( | |||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||||
RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||||
RGB_VAD, _______, _______, _______, _______, KC_UP, _______, _______, KC_HOME, KC_END, _______, KC_PGUP, _______, _______, _______, | |||||
_______, _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, KC_LEFT, KC_UP, KC_DOWN, KC_RIGHT, KC_PGDN, _______, _______, _______, _______, | |||||
RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, | |||||
RGB_HUD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAD | |||||
), | |||||
[_NUM] = LAYOUT( | |||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||||
RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PMNS, _______, _______, _______, _______, | |||||
RGB_VAD, KC_7, KC_8, KC_9, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, _______, | |||||
_______, KC_4, KC_5, KC_6, _______, _______, _______, KC_4, KC_5, KC_6, _______, KC_PPLS, KC_PAST, _______, _______, _______, | |||||
RGB_HUI, KC_1, KC_2, KC_3, KC_0, JP_DOT, _______, KC_1, KC_2, KC_3, _______, KC_PSLS, _______, _______, RGB_SAI, | |||||
RGB_HUD, _______, _______, _______, _______, _______, _______, KC_0, _______, JP_DOT, _______, _______, _______, _______, RGB_SAD | |||||
), | |||||
[_RESERVE] = LAYOUT( | |||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | |||||
) | |||||
}; | |||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||||
switch (keycode) { | |||||
case RGB_RST: | |||||
if (record->event.pressed) { | |||||
eeconfig_update_rgblight_default(); | |||||
rgblight_enable(); | |||||
} | |||||
break; | |||||
} | |||||
return true; | |||||
} |
@ -0,0 +1 @@ | |||||
VIA_ENABLE = yes |
@ -0,0 +1,23 @@ | |||||
/* Copyright 2021 Mats Nilsson | |||||
* | |||||
* 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 | |||||
#ifdef AUDIO_ENABLE | |||||
# define STARTUP_SONG SONG(NO_SOUND) | |||||
#endif | |||||
#define MIDI_BASIC |
@ -0,0 +1,60 @@ | |||||
/* Copyright 2021 Mats Nilsson | |||||
* | |||||
* 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 "mnil.h" | |||||
layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _SYMBOLS, _NAVIGATION, _NUMPAD); } | |||||
// clang-format off | |||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||
[_COLEMAK] = LAYOUT_planck_2x2u( | |||||
KC_ESC, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, TD(OAA), KC_BSPC, | |||||
KC_TAB, TD(AAE), KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_NO, | |||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, SE_MINS, KC_NO , | |||||
KC_LCTL, KC_NO, KC_LGUI, SFT_TAB, _NAV_SPC, _SYM_ENT, CTL_BSPC,ALT_DEL, KC_NO, KC_LGUI | |||||
), | |||||
[_QWERTY] = LAYOUT_planck_2x2u( | |||||
KC_TRNS, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, SE_AA, | |||||
KC_TRNS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, SE_OSLH, SE_AE, | |||||
KC_TRNS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | |||||
), | |||||
[_SYMBOLS] = LAYOUT_planck_2x2u( | |||||
KC_TRNS, KC_NO, SE_PIPE, SE_LBRC, SE_RBRC, KC_NO, S(KC_5), SE_QUES, SE_AT, SE_EQL, SE_DLR, KC_BSPC, | |||||
KC_TRNS, SE_LCBR, SE_RCBR, SE_LPRN, SE_RPRN, KC_NO, SE_PLUS, S(KC_1), S(KC_2), S(KC_3), SE_AMPR, KC_QUOT, | |||||
KC_TRNS, M_TILD, M_CIRC, SE_LESS, SE_GRTR, KC_NO, SE_APOS, SE_SLSH, SE_BSLS, SE_ASTR, M_BTCK, KC_ENT, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | |||||
), | |||||
[_NAVIGATION] = LAYOUT_planck_2x2u( | |||||
KC_TRNS, KC_NO, CUT, COPY, PASTE, AUTOFILL,KC_NO, KC_HOME, KC_WH_D, KC_WH_U, KC_END, KC_NO, | |||||
KC_TRNS, KC_ACL0, KC_ACL1, KC_BTN2, KC_BTN1, KC_LCTL, KC_WH_L, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_WH_R, | |||||
KC_TRNS, KC_ACL2, KC_BTN4, KC_BTN3, KC_BTN5, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_LCTL, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | |||||
), | |||||
[_NUMPAD] = LAYOUT_planck_2x2u( | |||||
KC_TRNS, QUIT, WIN, MVWSL, MVWSR, CRYWS, TERM, KC_7, KC_8, KC_9, KC_COMM, RESET, | |||||
KC_TRNS, CS_TAB, C_TAB, PRVWS, NXTWS, I3MOD, OPEN, KC_4, KC_5, KC_6, KC_0, KC_NO, | |||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, MOVWS, BROWSER, KC_1, KC_2, KC_3, KC_DOT, KC_NO, | |||||
QWE_COL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | |||||
), | |||||
}; | |||||
// clang-format on |
@ -0,0 +1,2 @@ | |||||
# mnil's planck keymap | |||||
Read my user settings [here](../../../../users/mnil/readme.md) for more details. |
@ -0,0 +1,87 @@ | |||||
/* | |||||
Copyright 2021 Stefan Karsch | |||||
This program is free software: you can redistribute it and/or modify | |||||
it under the terms of the GNU General Public License as published by | |||||
the Free Software Foundation, either version 2 of the License, or | |||||
(at your option) any later version. | |||||
This program is distributed in the hope that it will be useful, | |||||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
GNU General Public License for more details. | |||||
You should have received a copy of the GNU General Public License | |||||
along with this program. If not, see <http://www.gnu.org/licenses/>. | |||||
*/ | |||||
#pragma once | |||||
#include "config_common.h" | |||||
/* USB Device descriptor parameter */ | |||||
#define VENDOR_ID 0x54F3 | |||||
#define PRODUCT_ID 0x2065 | |||||
#define DEVICE_VER 0x0001 | |||||
#define MANUFACTURER Switchplate Peripherals | |||||
#define PRODUCT 910 | |||||
/* key matrix size */ | |||||
#define MATRIX_ROWS 5 | |||||
#define MATRIX_COLS 15 | |||||
/* | |||||
* Keyboard Matrix Assignments | |||||
* | |||||
* Change this to how you wired your keyboard | |||||
* COLS: AVR pins used for columns, left to right | |||||
* ROWS: AVR pins used for rows, top to bottom | |||||
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) | |||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) | |||||
* | |||||
*/ | |||||
#define MATRIX_ROW_PINS { F4, F5, F6, F7, D1 } | |||||
#define MATRIX_COL_PINS { D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, B3, B2, B0, B1 } | |||||
#define UNUSED_PINS | |||||
/* COL2ROW, ROW2COL*/ | |||||
#define DIODE_DIRECTION COL2ROW | |||||
#define BACKLIGHT_PIN B7 | |||||
// #define BACKLIGHT_BREATHING | |||||
#define BACKLIGHT_LEVELS 3 | |||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ | |||||
#define DEBOUNCE 5 | |||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */ | |||||
//#define MATRIX_HAS_GHOST | |||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | |||||
#define LOCKING_SUPPORT_ENABLE | |||||
/* Locking resynchronize hack */ | |||||
#define LOCKING_RESYNC_ENABLE | |||||
/* | |||||
* 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 | |||||
/* disable these deprecated features by default */ | |||||
#define NO_ACTION_MACRO | |||||
#define NO_ACTION_FUNCTION | |||||
/* Bootmagic Lite key configuration */ | |||||
// #define BOOTMAGIC_LITE_ROW 0 | |||||
// #define BOOTMAGIC_LITE_COLUMN 0 |
@ -0,0 +1,297 @@ | |||||
{ | |||||
"keyboard_name": "southpaw910", | |||||
"url": "", | |||||
"maintainer": "MxBluE", | |||||
"width": 22.5, | |||||
"height": 6.25, | |||||
"layouts": { | |||||
"LAYOUT_all": { | |||||
"layout": [ | |||||
{ | |||||
"x": 0, | |||||
"y": 0 | |||||
}, | |||||
{ | |||||
"x": 1, | |||||
"y": 0 | |||||
}, | |||||
{ | |||||
"x": 2, | |||||
"y": 0 | |||||
}, | |||||
{ | |||||
"x": 3, | |||||
"y": 0 | |||||
}, | |||||
{ | |||||
"x": 4, | |||||
"y": 0 | |||||
}, | |||||
{ | |||||
"x": 5, | |||||
"y": 0 | |||||
}, | |||||
{ | |||||
"x": 6, | |||||
"y": 0 | |||||
}, | |||||
{ | |||||
"x": 7, | |||||
"y": 0 | |||||
}, | |||||
{ | |||||
"x": 8, | |||||
"y": 0 | |||||
}, | |||||
{ | |||||
"x": 9, | |||||
"y": 0 | |||||
}, | |||||
{ | |||||
"x": 10, | |||||
"y": 0 | |||||
}, | |||||
{ | |||||
"x": 11, | |||||
"y": 0 | |||||
}, | |||||
{ | |||||
"x": 12, | |||||
"y": 0 | |||||
}, | |||||
{ | |||||
"x": 13, | |||||
"y": 0 | |||||
}, | |||||
{ | |||||
"x": 14, | |||||
"y": 0 | |||||
}, | |||||
{ | |||||
"x": 15, | |||||
"y": 0 | |||||
}, | |||||
{ | |||||
"x": 0, | |||||
"y": 1, | |||||
"w": 1.5 | |||||
}, | |||||
{ | |||||
"x": 1.5, | |||||
"y": 1 | |||||
}, | |||||
{ | |||||
"x": 2.5, | |||||
"y": 1 | |||||
}, | |||||
{ | |||||
"x": 3.5, | |||||
"y": 1 | |||||
}, | |||||
{ | |||||
"x": 4.5, | |||||
"y": 1 | |||||
}, | |||||
{ | |||||
"x": 5.5, | |||||
"y": 1 | |||||
}, | |||||
{ | |||||
"x": 6.5, | |||||
"y": 1 | |||||
}, | |||||
{ | |||||
"x": 7.5, | |||||
"y": 1 | |||||
}, | |||||
{ | |||||
"x": 8.5, | |||||
"y": 1 | |||||
}, | |||||
{ | |||||
"x": 9.5, | |||||
"y": 1 | |||||
}, | |||||
{ | |||||
"x": 10.5, | |||||
"y": 1 | |||||
}, | |||||
{ | |||||
"x": 11.5, | |||||
"y": 1 | |||||
}, | |||||
{ | |||||
"x": 12.5, | |||||
"y": 1 | |||||
}, | |||||
{ | |||||
"x": 13.5, | |||||
"y": 1, | |||||
"w": 1.5 | |||||
}, | |||||
{ | |||||
"x": 15, | |||||
"y": 1 | |||||
}, | |||||
{ | |||||
"x": 0, | |||||
"y": 2, | |||||
"w": 1.75 | |||||
}, | |||||
{ | |||||
"x": 1.75, | |||||
"y": 2 | |||||
}, | |||||
{ | |||||
"x": 2.75, | |||||
"y": 2 | |||||
}, | |||||
{ | |||||
"x": 3.75, | |||||
"y": 2 | |||||
}, | |||||
{ | |||||
"x": 4.75, | |||||
"y": 2 | |||||
}, | |||||
{ | |||||
"x": 5.75, | |||||
"y": 2 | |||||
}, | |||||
{ | |||||
"x": 6.75, | |||||
"y": 2 | |||||
}, | |||||
{ | |||||
"x": 7.75, | |||||
"y": 2 | |||||
}, | |||||
{ | |||||
"x": 8.75, | |||||
"y": 2 | |||||
}, | |||||
{ | |||||
"x": 9.75, | |||||
"y": 2 | |||||
}, | |||||
{ | |||||
"x": 10.75, | |||||
"y": 2 | |||||
}, | |||||
{ | |||||
"x": 11.75, | |||||
"y": 2 | |||||
}, | |||||
{ | |||||
"x": 12.75, | |||||
"y": 2, | |||||
"w": 2.25 | |||||
}, | |||||
{ | |||||
"x": 15, | |||||
"y": 2 | |||||
}, | |||||
{ | |||||
"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": 15, | |||||
"y": 3 | |||||
}, | |||||
{ | |||||
"x": 0, | |||||
"y": 4, | |||||
"w": 1.25 | |||||
}, | |||||
{ | |||||
"x": 1.25, | |||||
"y": 4, | |||||
"w": 1.25 | |||||
}, | |||||
{ | |||||
"x": 2.5, | |||||
"y": 4, | |||||
"w": 1.25 | |||||
}, | |||||
{ | |||||
"x": 3.75, | |||||
"y": 4, | |||||
"w": 6.25 | |||||
}, | |||||
{ | |||||
"x": 10, | |||||
"y": 4, | |||||
"w": 1.25 | |||||
}, | |||||
{ | |||||
"x": 11.25, | |||||
"y": 4, | |||||
"w": 1.25 | |||||
}, | |||||
{ | |||||
"x": 13, | |||||
"y": 4 | |||||
}, | |||||
{ | |||||
"x": 14, | |||||
"y": 4 | |||||
}, | |||||
{ | |||||
"x": 15, | |||||
"y": 4 | |||||
} | |||||
] | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,40 @@ | |||||
/* Copyright 2021 Stefan Karsch | |||||
* | |||||
* This program is free software: you can redistribute it and/or modify | |||||
* it under the terms of the GNU General Public License as published by | |||||
* the Free Software Foundation, either version 2 of the License, or | |||||
* (at your option) any later version. | |||||
* | |||||
* This program is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU General Public License | |||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||||
*/ | |||||
#include QMK_KEYBOARD_H | |||||
// Defines names for use in layer keycodes and the keymap | |||||
enum layer_names { | |||||
_BASE, | |||||
_FN | |||||
}; | |||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||
LAYOUT_all( /* Base */ | |||||
KC_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_INS, KC_TRNS, | |||||
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_CAPSLOCK, 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_PGUP, | |||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, | |||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT | |||||
), | |||||
LAYOUT_all( /* L1 */ | |||||
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_INS, KC_TRNS, | |||||
KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, | |||||
RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_MOD, RGB_SAI, RGB_TOG, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI | |||||
), | |||||
}; |
@ -0,0 +1,3 @@ | |||||
# The default keymap for Switchplate910 | |||||
Nothing special |
@ -0,0 +1,57 @@ | |||||
/* Copyright 2021 Stefan Karsch | |||||
* | |||||
* This program is free software: you can redistribute it and/or modify | |||||
* it under the terms of the GNU General Public License as published by | |||||
* the Free Software Foundation, either version 2 of the License, or | |||||
* (at your option) any later version. | |||||
* | |||||
* This program is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU General Public License | |||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||||
*/ | |||||
#include QMK_KEYBOARD_H | |||||
// Defines names for use in layer keycodes and the keymap | |||||
enum layer_names { | |||||
_BASE, | |||||
_FN | |||||
}; | |||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||
LAYOUT_all( /* Base */ | |||||
KC_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_INS, KC_TRNS, | |||||
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_CAPSLOCK, 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_PGUP, | |||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, | |||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT | |||||
), | |||||
LAYOUT_all( /* L1 */ | |||||
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_INS, KC_TRNS, | |||||
KC_TRNS, KC_MPLY, KC_MPRV, KC_MNXT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, | |||||
RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_END, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, RGB_MOD, RGB_SAI, RGB_TOG, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI | |||||
), | |||||
LAYOUT_all( /* L2 */ | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS | |||||
), | |||||
LAYOUT_all( /* L3 */ | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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,13 @@ | |||||
# Switchplate910 | |||||
Acoustic cut PCB for the TGR 910 | |||||
* Keyboard Maintainer: [Switchplate Peripherals](https://switchplate.co/)/[ai03](https://github.com/ai03-2725) | |||||
* Hardware Supported: Switchplate910 PCB | |||||
* Hardware Availability: GB | |||||
Make example for this keyboard (after setting up your build environment): | |||||
make switchplate/switchplate910:default | |||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). |
@ -0,0 +1,22 @@ | |||||
# MCU name | |||||
MCU = atmega32u4 | |||||
# Bootloader selection | |||||
BOOTLOADER = atmel-dfu | |||||
# Build Options | |||||
# change yes to no to disable | |||||
# | |||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration | |||||
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 | |||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | |||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | |||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||||
NKRO_ENABLE = no # USB Nkey Rollover | |||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality | |||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow | |||||
BLUETOOTH_ENABLE = no # Enable Bluetooth | |||||
AUDIO_ENABLE = no # Audio output |
@ -0,0 +1,43 @@ | |||||
/* Copyright 2021 Stefan Karsch | |||||
* | |||||
* 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" | |||||
/* This is a shortcut to help you visually see your layout. | |||||
* | |||||
* The first section contains all of the arguments representing the physical | |||||
* layout of the board and position of the keys. | |||||
* | |||||
* The second converts the arguments into a two-dimensional array which | |||||
* represents the switch matrix. | |||||
*/ | |||||
#define LAYOUT_all( \ | |||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K213, \ | |||||
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ | |||||
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \ | |||||
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K314, \ | |||||
K400, K401, K402, K405, K408, K409, K411, K412, K414 \ | |||||
) \ | |||||
{ \ | |||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ | |||||
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ | |||||
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ | |||||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, K314 }, \ | |||||
{ K400, K401, K402, KC_NO, KC_NO, K405, KC_NO, KC_NO, K408, K409, KC_NO, K411, K412, KC_NO, K414 } \ | |||||
} |
@ -1,99 +1,55 @@ | |||||
// this is the style you want to emulate. | |||||
// This is the canonical layout file for the Quantum project. If you want to add another keyboard, | |||||
/* | |||||
Copyright 2021 | |||||
#include QMK_KEYBOARD_H | |||||
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. | |||||
// 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 telophase_layers | |||||
{ | |||||
_QWERTY, | |||||
_LOWER, | |||||
_RAISE, | |||||
_ADJUST, | |||||
}; | |||||
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 telophase_keycodes | |||||
{ | |||||
LOWER = SAFE_RANGE, | |||||
RAISE, | |||||
ADJUST | |||||
enum layer_names { | |||||
_QWERTY, | |||||
_LOWER, | |||||
_RAISE, | |||||
_ADJUST | |||||
}; | }; | ||||
#define LONGPRESS_DELAY 150 | #define LONGPRESS_DELAY 150 | ||||
#define LAYER_TOGGLE_DELAY 300 | #define LAYER_TOGGLE_DELAY 300 | ||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
[_QWERTY] = { /*QWERTY*/ | |||||
{KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC }, | |||||
{KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT }, | |||||
{KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT }, | |||||
{KC_LCTL, KC_LGUI, KC_LALT, ADJUST, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT } | |||||
}, | |||||
[_LOWER] = { /*Lower*/ | |||||
{KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL }, | |||||
{KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE }, | |||||
{_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),_______, _______, _______ }, | |||||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY } | |||||
}, | |||||
[_RAISE] = { /*Raise*/ | |||||
{KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL }, | |||||
{KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS }, | |||||
{_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______ }, | |||||
{_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY } | |||||
}, | |||||
[_ADJUST] = { /*Adjust*/ | |||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, | |||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, | |||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ }, | |||||
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ } | |||||
}, | |||||
}; | |||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||||
switch (keycode) { | |||||
case LOWER: | |||||
if (record->event.pressed) { | |||||
layer_on(_LOWER); | |||||
} else { | |||||
layer_off(_LOWER); | |||||
} | |||||
return false; | |||||
break; | |||||
case RAISE: | |||||
if (record->event.pressed) { | |||||
layer_on(_RAISE); | |||||
} else { | |||||
layer_off(_RAISE); | |||||
} | |||||
return false; | |||||
break; | |||||
case ADJUST: | |||||
if (record->event.pressed) { | |||||
layer_on(_ADJUST); | |||||
} else { | |||||
layer_off(_ADJUST); | |||||
} | |||||
return false; | |||||
break; | |||||
} | |||||
return true; | |||||
} | |||||
void matrix_scan_user(void) { | |||||
return; | |||||
[_QWERTY] = LAYOUT_ortho_4x12( | |||||
KC_ESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, | |||||
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, | |||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT, | |||||
KC_LCTL, KC_LGUI, KC_LALT, MO(_ADJUST), MO(_LOWER), KC_SPC, KC_SPC, MO(_RAISE), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT | |||||
), | |||||
[_LOWER] = LAYOUT_ortho_4x12( | |||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL, | |||||
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, | |||||
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), _______, _______, _______, | |||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY | |||||
), | |||||
[_RAISE] = LAYOUT_ortho_4x12( | |||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, | |||||
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, | |||||
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, _______, _______, _______, | |||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY | |||||
), | |||||
[_ADJUST] = LAYOUT_ortho_4x12( | |||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, | |||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ | |||||
) | |||||
}; | }; |
@ -1,16 +1,13 @@ | |||||
Telophase | |||||
========= | |||||
# Telophase | |||||
A wireless split compact keyboard. | A wireless split compact keyboard. | ||||
Hardware Supported: Telophase PCB | |||||
This keyboard uses a completely different 'matrix scan' system to other keyboards, it relies on an external nRF51822 microcontroller maintaining a matrix of keystates received from the keyboard halves. The matrix.c file contains the code to poll the external microcontroller for the key matrix. As long as this file is not changed, all other QMK features are supported. | |||||
* Hardware Supported: Telophase PCB | |||||
Make example for this keyboard (after setting up your build environment): | Make example for this keyboard (after setting up your build environment): | ||||
make telophase:default | make telophase:default | ||||
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. | |||||
## Mitosis Notes | |||||
These configuration files were based off the Atreus keyboard. It assumes a Pro Micro is being used, however retains the 'make upload' feature from the Atreus branch. This keyboard uses a completely different 'matrix scan' system to other keyboards, it relies on an external nRF51822 microcontroller maintaining a matrix of keystates received from the keyboard halves. The matrix.c file contains the code to poll the external microcontroller for the key matrix. As long as this file is not changed, all other QMK features are supported. | |||||
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,26 +1,44 @@ | |||||
/* | |||||
Copyright 2021 | |||||
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 "telophase.h" | #include "telophase.h" | ||||
void led_init(void) { | void led_init(void) { | ||||
DDRD |= (1<<1); | |||||
PORTD |= (1<<1); | |||||
DDRF |= (1<<4) | (1<<5); | |||||
PORTF |= (1<<4) | (1<<5); | |||||
setPinOutput(D1); | |||||
setPinOutput(F4); | |||||
setPinOutput(F5); | |||||
writePinHigh(D1); | |||||
writePinHigh(F4); | |||||
writePinHigh(F5); | |||||
} | } | ||||
void matrix_init_kb(void) { | void matrix_init_kb(void) { | ||||
// put your keyboard start-up code here | |||||
// runs once when the firmware starts up | |||||
matrix_init_user(); | |||||
led_init(); | |||||
// put your keyboard start-up code here | |||||
// runs once when the firmware starts up | |||||
matrix_init_user(); | |||||
led_init(); | |||||
} | } | ||||
#ifdef SWAP_HANDS_ENABLE | #ifdef SWAP_HANDS_ENABLE | ||||
__attribute__ ((weak)) | __attribute__ ((weak)) | ||||
const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { | const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { | ||||
{{12, 0}, {11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, | |||||
{{12, 1}, {11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, | |||||
{{12, 2}, {11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, | |||||
{{12, 3}, {11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, | |||||
{{12, 0}, {11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, | |||||
{{12, 1}, {11, 1}, {10, 1}, {9, 1}, {8, 1}, {7, 1}, {6, 1}, {5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, | |||||
{{12, 2}, {11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, | |||||
{{12, 3}, {11, 3}, {10, 3}, {9, 3}, {8, 3}, {7, 3}, {6, 3}, {5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}} | |||||
}; | }; | ||||
#endif | #endif |
@ -0,0 +1,35 @@ | |||||
/* Copyright 2021 Harrison Chan (Xelus) | |||||
* | |||||
* This program is free software: you can redistribute it and/or modify | |||||
* it under the terms of the GNU General Public License as published by | |||||
* the Free Software Foundation, either version 2 of the License, or | |||||
* (at your option) any later version. | |||||
* | |||||
* This program is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU General Public License | |||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||||
*/ | |||||
#include QMK_KEYBOARD_H | |||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||
[0] = LAYOUT_all( | |||||
KC_ESC, KC_F13, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, | |||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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, MO(1), KC_UP, | |||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), | |||||
[1] = LAYOUT_all( | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RESET, KC_RESET, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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,19 @@ | |||||
# Pachi | |||||
Pachi TKL Keyboard that supports both 87 and 88 layouts. | |||||
* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) | |||||
* Hardware Supported: Group buys | |||||
Make example for this keyboard (after setting up your build environment): | |||||
make xelus/pachi/mini_32u4:default | |||||
Reset your keyboard in 3 ways: | |||||
<ol> | |||||
<li>Software reset on Fn + Backspace</li> | |||||
<li>Bootmagic reset: hold down the top left key (usually escape) and plugin the keyboard</li> | |||||
<li>Physical reset button: on the back of the PCB, there should be a small golden button you can press</li> | |||||
</ol> | |||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). |
@ -0,0 +1,35 @@ | |||||
/* Copyright 2021 Harrison Chan (Xelus) | |||||
* | |||||
* This program is free software: you can redistribute it and/or modify | |||||
* it under the terms of the GNU General Public License as published by | |||||
* the Free Software Foundation, either version 2 of the License, or | |||||
* (at your option) any later version. | |||||
* | |||||
* This program is distributed in the hope that it will be useful, | |||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
* GNU General Public License for more details. | |||||
* | |||||
* You should have received a copy of the GNU General Public License | |||||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | |||||
*/ | |||||
#include QMK_KEYBOARD_H | |||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||||
[0] = LAYOUT_all( | |||||
KC_ESC, KC_F13, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, | |||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_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, MO(1), KC_UP, | |||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), | |||||
[1] = LAYOUT_all( | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RESET, KC_RESET, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) | |||||
}; |
@ -0,0 +1,2 @@ | |||||
# The Default Pachi TKL Layout | |||||
@ -0,0 +1,2 @@ | |||||
# The VIA Pachi TKL Layout | |||||
@ -0,0 +1 @@ | |||||
VIA_ENABLE = yes |
@ -0,0 +1,19 @@ | |||||
# Pachi | |||||
Pachi TKL Keyboard that supports both 87 and 88 layouts. | |||||
* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) | |||||
* Hardware Supported: Group buys | |||||
Make example for this keyboard (after setting up your build environment): | |||||
make xelus/pachi/rev1:default | |||||
Reset your keyboard in 3 ways: | |||||
<ol> | |||||
<li>Software reset on Fn + Backspace</li> | |||||
<li>Bootmagic reset: hold down the top left key (usually escape) and plugin the keyboard</li> | |||||
<li>Physical reset button: on the back of the PCB, there should be a small golden button you can press</li> | |||||
</ol> | |||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). |
@ -0,0 +1,76 @@ | |||||
/* Copyright 2021 Harrison Chan (Xelus) | |||||
* | |||||
* 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 | |||||
/* USB Device descriptor parameter */ | |||||
#define VENDOR_ID 0x5845 // "XE" | |||||
#define PRODUCT_ID 0x5052 // "PR" | |||||
#define DEVICE_VER 0x0001 | |||||
#define MANUFACTURER Xelus | |||||
#define PRODUCT Xelus Pachi RGB | |||||
/* key matrix size */ | |||||
#define MATRIX_ROWS 6 | |||||
#define MATRIX_COLS 17 | |||||
/* key matrix pins */ | |||||
#define MATRIX_ROW_PINS { B14, B13, B12, B2, A8, B15 } | |||||
#define MATRIX_COL_PINS { C13, C14, C15, H0, A0, A1, A2, A3, A4, A5, A6, A7, B0, B1, H1, B10, B11 } | |||||
#define UNUSED_PINS | |||||
/* COL2ROW or ROW2COL */ | |||||
#define DIODE_DIRECTION COL2ROW | |||||
/* Set 0 if debouncing isn't needed */ | |||||
#define DEBOUNCE 5 | |||||
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ | |||||
#define LOCKING_SUPPORT_ENABLE | |||||
/* Locking resynchronize hack */ | |||||
#define LOCKING_RESYNC_ENABLE | |||||
// I2C setup | |||||
#define I2C1_SCL 8 | |||||
#define I2C1_SDA 9 | |||||
#define I2C1_SCL_PAL_MODE 4 | |||||
#define I2C1_SDA_PAL_MODE 4 | |||||
#define I2C1_TIMINGR_PRESC 0U | |||||
#define I2C1_TIMINGR_SCLDEL 11U | |||||
#define I2C1_TIMINGR_SDADEL 0U | |||||
#define I2C1_TIMINGR_SCLH 14U | |||||
#define I2C1_TIMINGR_SCLL 42U | |||||
// I2C EEPROM | |||||
#define EEPROM_I2C_24LC64 | |||||
// RGB Matrix defines | |||||
#define DRIVER_ADDR_1 0b0110000 | |||||
#define DRIVER_ADDR_2 0b0110001 | |||||
#define DRIVER_COUNT 1 | |||||
#define DRIVER_1_LED_TOTAL 117 | |||||
#define DRIVER_LED_TOTAL DRIVER_1_LED_TOTAL | |||||
#define ISSI_DRIVER_TOTAL DRIVER_LED_TOTAL | |||||
#define RGB_MATRIX_STARTUP_VAL 80 | |||||
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS | |||||
#define RGB_MATRIX_KEYPRESSES | |||||
#define RGB_DISABLE_WHEN_USB_SUSPENDED true // turn off effects when suspended | |||||
#define RGB_MATRIX_STARTUP_MODE RGB_MATRIX_CYCLE_ALL | |||||
#define FORCE_NKRO |
@ -0,0 +1,27 @@ | |||||
/* Copyright 2020 QMK | |||||
* | |||||
* 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/xelus/kangaroo/halconf.h -r platforms/chibios/common/configs/halconf.h` | |||||
*/ | |||||
#pragma once | |||||
#define HAL_USE_I2C TRUE | |||||
#include_next <halconf.h> | |||||
@ -0,0 +1,19 @@ | |||||
/* Copyright 2021 Harrison Chan (Xelus) | |||||
* | |||||
* 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 USB_POLLING_INTERVAL_MS 1 | |||||
#define QMK_KEYS_PER_SCAN 4 |
@ -0,0 +1,35 @@ | |||||
/* Copyright 2021 Harrison Chan (Xelus) | |||||
* | |||||
* 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_ansi_tsangan( | |||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, | |||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, | |||||
KC_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, | |||||
MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, | |||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, | |||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), | |||||
[1] = LAYOUT_ansi_tsangan( | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET , RGB_TOG, RGB_HUI, RGB_SAI, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_HUD, RGB_SAD, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_RMOD,RGB_VAD, RGB_MOD) | |||||
}; |
@ -0,0 +1,2 @@ | |||||
# The Default Pachi RGB Layout | |||||
@ -0,0 +1,24 @@ | |||||
/* Copyright 2021 Harrison Chan (Xelus) | |||||
* | |||||
* 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 | |||||
// 3 layers or else it will not fit in EEPROM | |||||
#define DYNAMIC_KEYMAP_LAYER_COUNT 3 | |||||
#define USB_POLLING_INTERVAL_MS 1 | |||||
#define QMK_KEYS_PER_SCAN 4 | |||||
@ -0,0 +1,43 @@ | |||||
/* Copyright 2021 Harrison Chan (Xelus) | |||||
* | |||||
* 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_ansi_tsangan( | |||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, | |||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, | |||||
KC_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, | |||||
MO(1), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, | |||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, | |||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), | |||||
[1] = LAYOUT_ansi_tsangan( | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET , KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), | |||||
[2] = LAYOUT_ansi_tsangan( | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) | |||||
}; |
@ -0,0 +1,2 @@ | |||||
# The VIA Pachi RGB Layout | |||||
@ -0,0 +1 @@ | |||||
VIA_ENABLE = yes |
@ -0,0 +1,28 @@ | |||||
/* Copyright 2020 QMK | |||||
* | |||||
* 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/xelus/kangaroo/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h` | |||||
*/ | |||||
#pragma once | |||||
#include_next <mcuconf.h> | |||||
#undef STM32_I2C_USE_I2C1 | |||||
#define STM32_I2C_USE_I2C1 TRUE | |||||
@ -0,0 +1,19 @@ | |||||
# Pachi | |||||
Pachi RGB TKL Keyboard that is a per-key RGB, hotswap, ANSI and tsangan. | |||||
* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22) | |||||
* Hardware Supported: Group buys | |||||
Make example for this keyboard (after setting up your build environment): | |||||
make xelus/pachi/rgb:default | |||||
Reset your keyboard in 3 ways: | |||||
<ol> | |||||
<li>Software reset on Fn + Backspace</li> | |||||
<li>Bootmagic reset: hold down the top left key (usually escape) and plugin the keyboard</li> | |||||
<li>Physical reset button: on the back of the PCB, there should be a small golden button you can press</li> | |||||
</ol> | |||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). |
@ -0,0 +1,239 @@ | |||||
/* Copyright 2021 Harrison Chan (Xelus) | |||||
* | |||||
* 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 "rgb.h" | |||||
#include <hal.h> | |||||
#include <ch.h> | |||||
// tested and working | |||||
void matrix_io_delay(void) { __asm__ volatile("nop\nnop\nnop\n"); } | |||||
#ifdef RGB_MATRIX_ENABLE | |||||
#include <i2c_master.h> | |||||
#include "drivers/issi/is31fl3741.h" | |||||
const is31_led g_is31_leds[DRIVER_LED_TOTAL] = { | |||||
/* Refer to IS31 manual for these locations | |||||
* driver | |||||
* | R location | |||||
* | | G location | |||||
* | | | B location | |||||
* | | | | */ | |||||
{0, CS39_SW1, CS38_SW1, CS37_SW1}, //A1 | |||||
{0, CS36_SW1, CS35_SW1, CS34_SW1}, //A2 | |||||
{0, CS33_SW1, CS32_SW1, CS31_SW1}, //A3 | |||||
{0, CS30_SW1, CS29_SW1, CS28_SW1}, //A4 | |||||
{0, CS27_SW1, CS26_SW1, CS25_SW1}, //A5 | |||||
{0, CS24_SW1, CS23_SW1, CS22_SW1}, //A6 | |||||
{0, CS21_SW1, CS20_SW1, CS19_SW1}, //A7 | |||||
{0, CS18_SW1, CS17_SW1, CS16_SW1}, //A8 | |||||
{0, CS15_SW1, CS14_SW1, CS13_SW1}, //A9 | |||||
{0, CS12_SW1, CS11_SW1, CS10_SW1}, //A10 | |||||
{0, CS9_SW1 , CS8_SW1 , CS7_SW1 }, //A11 | |||||
{0, CS6_SW1 , CS5_SW1 , CS4_SW1 }, //A12 | |||||
{0, CS3_SW1 , CS2_SW1 , CS1_SW1 }, //A13 | |||||
{0, CS39_SW2, CS38_SW2, CS37_SW2}, //B1 | |||||
{0, CS36_SW2, CS35_SW2, CS34_SW2}, //B2 | |||||
{0, CS33_SW2, CS32_SW2, CS31_SW2}, //B3 | |||||
{0, CS30_SW2, CS29_SW2, CS28_SW2}, //B4 | |||||
{0, CS27_SW2, CS26_SW2, CS25_SW2}, //B5 | |||||
{0, CS24_SW2, CS23_SW2, CS22_SW2}, //B6 | |||||
{0, CS21_SW2, CS20_SW2, CS19_SW2}, //B7 | |||||
{0, CS18_SW2, CS17_SW2, CS16_SW2}, //B8 | |||||
{0, CS15_SW2, CS14_SW2, CS13_SW2}, //B9 | |||||
{0, CS12_SW2, CS11_SW2, CS10_SW2}, //B10 | |||||
{0, CS9_SW2 , CS8_SW2 , CS7_SW2 }, //B11 | |||||
{0, CS6_SW2 , CS5_SW2 , CS4_SW2 }, //B12 | |||||
{0, CS3_SW2 , CS2_SW2 , CS1_SW2 }, //B13 | |||||
{0, CS39_SW3, CS38_SW3, CS37_SW3}, //C1 | |||||
{0, CS36_SW3, CS35_SW3, CS34_SW3}, //C2 | |||||
{0, CS33_SW3, CS32_SW3, CS31_SW3}, //C3 | |||||
{0, CS30_SW3, CS29_SW3, CS28_SW3}, //C4 | |||||
{0, CS27_SW3, CS26_SW3, CS25_SW3}, //C5 | |||||
{0, CS24_SW3, CS23_SW3, CS22_SW3}, //C6 | |||||
{0, CS21_SW3, CS20_SW3, CS19_SW3}, //C7 | |||||
{0, CS18_SW3, CS17_SW3, CS16_SW3}, //C8 | |||||
{0, CS15_SW3, CS14_SW3, CS13_SW3}, //C9 | |||||
{0, CS12_SW3, CS11_SW3, CS10_SW3}, //C10 | |||||
{0, CS9_SW3 , CS8_SW3 , CS7_SW3 }, //C11 | |||||
{0, CS6_SW3 , CS5_SW3 , CS4_SW3 }, //C12 | |||||
{0, CS3_SW3 , CS2_SW3 , CS1_SW3 }, //C13 | |||||
{0, CS39_SW4, CS38_SW4, CS37_SW4}, //D1 | |||||
{0, CS36_SW4, CS35_SW4, CS34_SW4}, //D2 | |||||
{0, CS33_SW4, CS32_SW4, CS31_SW4}, //D3 | |||||
{0, CS30_SW4, CS29_SW4, CS28_SW4}, //D4 | |||||
{0, CS27_SW4, CS26_SW4, CS25_SW4}, //D5 | |||||
{0, CS24_SW4, CS23_SW4, CS22_SW4}, //D6 | |||||
{0, CS21_SW4, CS20_SW4, CS19_SW4}, //D7 | |||||
{0, CS18_SW4, CS17_SW4, CS16_SW4}, //D8 | |||||
{0, CS15_SW4, CS14_SW4, CS13_SW4}, //D9 | |||||
{0, CS12_SW4, CS11_SW4, CS10_SW4}, //D10 | |||||
{0, CS9_SW4 , CS8_SW4 , CS7_SW4 }, //D11 | |||||
{0, CS6_SW4 , CS5_SW4 , CS4_SW4 }, //D12 | |||||
{0, CS3_SW4 , CS2_SW4 , CS1_SW4 }, //D13 | |||||
{0, CS39_SW5, CS38_SW5, CS37_SW5}, //E1 | |||||
{0, CS36_SW5, CS35_SW5, CS34_SW5}, //E2 | |||||
{0, CS33_SW5, CS32_SW5, CS31_SW5}, //E3 | |||||
{0, CS30_SW5, CS29_SW5, CS28_SW5}, //E4 | |||||
{0, CS27_SW5, CS26_SW5, CS25_SW5}, //E5 | |||||
{0, CS24_SW5, CS23_SW5, CS22_SW5}, //E6 | |||||
{0, CS21_SW5, CS20_SW5, CS19_SW5}, //E7 | |||||
{0, CS18_SW5, CS17_SW5, CS16_SW5}, //E8 | |||||
{0, CS15_SW5, CS14_SW5, CS13_SW5}, //E9 | |||||
{0, CS12_SW5, CS11_SW5, CS10_SW5}, //E10 | |||||
{0, CS9_SW5 , CS8_SW5 , CS7_SW5 }, //E11 | |||||
{0, CS6_SW5 , CS5_SW5 , CS4_SW5 }, //E12 | |||||
{0, CS3_SW5 , CS2_SW5 , CS1_SW5 }, //E13 | |||||
{0, CS39_SW6, CS38_SW6, CS37_SW6}, //F1 | |||||
{0, CS36_SW6, CS35_SW6, CS34_SW6}, //F2 | |||||
{0, CS33_SW6, CS32_SW6, CS31_SW6}, //F3 | |||||
{0, CS30_SW6, CS29_SW6, CS28_SW6}, //F4 | |||||
{0, CS27_SW6, CS26_SW6, CS25_SW6}, //F5 | |||||
{0, CS24_SW6, CS23_SW6, CS22_SW6}, //F6 | |||||
{0, CS21_SW6, CS20_SW6, CS19_SW6}, //F7 | |||||
{0, CS18_SW6, CS17_SW6, CS16_SW6}, //F8 | |||||
{0, CS15_SW6, CS14_SW6, CS13_SW6}, //F9 | |||||
{0, CS12_SW6, CS11_SW6, CS10_SW6}, //F10 | |||||
{0, CS9_SW6 , CS8_SW6 , CS7_SW6 }, //F11 | |||||
{0, CS6_SW6 , CS5_SW6 , CS4_SW6 }, //F12 | |||||
{0, CS3_SW6 , CS2_SW6 , CS1_SW6 }, //F13 | |||||
{0, CS39_SW7, CS38_SW7, CS37_SW7}, //G1 | |||||
{0, CS36_SW7, CS35_SW7, CS34_SW7}, //G2 | |||||
{0, CS33_SW7, CS32_SW7, CS31_SW7}, //G3 | |||||
{0, CS30_SW7, CS29_SW7, CS28_SW7}, //G4 | |||||
{0, CS27_SW7, CS26_SW7, CS25_SW7}, //G5 | |||||
{0, CS24_SW7, CS23_SW7, CS22_SW7}, //G6 | |||||
{0, CS21_SW7, CS20_SW7, CS19_SW7}, //G7 | |||||
{0, CS18_SW7, CS17_SW7, CS16_SW7}, //G8 | |||||
{0, CS15_SW7, CS14_SW7, CS13_SW7}, //G9 | |||||
{0, CS12_SW7, CS11_SW7, CS10_SW7}, //G10 | |||||
{0, CS9_SW7 , CS8_SW7 , CS7_SW7 }, //G11 | |||||
{0, CS6_SW7 , CS5_SW7 , CS4_SW7 }, //G12 | |||||
{0, CS3_SW7 , CS2_SW7 , CS1_SW7 }, //G13 | |||||
{0, CS39_SW8, CS38_SW8, CS37_SW8}, //H1 | |||||
{0, CS36_SW8, CS35_SW8, CS34_SW8}, //H2 | |||||
{0, CS33_SW8, CS32_SW8, CS31_SW8}, //H3 | |||||
{0, CS30_SW8, CS29_SW8, CS28_SW8}, //H4 | |||||
{0, CS27_SW8, CS26_SW8, CS25_SW8}, //H5 | |||||
{0, CS24_SW8, CS23_SW8, CS22_SW8}, //H6 | |||||
{0, CS21_SW8, CS20_SW8, CS19_SW8}, //H7 | |||||
{0, CS18_SW8, CS17_SW8, CS16_SW8}, //H8 | |||||
{0, CS15_SW8, CS14_SW8, CS13_SW8}, //H9 | |||||
{0, CS12_SW8, CS11_SW8, CS10_SW8}, //H10 | |||||
{0, CS9_SW8 , CS8_SW8 , CS7_SW8 }, //H11 | |||||
{0, CS6_SW8 , CS5_SW8 , CS4_SW8 }, //H12 | |||||
{0, CS3_SW8 , CS2_SW8 , CS1_SW8 }, //H13 | |||||
{0, CS39_SW9, CS38_SW9, CS37_SW9}, //I1 | |||||
{0, CS36_SW9, CS35_SW9, CS34_SW9}, //I2 | |||||
{0, CS33_SW9, CS32_SW9, CS31_SW9}, //I3 | |||||
{0, CS30_SW9, CS29_SW9, CS28_SW9}, //I4 | |||||
{0, CS27_SW9, CS26_SW9, CS25_SW9}, //I5 | |||||
{0, CS24_SW9, CS23_SW9, CS22_SW9}, //I6 | |||||
{0, CS21_SW9, CS20_SW9, CS19_SW9}, //I7 | |||||
{0, CS18_SW9, CS17_SW9, CS16_SW9}, //I8 | |||||
{0, CS15_SW9, CS14_SW9, CS13_SW9}, //I9 | |||||
{0, CS12_SW9, CS11_SW9, CS10_SW9}, //I10 | |||||
{0, CS9_SW9 , CS8_SW9 , CS7_SW9 }, //I11 | |||||
{0, CS6_SW9 , CS5_SW9 , CS4_SW9 }, //I12 | |||||
{0, CS3_SW9 , CS2_SW9 , CS1_SW9 } //I13 | |||||
}; | |||||
__attribute__ ((weak)) | |||||
led_config_t g_led_config = { { | |||||
{ -1+00+3 , NO_LED, -1+26+3 , -1+39+3 , -1+52+3 , -1+65+3 , -1+78+3 , -1+91+3 , -1+104+3 , -1+00+1 , -1+13+1 , -1+26+1 , -1+39+1 , -1+52+1 , -1+65+1 , -1+78+1 , -1+91+1 }, | |||||
{ -1+00+4 , -1+13+4 , -1+26+4 , -1+39+4 , -1+52+4 , -1+65+4 , -1+78+4 , -1+91+4 , -1+104+4 , -1+00+2 , -1+13+2 , -1+26+2 , -1+39+2 , -1+52+2 , -1+65+2 , -1+78+2 , -1+91+2 }, | |||||
{ -1+00+6 , -1+13+6 , -1+26+6 , -1+39+6 , -1+52+6 , -1+65+6 , -1+78+6 , -1+91+6 , -1+104+6 , -1+00+5 , -1+13+5 , -1+26+5 , -1+39+5 , -1+52+5 , -1+65+5 , -1+78+5 , -1+91+6 }, | |||||
{ -1+00+8 , -1+13+8 , -1+26+8 , -1+39+8 , -1+52+8 , -1+65+8 , -1+78+8 , -1+91+8 , -1+104+8 , -1+00+7 , -1+13+7 , -1+26+7 , NO_LED , -1+52+7 , NO_LED , NO_LED , NO_LED }, | |||||
{ -1+00+11, -1+13+11, -1+26+11, -1+39+11, -1+52+11, -1+65+11, -1+78+11, -1+91+11, -1+104+11, -1+00+10, -1+13+10, NO_LED , NO_LED , -1+52+10, NO_LED , -1+78+10, NO_LED }, | |||||
{ -1+00+9 , -1+13+9 , -1+26+9 , NO_LED , NO_LED , -1+65+9 , NO_LED , NO_LED , NO_LED , NO_LED , -1+13+12, NO_LED , -1+39+12, -1+52+12, -1+65+12, -1+78+12, -1+91+12} | |||||
}, { | |||||
{123, 0}, {117, 15}, {0 , 0}, {0 , 15}, {123, 27}, {3 , 27}, {127, 40}, {5 , 40}, {2 , 64}, {133, 52}, {8 , 52}, {131, 64}, {255,255}, | |||||
{143, 0}, {130, 15}, {255,255}, {13 , 15}, {136, 27}, {19 , 27}, {140, 40}, {23 , 40}, {18 , 64}, {146, 52}, {29 , 52}, {148, 64}, {255,255}, | |||||
{156, 0}, {143, 15}, {26 , 0}, {26 , 15}, {149, 27}, {32 , 27}, {153, 40}, {36 , 40}, {34 , 64}, {255,255}, {42 , 52}, {255,255}, {255,255}, | |||||
{169, 0}, {156, 15}, {39 , 0}, {39 , 15}, {162, 27}, {45 , 27}, {255,255}, {49 , 40}, {255,255}, {255,255}, {55 , 52}, {164, 64}, {255,255}, | |||||
{182, 0}, {175, 15}, {52 , 0}, {52 , 15}, {179, 27}, {58 , 27}, {174, 40}, {62 , 40}, {255,255}, {170, 52}, {68 , 52}, {180, 64}, {255,255}, | |||||
{198, 0}, {198, 15}, {65 , 0}, {65 , 15}, {198, 27}, {71 , 27}, {255,255}, {75 , 40}, {83 , 64}, {255,255}, {81 , 52}, {198, 64}, {255,255}, | |||||
{211, 0}, {211, 15}, {84 , 0}, {78 , 15}, {211, 27}, {84 , 27}, {255,255}, {88 , 40}, {255,255}, {211, 52}, {94 , 52}, {211, 64}, {255,255}, | |||||
{224, 0}, {224, 15}, {97 , 0}, {91 , 15}, {224, 27}, {97 , 27}, {255,255}, {101, 40}, {255,255}, {255,255}, {107, 52}, {224, 64}, {255,255}, | |||||
{255,255}, {255,255}, {110, 0}, {104, 15}, {255,255}, {110, 27}, {255,255}, {114, 40}, {255,255}, {255,255}, {120, 52}, {255,255}, {255,255} | |||||
}, { | |||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, | |||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, | |||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, | |||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, | |||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, | |||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, | |||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, | |||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, | |||||
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 | |||||
} }; | |||||
static void init(void) { | |||||
i2c_init(); | |||||
IS31FL3741_init(DRIVER_ADDR_1); | |||||
for (int index = 0; index < ISSI_DRIVER_TOTAL; index++) { | |||||
bool enabled = !( ( index == -1+0+13) || //A13 | |||||
( index == -1+13+3) || //B3 | |||||
( index == -1+13+13) || //B13 | |||||
( index == -1+26+10) || //C10 | |||||
( index == -1+26+12) || //C12 | |||||
( index == -1+26+13) || //C13 | |||||
( index == -1+39+7) || //D7 | |||||
( index == -1+39+9) || //D9 | |||||
( index == -1+39+10) || //D10 | |||||
( index == -1+39+13) || //D13 | |||||
( index == -1+52+9) || //E9 | |||||
( index == -1+52+13) || //E13 | |||||
( index == -1+65+7) || //F7 | |||||
( index == -1+65+10) || //F10 | |||||
( index == -1+65+13) || //F13 | |||||
( index == -1+78+7) || //G7 | |||||
( index == -1+78+9) || //G9 | |||||
( index == -1+78+13) || //G13 | |||||
( index == -1+91+7) || //H7 | |||||
( index == -1+91+9) || //H9 | |||||
( index == -1+91+10) || //H10 | |||||
( index == -1+91+13) || //H13 | |||||
( index == -1+104+1) || //I1 | |||||
( index == -1+104+2) || //I2 | |||||
( index == -1+104+5) || //I5 | |||||
( index == -1+104+7) || //I7 | |||||
( index == -1+104+9) || //I9 | |||||
( index == -1+104+10) || //I10 | |||||
( index == -1+104+12) || //I12 | |||||
( index == -1+104+13) //I13 | |||||
); | |||||
IS31FL3741_set_led_control_register(index, enabled, enabled, enabled); | |||||
} | |||||
IS31FL3741_update_led_control_registers(DRIVER_ADDR_1, 0); | |||||
} | |||||
static void flush(void) { IS31FL3741_update_pwm_buffers(DRIVER_ADDR_1, DRIVER_ADDR_2); } | |||||
const rgb_matrix_driver_t rgb_matrix_driver = { | |||||
.init = init, | |||||
.flush = flush, | |||||
.set_color = IS31FL3741_set_color, | |||||
.set_color_all = IS31FL3741_set_color_all | |||||
}; | |||||
#endif |
@ -0,0 +1,36 @@ | |||||
/* Copyright 2021 Harrison Chan (Xelus) | |||||
* | |||||
* 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_ansi_tsangan( \ | |||||
K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, \ | |||||
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \ | |||||
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \ | |||||
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \ | |||||
K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K412, K415, \ | |||||
K500, K501, K502, K505, K510, K512, K513, K514, K515, K516 \ | |||||
) { \ | |||||
{ K000, ____, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016 }, \ | |||||
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \ | |||||
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216 }, \ | |||||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, ____, K313, ____, ____, ____ }, \ | |||||
{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, ____, K412, ____, ____, K415, ____ }, \ | |||||
{ K500, K501, K502, ____, ____, K505, ____, ____, ____, ____, K510, ____, K512, K513, K514, K515, K516 } \ | |||||
} |
@ -0,0 +1,32 @@ | |||||
# MCU name | |||||
MCU = STM32L433 | |||||
# Build Options | |||||
# change yes to no to disable | |||||
# | |||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration | |||||
MOUSEKEY_ENABLE = yes # Mouse keys | |||||
EXTRAKEY_ENABLE = yes # Audio control and System control | |||||
CONSOLE_ENABLE = yes # Console for debug | |||||
COMMAND_ENABLE = no # Commands for debug and configuration | |||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE | |||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend | |||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work | |||||
NKRO_ENABLE = yes # USB Nkey Rollover | |||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default | |||||
MIDI_ENABLE = no # MIDI support | |||||
UNICODE_ENABLE = no # Unicode | |||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | |||||
AUDIO_ENABLE = no # Audio output on port C6 | |||||
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches | |||||
EEPROM_DRIVER = i2c | |||||
RGB_MATRIX_ENABLE = yes | |||||
RGB_MATRIX_DRIVER = custom | |||||
COMMON_VPATH += $(DRIVER_PATH)/issi | |||||
SRC += drivers/issi/is31fl3741.c | |||||
LTO_ENABLE = yes | |||||
OPT = 2 |
@ -1,3 +1,19 @@ | |||||
/* Copyright 2021 Harrison Chan (Xelus) | |||||
* | |||||
* 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 "trinityxttkl.h" | #include "trinityxttkl.h" | ||||
// Tested and verified working on Trinity XT TKL | // Tested and verified working on Trinity XT TKL | ||||
@ -0,0 +1,21 @@ | |||||
/* Copyright 2021 Mats Nilsson | |||||
* | |||||
* 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 MK_3_SPEED | |||||
#define MK_MOMENTARY_ACCEL | |||||
#define PERMISSIVE_HOLD |
@ -0,0 +1,146 @@ | |||||
/* Copyright 2021 Mats Nilsson | |||||
* | |||||
* 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 "mnil.h" | |||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | |||||
switch (keycode) { | |||||
case M_TILD: // ~ | |||||
if (record->event.pressed) { | |||||
tap_code16(RALT(KC_RBRC)); | |||||
tap_code(KC_SPC); | |||||
} else { | |||||
} | |||||
break; | |||||
case M_CIRC: // ^ | |||||
if (record->event.pressed) { | |||||
tap_code16(S(KC_RBRC)); | |||||
tap_code(KC_SPC); | |||||
} else { | |||||
} | |||||
break; | |||||
case M_BTCK: // ` | |||||
if (record->event.pressed) { | |||||
tap_code16(S(KC_EQL)); | |||||
tap_code(KC_SPC); | |||||
} else { | |||||
} | |||||
break; | |||||
case QWE_COL: // Swap default keymap layer | |||||
if (record->event.pressed) { | |||||
if (get_highest_layer(default_layer_state) == _COLEMAK) { | |||||
default_layer_set(1UL << _QWERTY); | |||||
} else { | |||||
default_layer_set(1UL << _COLEMAK); | |||||
} | |||||
} | |||||
break; | |||||
} | |||||
return true; | |||||
}; | |||||
// Tap Dance | |||||
// Determine the current tap dance state | |||||
int cur_dance(qk_tap_dance_state_t *state) { | |||||
if (state->count == 1) { | |||||
if (state->interrupted || !state->pressed) | |||||
return SINGLE_TAP; | |||||
else | |||||
return SINGLE_HOLD; | |||||
} else if (state->count == 2) { | |||||
if (state->interrupted) | |||||
return DOUBLE_SINGLE_TAP; | |||||
else if (state->pressed) | |||||
return DOUBLE_HOLD; | |||||
else | |||||
return DOUBLE_SINGLE_TAP; | |||||
} | |||||
if (state->count == 3) { | |||||
if (state->interrupted || !state->pressed) | |||||
return TRIPLE_TAP; | |||||
else | |||||
return TRIPLE_HOLD; | |||||
} else | |||||
return 8; | |||||
} | |||||
static tap ae_tap_state = {.is_press_action = true, .state = 0}; | |||||
void ae_finished(qk_tap_dance_state_t *state, void *user_data) { | |||||
ae_tap_state.state = cur_dance(state); | |||||
switch (ae_tap_state.state) { | |||||
case SINGLE_TAP: | |||||
register_code(KC_A); | |||||
break; | |||||
case SINGLE_HOLD: | |||||
tap_code(SE_AE); | |||||
break; | |||||
case DOUBLE_SINGLE_TAP: | |||||
tap_code(KC_A); | |||||
register_code(KC_A); | |||||
break; | |||||
} | |||||
} | |||||
void ae_reset(qk_tap_dance_state_t *state, void *user_data) { | |||||
switch (ae_tap_state.state) { | |||||
case SINGLE_TAP: | |||||
unregister_code(KC_A); | |||||
break; | |||||
case DOUBLE_SINGLE_TAP: | |||||
unregister_code(KC_A); | |||||
break; | |||||
} | |||||
ae_tap_state.state = 0; | |||||
} | |||||
static tap aa_tap_state = {.is_press_action = true, .state = 0}; | |||||
void aa_finished(qk_tap_dance_state_t *state, void *user_data) { | |||||
aa_tap_state.state = cur_dance(state); | |||||
switch (aa_tap_state.state) { | |||||
case SINGLE_TAP: | |||||
register_code(SE_OSLH); | |||||
break; | |||||
case SINGLE_HOLD: | |||||
register_code(SE_AA); | |||||
unregister_code(SE_AA); | |||||
break; | |||||
case DOUBLE_SINGLE_TAP: | |||||
tap_code(SE_OSLH); | |||||
register_code(SE_OSLH); | |||||
break; | |||||
} | |||||
} | |||||
void aa_reset(qk_tap_dance_state_t *state, void *user_data) { | |||||
switch (aa_tap_state.state) { | |||||
case SINGLE_TAP: | |||||
unregister_code(SE_OSLH); | |||||
break; | |||||
case DOUBLE_SINGLE_TAP: | |||||
unregister_code(SE_OSLH); | |||||
break; | |||||
} | |||||
aa_tap_state.state = 0; | |||||
} | |||||
// clang-format off | |||||
qk_tap_dance_action_t tap_dance_actions[] = { | |||||
[AAE] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, ae_finished, ae_reset, 250), | |||||
[OAA] = ACTION_TAP_DANCE_FN_ADVANCED_TIME(NULL, aa_finished, aa_reset, 250) | |||||
}; | |||||
// clang-format on |
@ -0,0 +1,85 @@ | |||||
/* Copyright 2021 Mats Nilsson | |||||
* | |||||
* 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 QMK_KEYBOARD_H | |||||
#include "keymap_swedish.h" | |||||
// Layers | |||||
enum layers { | |||||
_COLEMAK, | |||||
_QWERTY, | |||||
_SYMBOLS, | |||||
_NAVIGATION, | |||||
_NUMPAD, | |||||
}; | |||||
// Custom Keycodes | |||||
#define _NAV_SPC LT(_NAVIGATION, KC_SPC) // _NAVIGATION when held, SPACE when tapped | |||||
#define _SYM_ENT LT(_SYMBOLS, KC_ENT) // _SYMBOLS when held, ENTER when tapped | |||||
#define CTL_BSPC MT(MOD_LCTL, KC_BSPC) // CTRL when held, BACKSPACE when tapped | |||||
#define ALT_DEL MT(MOD_LALT, KC_DEL) // ALT when held, DELETE when tapped | |||||
#define SFT_TAB MT(MOD_LSFT, KC_TAB) // SHIFT when held, TAB when tapped | |||||
#define C_TAB C(KC_TAB) // CTRL+TAB | |||||
#define CS_TAB C(S(KC_TAB)) // SHIFT+CTRL+TAB | |||||
#define CUT C(KC_X) // CTRL+X | |||||
#define COPY C(KC_INS) // CTRL+INSERT | |||||
#define PASTE S(KC_INS) // SHIFT+INSERT | |||||
#define AUTOFILL C(S(KC_L)) // Bitwarden Autofill, CTRL+SHIFT+L | |||||
// i3 config | |||||
#define I3MOD KC_LGUI // $mod | |||||
#define OPEN G(KC_SPC) // $mod+SPACE | |||||
#define QUIT G(S(KC_Q)) // $mod+SHIFT+Q | |||||
#define WIN G(C(KC_SPC)) // $mod+CTRL+SPACE | |||||
#define BROWSER G(KC_ENTER) // $mod+ENTER | |||||
#define TERM G(S(KC_ENTER)) // $mod+CTRL+ENTER | |||||
#define NXTWS G(KC_TAB) // $mod+TAB | |||||
#define PRVWS G(S(KC_TAB)) // $mod+SHIFT+TAB | |||||
#define MOVWS G(KC_LSFT) // $mod+SHIFT+$X | |||||
#define CRYWS G(KC_LALT) // $mod+ALT+$X | |||||
#define MVWSL G(C(S(KC_LEFT))) // $mod+CTRL+SHIFT+LEFT | |||||
#define MVWSR G(C(S(KC_RGHT))) // $mod+CTRL+SHIFT+RIGHT | |||||
enum custom_keycodes { | |||||
M_TILD = SAFE_RANGE, // ~ | |||||
M_CIRC, // ^ | |||||
M_BTCK, // ` | |||||
QWE_COL, // Swaps default layer | |||||
}; | |||||
// Tap Dance | |||||
typedef struct { | |||||
bool is_press_action; | |||||
int state; | |||||
} tap; | |||||
// Define a type for as many tap dance states as you need | |||||
enum { | |||||
SINGLE_TAP = 1, | |||||
SINGLE_HOLD = 2, | |||||
DOUBLE_TAP = 3, | |||||
DOUBLE_HOLD = 4, | |||||
DOUBLE_SINGLE_TAP = 5, // send two single taps | |||||
TRIPLE_TAP = 6, | |||||
TRIPLE_HOLD = 7 | |||||
}; | |||||
enum { | |||||
AAE = 0, // a and ae | |||||
OAA, // o and aa | |||||
}; |