mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-08-24 05:28:53 +00:00
Compare commits
14 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
55d37d9fbc | ||
![]() |
27b0f8923e | ||
![]() |
3da8d46a07 | ||
![]() |
4db31fb374 | ||
![]() |
3956b7c685 | ||
![]() |
de5c8d86b4 | ||
![]() |
7e68faa336 | ||
![]() |
588b2329cb | ||
![]() |
6fa88d981c | ||
![]() |
12a07dae33 | ||
![]() |
3235c8527d | ||
![]() |
22ba36a4d8 | ||
![]() |
50bc2dbe77 | ||
![]() |
61ce41ae13 |
@@ -334,9 +334,9 @@ SRC += $(KEYBOARD_SRC) \
|
||||
|
||||
# Search Path
|
||||
VPATH += $(KEYMAP_PATH)
|
||||
VPATH += $(USER_PATH)
|
||||
VPATH += $(KEYBOARD_PATHS)
|
||||
VPATH += $(COMMON_VPATH)
|
||||
VPATH += $(USER_PATH)
|
||||
|
||||
include common_features.mk
|
||||
include $(TMK_PATH)/protocol.mk
|
||||
|
@@ -105,6 +105,7 @@ endif
|
||||
ifeq ($(strip $(RGBLIGHT_ENABLE)), yes)
|
||||
POST_CONFIG_H += $(QUANTUM_DIR)/rgblight_post_config.h
|
||||
OPT_DEFS += -DRGBLIGHT_ENABLE
|
||||
SRC += $(QUANTUM_DIR)/color.c
|
||||
SRC += $(QUANTUM_DIR)/rgblight.c
|
||||
CIE1931_CURVE = yes
|
||||
LED_BREATHING_TABLE = yes
|
||||
|
@@ -114,7 +114,7 @@ The following options can be used to tweak the various animations:
|
||||
|`RGBLIGHT_EFFECT_RGB_TEST` |*Not defined*|If defined, enable RGB test animation mode. |
|
||||
|`RGBLIGHT_EFFECT_ALTERNATING` |*Not defined*|If defined, enable alternating animation mode. |
|
||||
|`RGBLIGHT_ANIMATIONS` |*Not defined*|If defined, enables all additional animation modes |
|
||||
|`RGBLIGHT_EFFECT_BREATHE_CENTER` |`1.85` |Used to calculate the curve for the breathing animation. Valid values are 1.0 to 2.7 |
|
||||
|`RGBLIGHT_EFFECT_BREATHE_CENTER` |*Not defined*|If defined, used to calculate the curve for the breathing animation. Valid values are 1.0 to 2.7 |
|
||||
|`RGBLIGHT_EFFECT_BREATHE_MAX` |`255` |The maximum brightness for the breathing mode. Valid values are 1 to 255 |
|
||||
|`RGBLIGHT_EFFECT_SNAKE_LENGTH` |`4` |The number of LEDs to light up for the "Snake" animation |
|
||||
|`RGBLIGHT_EFFECT_KNIGHT_LENGTH` |`3` |The number of LEDs to light up for the "Knight" animation |
|
||||
@@ -145,7 +145,7 @@ const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 50, 20};
|
||||
const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {127, 63, 31};
|
||||
|
||||
// These control which hues are selected for each of the "Static gradient" modes
|
||||
const uint16_t RGBLED_GRADIENT_RANGES[] PROGMEM = {360, 240, 180, 120, 90};
|
||||
const uint8_t RGBLED_GRADIENT_RANGES[] PROGMEM = {255, 170, 127, 85, 64};
|
||||
```
|
||||
|
||||
## Functions
|
||||
|
@@ -158,7 +158,7 @@ void inline ws2812_setled(int i, uint8_t r, uint8_t g, uint8_t b)
|
||||
|
||||
void ws2812_setled_all (uint8_t r, uint8_t g, uint8_t b)
|
||||
{
|
||||
for (int i = 0; i < RGBLED_NUM; i++) {
|
||||
for (int i = 0; i < sizeof(led)/sizeof(led[0]); i++) {
|
||||
led[i].r = r;
|
||||
led[i].g = g;
|
||||
led[i].b = b;
|
||||
|
9
keyboards/dz60/keymaps/macos_64/config.h
Normal file
9
keyboards/dz60/keymaps/macos_64/config.h
Normal file
@@ -0,0 +1,9 @@
|
||||
#ifndef CONFIG_KEYMAP_H
|
||||
#define CONFIG_KEYMAP_H
|
||||
|
||||
#include "../../config.h"
|
||||
|
||||
// Fix KC_GESC conflict with Cmd+Alt+Esc on macos
|
||||
#define GRAVE_ESC_GUI_OVERRIDE
|
||||
|
||||
#endif
|
42
keyboards/dz60/keymaps/macos_64/keymap.c
Normal file
42
keyboards/dz60/keymaps/macos_64/keymap.c
Normal file
@@ -0,0 +1,42 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* ,-----------------------------------------------------------------------------------------.
|
||||
* | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Shift | Z | X | C | V | B | N | M | , | . | / |Shift| Up |Delete|
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | Ctrl | Alt | Cmd | Space | Fn | Alt | Left| Down|Right|
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
LAYOUT_all(
|
||||
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_NO, KC_BSPC,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_NO, 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_DELETE,
|
||||
KC_LCTL, KC_LALT, KC_LGUI, KC_NO, KC_SPC, KC_NO, MO(1), KC_RALT, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||
|
||||
/* ,-----------------------------------------------------------------------------------------.
|
||||
* | ` ~ | BR- | BR+ | | | | |PREV |PLAY |NEXT |MUTE | V- | V+ | Delete |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | Up | | | | | 0 | 1 | 2 | 3 | | RESET |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | Left| Down|Right| | | | | 4 | 5 | 6 | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | | | 7 | 8 | 9 | | |
|
||||
* |-----------------------------------------------------------------------------------------+
|
||||
* | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
LAYOUT_all(
|
||||
KC_GRV , KC_SCROLLLOCK, KC_PAUSE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_MEDIA_PLAY_PAUSE, KC_MEDIA_NEXT_TRACK, KC_AUDIO_MUTE, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, KC_NO, KC_DEL,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_0, KC_1, KC_2, KC_3, KC_TRNS, RESET,
|
||||
KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_4, KC_5, KC_6, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_7, KC_8, KC_9, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||
};
|
45
keyboards/dz60/keymaps/macos_64/readme.md
Normal file
45
keyboards/dz60/keymaps/macos_64/readme.md
Normal file
@@ -0,0 +1,45 @@
|
||||
# MacOS 64 keymap
|
||||
|
||||
This is a keymap of DZ60 configured with 64 keys for MacOS. It refers the keymap of [macos_arrow](../macos_arrow/readme.md).
|
||||
|
||||
## How to use
|
||||
|
||||
1. Follow the [introduction](https://docs.qmk.fm/#/) to compile the keymap
|
||||
2. Download QMK Toolbox from [here](https://github.com/qmk/qmk_toolbox/releases)
|
||||
3. Insert the dz60 keyboard while pressing ```Space+b``` (default)
|
||||
4. Flash the firmware
|
||||
|
||||
More details about flashing firmware please check the [documentation](https://docs.qmk.fm/#/) of QMK.
|
||||
|
||||
## Base Layer
|
||||
|
||||
```
|
||||
,-----------------------------------------------------------------------------------------.
|
||||
| Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| Tab | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| Caps | A | S | D | F | G | H | J | K | L | ; | ' | Enter |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| Shift | Z | X | C | V | B | N | M | , | . | / |Shift| Up |Delete|
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| Ctrl | Alt | Cmd | Space | Fn | Alt | Left| Down|Right|
|
||||
`-----------------------------------------------------------------------------------------'
|
||||
```
|
||||
|
||||
## Fn Layer
|
||||
|
||||
```
|
||||
,-----------------------------------------------------------------------------------------.
|
||||
| ` ~ | BR- | BR+ | | | | |PREV |PLAY |NEXT |MUTE | V- | V+ | Delete |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| | | | Up | | | | | 0 | 1 | 2 | 3 | | RESET |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| | | Left| Down|Right| | | | | 4 | 5 | 6 | |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| | | | | | | | | | 7 | 8 | 9 | | |
|
||||
|-----------------------------------------------------------------------------------------+
|
||||
| | | | | | | | | |
|
||||
`-----------------------------------------------------------------------------------------'
|
||||
|
||||
```
|
2
keyboards/dz60/keymaps/macos_64/rules.mk
Normal file
2
keyboards/dz60/keymaps/macos_64/rules.mk
Normal file
@@ -0,0 +1,2 @@
|
||||
BACKLIGHT_ENABLE = no
|
||||
RGBLIGHT_ENABLE = no
|
@@ -1,47 +0,0 @@
|
||||
/* Copyright 2018 Josh Hinnebusch
|
||||
*
|
||||
* 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/>.
|
||||
*/
|
||||
#ifndef H87A_H
|
||||
#define H87A_H
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
// This a shortcut to help you visually see your layout.
|
||||
// The following is an example using the Planck MIT layout
|
||||
// The first section contains all of the arguments
|
||||
// The second converts the arguments into a two-dimensional array
|
||||
#define LAYOUT_all(\
|
||||
K000, K001, K011, K002, K012, K003, K013, K004, K014, K015, K006, K016, K007, K017, K008, K018, \
|
||||
K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, K028, K038, \
|
||||
K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, K057, K048, K058, \
|
||||
K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K066, K076, \
|
||||
K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K096, K088, \
|
||||
K100, K110, K101, K113, K105, K115, K106, K116, K117, K108, K118 \
|
||||
) { \
|
||||
{ K000, K001, K002, K003, K004, KC_NO, K006, K007, K008 }, \
|
||||
{ KC_NO, K011, K012, K013, K014, K015, K016, K017, K018 }, \
|
||||
{ K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \
|
||||
{ K030, K031, K032, K033, K034, K035, K036, K037, K038 }, \
|
||||
{ K040, K041, K042, K043, K044, K045, K046, KC_NO, K048 }, \
|
||||
{ K050, K051, K052, K053, K054, K055, K056, K057, K058 }, \
|
||||
{ K060, K061, K062, K063, K064, K065, K066, KC_NO, KC_NO }, \
|
||||
{ K070, K071, K072, K073, K074, K075, K076, KC_NO, KC_NO }, \
|
||||
{ K080, K081, K082, K083, K084, K085, K086, KC_NO, K088 }, \
|
||||
{ K090, K091, K092, K093, K094, K095, K096, KC_NO, KC_NO }, \
|
||||
{ K100, K101, KC_NO, KC_NO, KC_NO, K105, K106, KC_NO, K108 }, \
|
||||
{ K110, KC_NO, KC_NO, K113, KC_NO, K115, K116, K117, K118 } \
|
||||
}
|
||||
|
||||
#endif
|
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"keyboard_name": "h87a",
|
||||
"url": "",
|
||||
"maintainer": "hineybush",
|
||||
"width": 18.25,
|
||||
"height": 6.5,
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"x":13, "y":1.5}, {"x":14, "y":1.5}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"x":12.75, "y":3.5}, {"label":"Enter", "x":13.75, "y":3.5, "w":1.25}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"x":14, "y":4.5}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}]
|
||||
}
|
||||
}
|
||||
}
|
@@ -72,4 +72,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#define RGBLIGHT_SLEEP // RGB will turn off when PC is put to sleep
|
||||
#endif
|
90
keyboards/hineybush/h87a/h87a.h
Normal file
90
keyboards/hineybush/h87a/h87a.h
Normal file
@@ -0,0 +1,90 @@
|
||||
/* Copyright 2018 Josh Hinnebusch
|
||||
*
|
||||
* 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 a shortcut to help you visually see your layout.
|
||||
// The following is an example using the Planck MIT layout
|
||||
// The first section contains all of the arguments
|
||||
// The second converts the arguments into a two-dimensional array
|
||||
#define LAYOUT_all(\
|
||||
K000, K001, K011, K002, K012, K003, K013, K004, K014, K015, K006, K016, K007, K017, K008, K018, \
|
||||
K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K036, K027, K037, K028, K038, \
|
||||
K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, K057, K048, K058, \
|
||||
K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K066, K076, \
|
||||
K080, K090, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K096, K088, \
|
||||
K100, K110, K101, K113, K105, K115, K106, K116, K117, K108, K118 \
|
||||
) { \
|
||||
{ K000, K001, K002, K003, K004, KC_NO, K006, K007, K008 }, \
|
||||
{ KC_NO, K011, K012, K013, K014, K015, K016, K017, K018 }, \
|
||||
{ K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \
|
||||
{ K030, K031, K032, K033, K034, K035, K036, K037, K038 }, \
|
||||
{ K040, K041, K042, K043, K044, K045, K046, KC_NO, K048 }, \
|
||||
{ K050, K051, K052, K053, K054, K055, K056, K057, K058 }, \
|
||||
{ K060, K061, K062, K063, K064, K065, K066, KC_NO, KC_NO }, \
|
||||
{ K070, K071, K072, K073, K074, K075, K076, KC_NO, KC_NO }, \
|
||||
{ K080, K081, K082, K083, K084, K085, K086, KC_NO, K088 }, \
|
||||
{ K090, K091, K092, K093, K094, K095, K096, KC_NO, KC_NO }, \
|
||||
{ K100, K101, KC_NO, KC_NO, KC_NO, K105, K106, KC_NO, K108 }, \
|
||||
{ K110, KC_NO, KC_NO, K113, KC_NO, K115, K116, K117, K118 } \
|
||||
}
|
||||
|
||||
|
||||
#define LAYOUT_tkl_ansi(\
|
||||
K000, K001, K011, K002, K012, K003, K013, K004, K014, K015, K006, K016, K007, K017, K008, K018, \
|
||||
K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K027, K037, K028, K038, \
|
||||
K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, K057, K048, K058, \
|
||||
K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K076, \
|
||||
K080, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K088, \
|
||||
K100, K110, K101, K113, K105, K115, K106, K116, K117, K108, K118 \
|
||||
) { \
|
||||
{ K000, K001, K002, K003, K004, KC_NO, K006, K007, K008 }, \
|
||||
{ KC_NO, K011, K012, K013, K014, K015, K016, K017, K018 }, \
|
||||
{ K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \
|
||||
{ K030, K031, K032, K033, K034, K035, KC_NO, K037, K038 }, \
|
||||
{ K040, K041, K042, K043, K044, K045, K046, KC_NO, K048 }, \
|
||||
{ K050, K051, K052, K053, K054, K055, K056, K057, K058 }, \
|
||||
{ K060, K061, K062, K063, K064, K065, KC_NO, KC_NO, KC_NO }, \
|
||||
{ K070, K071, K072, K073, K074, K075, K076, KC_NO, KC_NO }, \
|
||||
{ K080, K081, K082, K083, K084, K085, K086, KC_NO, K088 }, \
|
||||
{KC_NO, K091, K092, K093, K094, K095, KC_NO, KC_NO, KC_NO }, \
|
||||
{ K100, K101, KC_NO, KC_NO, KC_NO, K105, K106, KC_NO, K108 }, \
|
||||
{ K110, KC_NO, KC_NO, K113, KC_NO, K115, K116, K117, K118 } \
|
||||
}
|
||||
|
||||
#define LAYOUT_tkl_ansi_wkl(\
|
||||
K000, K001, K011, K002, K012, K003, K013, K004, K014, K015, K006, K016, K007, K017, K008, K018, \
|
||||
K020, K030, K021, K031, K022, K032, K023, K033, K024, K034, K025, K035, K026, K027, K037, K028, K038, \
|
||||
K040, K050, K041, K051, K042, K052, K043, K053, K044, K054, K045, K055, K046, K056, K057, K048, K058, \
|
||||
K060, K070, K061, K071, K062, K072, K063, K073, K064, K074, K065, K075, K076, \
|
||||
K080, K081, K091, K082, K092, K083, K093, K084, K094, K085, K095, K086, K088, \
|
||||
K100, K101, K113, K115, K116, K117, K108, K118 \
|
||||
) { \
|
||||
{ K000, K001, K002, K003, K004, KC_NO, K006, K007, K008 }, \
|
||||
{ KC_NO, K011, K012, K013, K014, K015, K016, K017, K018 }, \
|
||||
{ K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \
|
||||
{ K030, K031, K032, K033, K034, K035, KC_NO, K037, K038 }, \
|
||||
{ K040, K041, K042, K043, K044, K045, K046, KC_NO, K048 }, \
|
||||
{ K050, K051, K052, K053, K054, K055, K056, K057, K058 }, \
|
||||
{ K060, K061, K062, K063, K064, K065, KC_NO, KC_NO, KC_NO }, \
|
||||
{ K070, K071, K072, K073, K074, K075, K076, KC_NO, KC_NO }, \
|
||||
{ K080, K081, K082, K083, K084, K085, K086, KC_NO, K088 }, \
|
||||
{KC_NO, K091, K092, K093, K094, K095, KC_NO, KC_NO, KC_NO }, \
|
||||
{ K100, K101, KC_NO, KC_NO, KC_NO,KC_NO, KC_NO, KC_NO, K108 }, \
|
||||
{KC_NO, KC_NO, KC_NO, K113, KC_NO, K115, K116, K117, K118 } \
|
||||
}
|
||||
|
20
keyboards/hineybush/h87a/info.json
Normal file
20
keyboards/hineybush/h87a/info.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"keyboard_name": "h87a",
|
||||
"url": "",
|
||||
"maintainer": "hineybush",
|
||||
"width": 18.25,
|
||||
"height": 6.5,
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"x":13, "y":1.5}, {"label":"Bksp", "x":14, "y":1.5}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"x":12.75, "y":3.5}, {"label":"Enter", "x":13.75, "y":3.5, "w":1.25}, {"label":"Shift", "x":0, "y":4.5, "w":1.25}, {"x":1.25, "y":4.5}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":1.75}, {"x":14, "y":4.5}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}]
|
||||
},
|
||||
|
||||
"LAYOUT_tkl_ansi": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Bksp", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.25}, {"label":"Win", "x":1.25, "y":5.5, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"label":"Alt", "x":10, "y":5.5, "w":1.25}, {"label":"Win", "x":11.25, "y":5.5, "w":1.25}, {"label":"Menu", "x":12.5, "y":5.5, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}]
|
||||
},
|
||||
"LAYOUT_tkl_ansi_wkl": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.5}, {"label":"!", "x":1, "y":1.5}, {"label":"@", "x":2, "y":1.5}, {"label":"#", "x":3, "y":1.5}, {"label":"$", "x":4, "y":1.5}, {"label":"%", "x":5, "y":1.5}, {"label":"^", "x":6, "y":1.5}, {"label":"&", "x":7, "y":1.5}, {"label":"*", "x":8, "y":1.5}, {"label":"(", "x":9, "y":1.5}, {"label":")", "x":10, "y":1.5}, {"label":"_", "x":11, "y":1.5}, {"label":"+", "x":12, "y":1.5}, {"label":"Bksp", "x":13, "y":1.5, "w":2}, {"label":"Insert", "x":15.25, "y":1.5}, {"label":"Home", "x":16.25, "y":1.5}, {"label":"PgUp", "x":17.25, "y":1.5}, {"label":"Tab", "x":0, "y":2.5, "w":1.5}, {"label":"Q", "x":1.5, "y":2.5}, {"label":"W", "x":2.5, "y":2.5}, {"label":"E", "x":3.5, "y":2.5}, {"label":"R", "x":4.5, "y":2.5}, {"label":"T", "x":5.5, "y":2.5}, {"label":"Y", "x":6.5, "y":2.5}, {"label":"U", "x":7.5, "y":2.5}, {"label":"I", "x":8.5, "y":2.5}, {"label":"O", "x":9.5, "y":2.5}, {"label":"P", "x":10.5, "y":2.5}, {"label":"{", "x":11.5, "y":2.5}, {"label":"}", "x":12.5, "y":2.5}, {"label":"|", "x":13.5, "y":2.5, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.5}, {"label":"End", "x":16.25, "y":2.5}, {"label":"PgDn", "x":17.25, "y":2.5}, {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75}, {"label":"A", "x":1.75, "y":3.5}, {"label":"S", "x":2.75, "y":3.5}, {"label":"D", "x":3.75, "y":3.5}, {"label":"F", "x":4.75, "y":3.5}, {"label":"G", "x":5.75, "y":3.5}, {"label":"H", "x":6.75, "y":3.5}, {"label":"J", "x":7.75, "y":3.5}, {"label":"K", "x":8.75, "y":3.5}, {"label":"L", "x":9.75, "y":3.5}, {"label":":", "x":10.75, "y":3.5}, {"label":"\"", "x":11.75, "y":3.5}, {"label":"Enter", "x":12.75, "y":3.5, "w":2.25}, {"label":"Shift", "x":0, "y":4.5, "w":2.25}, {"label":"Z", "x":2.25, "y":4.5}, {"label":"X", "x":3.25, "y":4.5}, {"label":"C", "x":4.25, "y":4.5}, {"label":"V", "x":5.25, "y":4.5}, {"label":"B", "x":6.25, "y":4.5}, {"label":"N", "x":7.25, "y":4.5}, {"label":"M", "x":8.25, "y":4.5}, {"label":"<", "x":9.25, "y":4.5}, {"label":">", "x":10.25, "y":4.5}, {"label":"?", "x":11.25, "y":4.5}, {"label":"Shift", "x":12.25, "y":4.5, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.5}, {"label":"Ctrl", "x":0, "y":5.5, "w":1.5}, {"label":"Alt", "x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"label":"Alt", "x":11, "y":5.5, "w":1.5}, {"label":"Ctrl", "x":13.5, "y":5.5, "w":1.5}, {"label":"\u2190", "x":15.25, "y":5.5}, {"label":"\u2193", "x":16.25, "y":5.5}, {"label":"\u2192", "x":17.25, "y":5.5}]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
21
keyboards/hineybush/h87a/keymaps/default/config.h
Normal file
21
keyboards/hineybush/h87a/keymaps/default/config.h
Normal file
@@ -0,0 +1,21 @@
|
||||
/* Copyright 2018 Josh Hinnebusch
|
||||
*
|
||||
* 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
|
||||
|
||||
|
||||
// place overrides here
|
||||
|
@@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
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_NUHS, 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_LSFT, KC_TRNS, KC_UP,
|
||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_TRNS, KC_UP,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[1] = LAYOUT_all(
|
1
keyboards/hineybush/h87a/keymaps/default/readme.md
Normal file
1
keyboards/hineybush/h87a/keymaps/default/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default keymap for h87a
|
21
keyboards/hineybush/h87a/keymaps/wkl/config.h
Normal file
21
keyboards/hineybush/h87a/keymaps/wkl/config.h
Normal file
@@ -0,0 +1,21 @@
|
||||
/* Copyright 2018 Josh Hinnebusch
|
||||
*
|
||||
* 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
|
||||
|
||||
|
||||
// place overrides here
|
||||
|
73
keyboards/hineybush/h87a/keymaps/wkl/keymap.c
Normal file
73
keyboards/hineybush/h87a/keymaps/wkl/keymap.c
Normal file
@@ -0,0 +1,73 @@
|
||||
/* Copyright 2018 Josh Hinnebusch
|
||||
|
||||
* 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_tkl_ansi_wkl(
|
||||
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,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP,
|
||||
KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||
|
||||
[1] = LAYOUT_tkl_ansi_wkl(
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI, BL_TOGG, BL_DEC, BL_INC,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPLY, KC_MNXT, KC_VOLD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ),
|
||||
|
||||
};
|
||||
|
||||
void matrix_init_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void led_init_ports(void) {
|
||||
setPinOutput(D5);
|
||||
setPinOutput(E6);
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
|
||||
setPinOutput(D5);
|
||||
writePinLow(D5);
|
||||
} else {
|
||||
setPinInput(D5);
|
||||
writePinLow(D5);
|
||||
}
|
||||
|
||||
if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
|
||||
setPinOutput(E6);
|
||||
writePinLow(E6);
|
||||
} else {
|
||||
setPinInput(E6);
|
||||
writePinLow(E6);
|
||||
}
|
||||
|
||||
}
|
1
keyboards/hineybush/h87a/keymaps/wkl/readme.md
Normal file
1
keyboards/hineybush/h87a/keymaps/wkl/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default keymap for h87a
|
@@ -3,16 +3,16 @@ h87a
|
||||
|
||||
A QMK-powered replacement PCB for custom TKL keyboards. This PCB has the same size of the b.87 PCB, while using the USB port placement and spacebar stabilizer orientation as the a.87 PCB.
|
||||
|
||||
Keyboard Maintainer: hineybush (Josh Hinnebusch)
|
||||
|
||||
Hardware Supported: h87a Rev 1
|
||||
|
||||
Hardware Availability: Currently prototyped, group buy TBD
|
||||
Keyboard Maintainer: [hineybush](https://github.com/hineybush)
|
||||
Hardware Supported: h87a ver. 1.5, ver. 1.6 (normal and thin), h87alps
|
||||
Hardware Availability: hineybush.com
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make h87a:default
|
||||
make hineybush/h87a: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).
|
||||
|
||||
## h87a hardware information
|
||||
|
||||
Controller: Atmega32u4
|
||||
@@ -35,8 +35,11 @@ The H87a PCB utilizes duplex matrix organization.
|
||||
Backlight Pin: B7
|
||||
RGB Data Pin: D3
|
||||
|
||||
|
||||
|
||||
For ver 1.5 in-switch indicators:
|
||||
To connect the Caps Lock LED to the main backlight matrix, jump the middle pad and the left pad on J1. To use the Caps Lock LED as an indicator, jump the middle pad and the right pad on J1.
|
||||
|
||||
To connect the Scroll Lock LED to the main backlight matrix, jump the middle pad and the right pad on J2. To use the Scroll Lock LED as an indicator, jump the middle pad and the left pad on J2.
|
||||
|
||||
Note: The different orientations of J1 and J2 will be fixed with Rev 2.
|
||||
Note: The different orientations of J1 and J2 was fixed with ver. 1.6.
|
47
keyboards/hineybush/hineyg80/config.h
Normal file
47
keyboards/hineybush/hineyg80/config.h
Normal file
@@ -0,0 +1,47 @@
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x6060
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER hineybush
|
||||
#define PRODUCT hineyG80
|
||||
#define DESCRIPTION QMK-powered PCB for Cherry G80/81-1800 Boards
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 12
|
||||
#define MATRIX_COLS 9
|
||||
|
||||
/* key matrix pins */
|
||||
#define MATRIX_ROW_PINS { B2, B3, D0, B1, D2, D1, D5, D3, D6, D4, B4, D7 }
|
||||
#define MATRIX_COL_PINS { C7, F7, F6, F5, F4, F1, F0, B7, B0 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW or ROW2COL */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
/* number of backlight levels */
|
||||
|
||||
#ifdef BACKLIGHT_PIN
|
||||
#define BACKLIGHT_LEVELS 3
|
||||
#endif
|
||||
|
||||
/* Set 0 if debouncing isn't needed */
|
||||
#define DEBOUNCING_DELAY 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
|
||||
|
||||
#ifdef RGB_DI_PIN
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 0
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
#endif
|
||||
|
63
keyboards/hineybush/hineyg80/hineyg80.c
Normal file
63
keyboards/hineybush/hineyg80/hineyg80.c
Normal file
@@ -0,0 +1,63 @@
|
||||
/* Copyright 2019 Josh Hinnebusch
|
||||
*
|
||||
* 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 "hineyg80.h"
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
// put your keyboard start-up code here
|
||||
// runs once when the firmware starts up
|
||||
|
||||
matrix_init_user();
|
||||
}
|
||||
|
||||
void matrix_scan_kb(void) {
|
||||
// put your looping keyboard code here
|
||||
// runs every cycle (a lot)
|
||||
|
||||
matrix_scan_user();
|
||||
}
|
||||
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||
// put your per-action keyboard code here
|
||||
// runs for every action, just before processing by the firmware
|
||||
|
||||
return process_record_user(keycode, record);
|
||||
}
|
||||
|
||||
void led_set_kb(uint8_t usb_led) {
|
||||
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
|
||||
if (IS_LED_ON(usb_led, USB_LED_NUM_LOCK)) {
|
||||
// Turn numlock on
|
||||
writePinHigh(C6);
|
||||
} else {
|
||||
// Turn numlock off
|
||||
writePinLow(C6);
|
||||
}
|
||||
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
|
||||
// Turn capslock on
|
||||
writePinHigh(B6);
|
||||
} else {
|
||||
// Turn capslock off
|
||||
writePinLow(B6);
|
||||
}
|
||||
if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
|
||||
// Turn scrolllock on
|
||||
writePinHigh(B5);
|
||||
} else {
|
||||
// Turn scrolllock off
|
||||
writePinLow(B5);
|
||||
}
|
||||
led_set_user(usb_led);
|
||||
}
|
89
keyboards/hineybush/hineyg80/hineyg80.h
Normal file
89
keyboards/hineybush/hineyg80/hineyg80.h
Normal file
@@ -0,0 +1,89 @@
|
||||
/* Copyright 2019 Josh Hinnebusch
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "quantum.h"
|
||||
|
||||
#define LAYOUT_all( \
|
||||
K000,K010,K001,K011,K002,K012,K003,K013,K004,K014,K005,K015,K006, K007,K017,K008,K018, \
|
||||
K027,K016,K028,K038, \
|
||||
K020,K030,K021,K031,K022,K032,K023,K033,K024,K034,K025,K035,K026,K036,K037,K047,K057,K048,K058, \
|
||||
K040,K050,K041,K051,K042,K052,K043,K053,K044,K054,K045,K055,K046,K056, K067,K077,K068,K078, \
|
||||
K060,K070,K061,K071,K062,K072,K063,K073,K064,K074,K065,K075,K066,K076, K087,K097,K088,K098, \
|
||||
K080,K090,K081,K091,K082,K092,K083,K093,K084,K094,K085,K095,K086,K096, K106,K116,K108,K118, \
|
||||
K100,K110,K101, K102, K112,K103,K113,K104,K114, K105,K115,K117,K107 \
|
||||
) { \
|
||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008 }, \
|
||||
{ K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \
|
||||
{ K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \
|
||||
{ K030, K031, K032, K033, K034, K035, K036, K037, K038 }, \
|
||||
{ K040, K041, K042, K043, K044, K045, K046, K047, K048 }, \
|
||||
{ K050, K051, K052, K053, K054, K055, K056, K057, K058 }, \
|
||||
{ K060, K061, K062, K063, K064, K065, K066, K067, K068 }, \
|
||||
{ K070, K071, K072, K073, K074, K075, K076, K077, K078 }, \
|
||||
{ K080, K081, K082, K083, K084, K085, K086, K087, K088 }, \
|
||||
{ K090, K091, K092, K093, K094, K095, K096, K097, K098 }, \
|
||||
{ K100, K101, K102, K103, K104, K105, K106, K107, K108 }, \
|
||||
{ K110, KC_NO, K112, K113, K114, K115, K116, K117, K118 } \
|
||||
}
|
||||
|
||||
/* 6U spacebar, 1U mods */
|
||||
#define LAYOUT_ansi_100u_mods( \
|
||||
K000,K010,K001,K011,K002,K012,K003,K013,K004,K014,K005,K015,K006, K007,K017,K008,K018, \
|
||||
K027,K016,K028,K038, \
|
||||
K020,K030,K021,K031,K022,K032,K023,K033,K024,K034,K025,K035,K026,K036,K047,K057,K048,K058, \
|
||||
K040,K050,K041,K051,K042,K052,K043,K053,K044,K054,K045,K055,K046,K056,K067,K077,K068,K078, \
|
||||
K060,K070,K061,K071,K062,K072,K063,K073,K064,K074,K065,K075, K076,K087,K097,K088,K098, \
|
||||
K080 ,K081,K091,K082,K092,K083,K093,K084,K094,K085,K095,K086,K096,K106,K116,K108,K118, \
|
||||
K100,K110,K101, K102, K112,K103,K113,K104,K114,K105,K115,K117,K107 \
|
||||
) { \
|
||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008 }, \
|
||||
{ K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \
|
||||
{ K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \
|
||||
{ K030, K031, K032, K033, K034, K035, K036, KC_NO, K038 }, \
|
||||
{ K040, K041, K042, K043, K044, K045, K046, K047, K048 }, \
|
||||
{ K050, K051, K052, K053, K054, K055, K056, K057, K058 }, \
|
||||
{ K060, K061, K062, K063, K064, K065, KC_NO, K067, K068 }, \
|
||||
{ K070, K071, K072, K073, K074, K075, K076, K077, K078 }, \
|
||||
{ K080, K081, K082, K083, K084, K085, K086, K087, K088 }, \
|
||||
{KC_NO, K091, K092, K093, K094, K095, K096, K097, K098 }, \
|
||||
{ K100, K101, K102, K103, K104, K105, K106, K107, K108 }, \
|
||||
{ K110, KC_NO, K112, K113, K114, K115, K116, K117, K118 } \
|
||||
}
|
||||
|
||||
/* 7U spacebar, 1.5U mods */
|
||||
#define LAYOUT_ansi_150u_mods( \
|
||||
K000,K010,K001,K011,K002,K012,K003,K013,K004,K014,K005,K015,K006, K007,K017,K008,K018, \
|
||||
K027,K016,K028,K038, \
|
||||
K020,K030,K021,K031,K022,K032,K023,K033,K024,K034,K025,K035,K026,K036,K047,K057,K048,K058, \
|
||||
K040,K050,K041,K051,K042,K052,K043,K053,K044,K054,K045,K055,K046,K056,K067,K077,K068,K078, \
|
||||
K060,K070,K061,K071,K062,K072,K063,K073,K064,K074,K065,K075 ,K076,K087,K097,K088,K098, \
|
||||
K080 ,K081,K091,K082,K092,K083,K093,K084,K094,K085,K095,K086,K096,K106,K116,K108,K118, \
|
||||
K100, K101, K102, K103, K104,K114,K105,K115,K117,K107 \
|
||||
) { \
|
||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008 }, \
|
||||
{ K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \
|
||||
{ K020, K021, K022, K023, K024, K025, K026, K027, K028 }, \
|
||||
{ K030, K031, K032, K033, K034, K035, K036, KC_NO, K038 }, \
|
||||
{ K040, K041, K042, K043, K044, K045, K046, K047, K048 }, \
|
||||
{ K050, K051, K052, K053, K054, K055, K056, K057, K058 }, \
|
||||
{ K060, K061, K062, K063, K064, K065, KC_NO, K067, K068 }, \
|
||||
{ K070, K071, K072, K073, K074, K075, K076, K077, K078 }, \
|
||||
{ K080, K081, K082, K083, K084, K085, K086, K087, K088 }, \
|
||||
{KC_NO, K091, K092, K093, K094, K095, K096, K097, K098 }, \
|
||||
{ K100, K101, K102, K103, K104, K105, K106, K107, K108 }, \
|
||||
{ KC_NO, KC_NO, KC_NO, KC_NO, K114, K115, K116, K117, K118 } \
|
||||
}
|
19
keyboards/hineybush/hineyg80/info.json
Normal file
19
keyboards/hineybush/hineyg80/info.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"keyboard_name": "hineyg80",
|
||||
"url": "",
|
||||
"maintainer": "hineybush",
|
||||
"width": 19.5,
|
||||
"height": 7.25,
|
||||
"layouts": {
|
||||
"LAYOUT_all": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Pause", "x":15.5, "y":0}, {"label":"Insert", "x":16.5, "y":0}, {"label":"Home", "x":17.5, "y":0}, {"label":"PgUp", "x":18.5, "y":0}, {"label":"Scroll Lock", "x":15.5, "y":1}, {"label":"Delete", "x":16.5, "y":1}, {"label":"End", "x":17.5, "y":1}, {"label":"PgDn", "x":18.5, "y":1}, {"label":"~", "x":0, "y":2}, {"label":"!", "x":1, "y":2}, {"label":"@", "x":2, "y":2}, {"label":"#", "x":3, "y":2}, {"label":"$", "x":4, "y":2}, {"label":"%", "x":5, "y":2}, {"label":"^", "x":6, "y":2}, {"label":"&", "x":7, "y":2}, {"label":"*", "x":8, "y":2}, {"label":"(", "x":9, "y":2}, {"label":")", "x":10, "y":2}, {"label":"_", "x":11, "y":2}, {"label":"+", "x":12, "y":2}, {"label":"Bksp", "x":13, "y":2}, {"x":14, "y":2}, {"label":"Num Lock", "x":15.5, "y":2}, {"label":"/", "x":16.5, "y":2}, {"label":"*", "x":17.5, "y":2}, {"label":"-", "x":18.5, "y":2}, {"label":"Tab", "x":0, "y":3, "w":1.5}, {"label":"Q", "x":1.5, "y":3}, {"label":"W", "x":2.5, "y":3}, {"label":"E", "x":3.5, "y":3}, {"label":"R", "x":4.5, "y":3}, {"label":"T", "x":5.5, "y":3}, {"label":"Y", "x":6.5, "y":3}, {"label":"U", "x":7.5, "y":3}, {"label":"I", "x":8.5, "y":3}, {"label":"O", "x":9.5, "y":3}, {"label":"P", "x":10.5, "y":3}, {"label":"{", "x":11.5, "y":3}, {"label":"}", "x":12.5, "y":3}, {"label":"|", "x":13.5, "y":3, "w":1.5}, {"label":"7", "x":15.5, "y":3}, {"label":"8", "x":16.5, "y":3}, {"label":"9", "x":17.5, "y":3}, {"label":"+", "x":18.5, "y":3}, {"label":"Caps Lock", "x":0, "y":4, "w":1.75}, {"label":"A", "x":1.75, "y":4}, {"label":"S", "x":2.75, "y":4}, {"label":"D", "x":3.75, "y":4}, {"label":"F", "x":4.75, "y":4}, {"label":"G", "x":5.75, "y":4}, {"label":"H", "x":6.75, "y":4}, {"label":"J", "x":7.75, "y":4}, {"label":"K", "x":8.75, "y":4}, {"label":"L", "x":9.75, "y":4}, {"label":":", "x":10.75, "y":4}, {"label":"\"", "x":11.75, "y":4}, {"x":12.75, "y":4}, {"label":"Enter", "x":13.75, "y":4, "w":1.25}, {"label":"4", "x":15.5, "y":4}, {"label":"5", "x":16.5, "y":4}, {"label":"6", "x":17.5, "y":4}, {"x":18.5, "y":4}, {"label":"Shift", "x":0, "y":5, "w":1.25}, {"x":1.25, "y":5}, {"label":"Z", "x":2.25, "y":5}, {"label":"X", "x":3.25, "y":5}, {"label":"C", "x":4.25, "y":5}, {"label":"V", "x":5.25, "y":5}, {"label":"B", "x":6.25, "y":5}, {"label":"N", "x":7.25, "y":5}, {"label":"M", "x":8.25, "y":5}, {"label":"<", "x":9.25, "y":5}, {"label":">", "x":10.25, "y":5}, {"label":"?", "x":11.25, "y":5}, {"label":"Shift", "x":12.25, "y":5, "w":1.75}, {"label":"\u2191", "x":14.25, "y":5.25}, {"label":"1", "x":15.5, "y":5}, {"label":"2", "x":16.5, "y":5}, {"label":"3", "x":17.5, "y":5}, {"label":"Enter", "x":18.5, "y":5, "h":2}, {"label":"Ctrl", "x":0, "y":6}, {"label":"Win", "x":1, "y":6}, {"label":"Alt", "x":2, "y":6}, {"x":3, "y":6, "w":6}, {"label":"Alt", "x":9, "y":6}, {"label":"Win", "x":10, "y":6}, {"label":"Menu", "x":11, "y":6}, {"label":"Ctrl", "x":12, "y":6}, {"label":"\u2190", "x":13.25, "y":6.25}, {"label":"\u2193", "x":14.25, "y":6.25}, {"label":"\u2192", "x":15.25, "y":6.25}, {"label":"0", "x":16.5, "y":6}, {"label":".", "x":17.5, "y":6}]
|
||||
},
|
||||
"LAYOUT_ansi_100u_mods": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Insert", "x":15.5, "y":0}, {"label":"Home", "x":16.5, "y":0}, {"label":"PgUp", "x":17.5, "y":0}, {"label":"Prt Sc", "x":18.5, "y":0}, {"label":"Delete", "x":15.5, "y":1}, {"label":"End", "x":16.5, "y":1}, {"label":"PgDn", "x":17.5, "y":1}, {"label":"Scroll", "x":18.5, "y":1}, {"label":"~", "x":0, "y":2}, {"label":"!", "x":1, "y":2}, {"label":"@", "x":2, "y":2}, {"label":"#", "x":3, "y":2}, {"label":"$", "x":4, "y":2}, {"label":"%", "x":5, "y":2}, {"label":"^", "x":6, "y":2}, {"label":"&", "x":7, "y":2}, {"label":"*", "x":8, "y":2}, {"label":"(", "x":9, "y":2}, {"label":")", "x":10, "y":2}, {"label":"_", "x":11, "y":2}, {"label":"+", "x":12, "y":2}, {"label":"Backspace", "x":13, "y":2, "w":2}, {"label":"Num Lock", "x":15.5, "y":2}, {"label":"/", "x":16.5, "y":2}, {"label":"*", "x":17.5, "y":2}, {"label":"Pause", "x":18.5, "y":2}, {"label":"Tab", "x":0, "y":3, "w":1.5}, {"label":"Q", "x":1.5, "y":3}, {"label":"W", "x":2.5, "y":3}, {"label":"E", "x":3.5, "y":3}, {"label":"R", "x":4.5, "y":3}, {"label":"T", "x":5.5, "y":3}, {"label":"Y", "x":6.5, "y":3}, {"label":"U", "x":7.5, "y":3}, {"label":"I", "x":8.5, "y":3}, {"label":"O", "x":9.5, "y":3}, {"label":"P", "x":10.5, "y":3}, {"label":"{", "x":11.5, "y":3}, {"label":"}", "x":12.5, "y":3}, {"label":"|", "x":13.5, "y":3, "w":1.5}, {"label":"7", "x":15.5, "y":3}, {"label":"8", "x":16.5, "y":3}, {"label":"9", "x":17.5, "y":3}, {"label":"-", "x":18.5, "y":3}, {"label":"Caps Lock", "x":0, "y":4, "w":1.75}, {"label":"A", "x":1.75, "y":4}, {"label":"S", "x":2.75, "y":4}, {"label":"D", "x":3.75, "y":4}, {"label":"F", "x":4.75, "y":4}, {"label":"G", "x":5.75, "y":4}, {"label":"H", "x":6.75, "y":4}, {"label":"J", "x":7.75, "y":4}, {"label":"K", "x":8.75, "y":4}, {"label":"L", "x":9.75, "y":4}, {"label":":", "x":10.75, "y":4}, {"label":"\"", "x":11.75, "y":4}, {"label":"Enter", "x":12.75, "y":4, "w":2.25}, {"label":"4", "x":15.5, "y":4}, {"label":"5", "x":16.5, "y":4}, {"label":"6", "x":17.5, "y":4}, {"label":"+", "x":18.5, "y":4}, {"label":"Shift", "x":0, "y":5, "w":2.25}, {"label":"Z", "x":2.25, "y":5}, {"label":"X", "x":3.25, "y":5}, {"label":"C", "x":4.25, "y":5}, {"label":"V", "x":5.25, "y":5}, {"label":"B", "x":6.25, "y":5}, {"label":"N", "x":7.25, "y":5}, {"label":"M", "x":8.25, "y":5}, {"label":"<", "x":9.25, "y":5}, {"label":">", "x":10.25, "y":5}, {"label":"?", "x":11.25, "y":5}, {"label":"Shift", "x":12.25, "y":5, "w":1.75}, {"label":"\u2191", "x":14.25, "y":5.25}, {"label":"1", "x":15.5, "y":5}, {"label":"2", "x":16.5, "y":5}, {"label":"3", "x":17.5, "y":5}, {"label":"Enter", "x":18.5, "y":5, "h":2}, {"label":"Ctrl", "x":0, "y":6}, {"label":"Win", "x":1, "y":6}, {"label":"Alt", "x":2, "y":6}, {"x":3, "y":6, "w":6}, {"label":"Alt", "x":9, "y":6}, {"label":"Win", "x":10, "y":6}, {"label":"Menu", "x":11, "y":6}, {"label":"Ctrl", "x":12, "y":6}, {"label":"\u2190", "x":13.25, "y":6.25}, {"label":"\u2193", "x":14.25, "y":6.25}, {"label":"\u2192", "x":15.25, "y":6.25}, {"label":"0", "x":16.5, "y":6}, {"label":".", "x":17.5, "y":6}]
|
||||
},
|
||||
"LAYOUT_ansi_150u_mods": {
|
||||
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":1.25, "y":0}, {"label":"F2", "x":2.25, "y":0}, {"label":"F3", "x":3.25, "y":0}, {"label":"F4", "x":4.25, "y":0}, {"label":"F5", "x":5.5, "y":0}, {"label":"F6", "x":6.5, "y":0}, {"label":"F7", "x":7.5, "y":0}, {"label":"F8", "x":8.5, "y":0}, {"label":"F9", "x":9.75, "y":0}, {"label":"F10", "x":10.75, "y":0}, {"label":"F11", "x":11.75, "y":0}, {"label":"F12", "x":12.75, "y":0}, {"label":"Insert", "x":15.5, "y":0}, {"label":"Home", "x":16.5, "y":0}, {"label":"PgUp", "x":17.5, "y":0}, {"label":"Prt Sc", "x":18.5, "y":0}, {"label":"Delete", "x":15.5, "y":1}, {"label":"End", "x":16.5, "y":1}, {"label":"PgDn", "x":17.5, "y":1}, {"label":"Scroll", "x":18.5, "y":1}, {"label":"~", "x":0, "y":2}, {"label":"!", "x":1, "y":2}, {"label":"@", "x":2, "y":2}, {"label":"#", "x":3, "y":2}, {"label":"$", "x":4, "y":2}, {"label":"%", "x":5, "y":2}, {"label":"^", "x":6, "y":2}, {"label":"&", "x":7, "y":2}, {"label":"*", "x":8, "y":2}, {"label":"(", "x":9, "y":2}, {"label":")", "x":10, "y":2}, {"label":"_", "x":11, "y":2}, {"label":"+", "x":12, "y":2}, {"label":"Backspace", "x":13, "y":2, "w":2}, {"label":"Num Lock", "x":15.5, "y":2}, {"label":"/", "x":16.5, "y":2}, {"label":"*", "x":17.5, "y":2}, {"label":"Pause", "x":18.5, "y":2}, {"label":"Tab", "x":0, "y":3, "w":1.5}, {"label":"Q", "x":1.5, "y":3}, {"label":"W", "x":2.5, "y":3}, {"label":"E", "x":3.5, "y":3}, {"label":"R", "x":4.5, "y":3}, {"label":"T", "x":5.5, "y":3}, {"label":"Y", "x":6.5, "y":3}, {"label":"U", "x":7.5, "y":3}, {"label":"I", "x":8.5, "y":3}, {"label":"O", "x":9.5, "y":3}, {"label":"P", "x":10.5, "y":3}, {"label":"{", "x":11.5, "y":3}, {"label":"}", "x":12.5, "y":3}, {"label":"|", "x":13.5, "y":3, "w":1.5}, {"label":"7", "x":15.5, "y":3}, {"label":"8", "x":16.5, "y":3}, {"label":"9", "x":17.5, "y":3}, {"label":"-", "x":18.5, "y":3}, {"label":"Caps Lock", "x":0, "y":4, "w":1.75}, {"label":"A", "x":1.75, "y":4}, {"label":"S", "x":2.75, "y":4}, {"label":"D", "x":3.75, "y":4}, {"label":"F", "x":4.75, "y":4}, {"label":"G", "x":5.75, "y":4}, {"label":"H", "x":6.75, "y":4}, {"label":"J", "x":7.75, "y":4}, {"label":"K", "x":8.75, "y":4}, {"label":"L", "x":9.75, "y":4}, {"label":":", "x":10.75, "y":4}, {"label":"\"", "x":11.75, "y":4}, {"label":"Enter", "x":12.75, "y":4, "w":2.25}, {"label":"4", "x":15.5, "y":4}, {"label":"5", "x":16.5, "y":4}, {"label":"6", "x":17.5, "y":4}, {"label":"+", "x":18.5, "y":4}, {"label":"Shift", "x":0, "y":5, "w":2.25}, {"label":"Z", "x":2.25, "y":5}, {"label":"X", "x":3.25, "y":5}, {"label":"C", "x":4.25, "y":5}, {"label":"V", "x":5.25, "y":5}, {"label":"B", "x":6.25, "y":5}, {"label":"N", "x":7.25, "y":5}, {"label":"M", "x":8.25, "y":5}, {"label":"<", "x":9.25, "y":5}, {"label":">", "x":10.25, "y":5}, {"label":"?", "x":11.25, "y":5}, {"label":"Shift", "x":12.25, "y":5, "w":1.75}, {"label":"\u2191", "x":14.25, "y":5.25}, {"label":"1", "x":15.5, "y":5}, {"label":"2", "x":16.5, "y":5}, {"label":"3", "x":17.5, "y":5}, {"label":"Enter", "x":18.5, "y":5, "h":2}, {"label":"Ctrl", "x":0, "y":6, "w":1.5}, {"label":"Alt", "x":1.5, "y":6, "w":1.5}, {"x":3, "y":6, "w":7}, {"label":"Menu", "x":10, "y":6, "w":1.5}, {"label":"Ctrl", "x":11.5, "y":6, "w":1.5}, {"label":"\u2190", "x":13.25, "y":6.25}, {"label":"\u2193", "x":14.25, "y":6.25}, {"label":"\u2192", "x":15.25, "y":6.25}, {"label":"0", "x":16.5, "y":6}, {"label":".", "x":17.5, "y":6}]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
19
keyboards/hineybush/hineyg80/keymaps/default/config.h
Normal file
19
keyboards/hineybush/hineyg80/keymaps/default/config.h
Normal file
@@ -0,0 +1,19 @@
|
||||
/* Copyright 2019 Josh Hinnebusch
|
||||
*
|
||||
* 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
|
||||
|
||||
// place overrides here
|
58
keyboards/hineybush/hineyg80/keymaps/default/keymap.c
Normal file
58
keyboards/hineybush/hineyg80/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,58 @@
|
||||
/* Copyright 2019 Josh Hinnebusch
|
||||
*
|
||||
* 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 the keycodes used by our macros in process_record_user
|
||||
enum custom_keycodes {
|
||||
QMKBEST = SAFE_RANGE,
|
||||
QMKURL,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_ansi_100u_mods( /* Base */
|
||||
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_INS, KC_HOME, KC_PGUP, KC_PSCR,
|
||||
KC_DEL, KC_END, KC_PGDN, KC_SLCK,
|
||||
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_NLCK, KC_PSLS, KC_PAST, KC_PAUS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PMNS,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
|
||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
|
||||
),
|
||||
[1] = LAYOUT_ansi_100u_mods( /* Fn */KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_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_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void matrix_init_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
1
keyboards/hineybush/hineyg80/keymaps/default/readme.md
Normal file
1
keyboards/hineybush/hineyg80/keymaps/default/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default keymap for hineyg80
|
19
keyboards/hineybush/hineyg80/keymaps/wkl/config.h
Normal file
19
keyboards/hineybush/hineyg80/keymaps/wkl/config.h
Normal file
@@ -0,0 +1,19 @@
|
||||
/* Copyright 2019 Josh Hinnebusch
|
||||
*
|
||||
* 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
|
||||
|
||||
// place overrides here
|
60
keyboards/hineybush/hineyg80/keymaps/wkl/keymap.c
Normal file
60
keyboards/hineybush/hineyg80/keymaps/wkl/keymap.c
Normal file
@@ -0,0 +1,60 @@
|
||||
/* Copyright 2019 %YOUR_NAME%
|
||||
*
|
||||
* 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 the keycodes used by our macros in process_record_user
|
||||
enum custom_keycodes {
|
||||
QMKBEST = SAFE_RANGE,
|
||||
QMKURL,
|
||||
______ = KC_TRNS,
|
||||
XXXXXX = KC_NO
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT_ansi_150u_mods( /* Base */
|
||||
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_INS, KC_HOME, KC_PGUP, KC_PSCR,
|
||||
KC_DEL, KC_END, KC_PGDN, KC_SLCK,
|
||||
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_NLCK, KC_PSLS, KC_PAST, KC_PAUS,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_P7, KC_P8, KC_P9, KC_PMNS,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
|
||||
KC_LCTL, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT
|
||||
),
|
||||
[1] = LAYOUT_ansi_150u_mods( /* Fn */______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLU,
|
||||
______, ______, ______, KC_VOLD,
|
||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, KC_DEL, ______, ______, ______, ______,
|
||||
______, ______, ______, ______, RESET , ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
|
||||
KC_CAPS, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
|
||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
|
||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______
|
||||
),
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void matrix_init_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
1
keyboards/hineybush/hineyg80/keymaps/wkl/readme.md
Normal file
1
keyboards/hineybush/hineyg80/keymaps/wkl/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default keymap for hineyg80
|
16
keyboards/hineybush/hineyg80/readme.md
Normal file
16
keyboards/hineybush/hineyg80/readme.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# hineyg80
|
||||
|
||||
|
||||
A small-batch PCB design to be a drop-in replacement for G80-1800 and G81-1800 boards.
|
||||
|
||||
Keyboard Maintainer: [hineybush](https://github.com/hineybush)
|
||||
|
||||
Hardware Supported: hiney g80 rev 2
|
||||
|
||||
Hardware Availability: https://geekhack.org/index.php?topic=92389.0
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make hineybush/hineyg80: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).
|
81
keyboards/hineybush/hineyg80/rules.mk
Normal file
81
keyboards/hineybush/hineyg80/rules.mk
Normal file
@@ -0,0 +1,81 @@
|
||||
# MCU name
|
||||
#MCU = at90usb1286
|
||||
MCU = atmega32u4
|
||||
|
||||
# Processor frequency.
|
||||
# This will define a symbol, F_CPU, in all source code files equal to the
|
||||
# processor frequency in Hz. You can then use this symbol in your source code to
|
||||
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
||||
# automatically to create a 32-bit value in your source code.
|
||||
#
|
||||
# This will be an integer division of F_USB below, as it is sourced by
|
||||
# F_USB after it has run through any CPU prescalers. Note that this value
|
||||
# does not *change* the processor frequency - it should merely be updated to
|
||||
# reflect the processor speed set externally so that the code can use accurate
|
||||
# software delays.
|
||||
F_CPU = 16000000
|
||||
|
||||
|
||||
#
|
||||
# LUFA specific
|
||||
#
|
||||
# Target architecture (see library "Board Types" documentation).
|
||||
ARCH = AVR8
|
||||
|
||||
# Input clock frequency.
|
||||
# This will define a symbol, F_USB, in all source code files equal to the
|
||||
# input clock frequency (before any prescaling is performed) in Hz. This value may
|
||||
# differ from F_CPU if prescaling is used on the latter, and is required as the
|
||||
# raw input clock is fed directly to the PLL sections of the AVR for high speed
|
||||
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
|
||||
# at the end, this will be done automatically to create a 32-bit value in your
|
||||
# source code.
|
||||
#
|
||||
# If no clock division is performed on the input clock inside the AVR (via the
|
||||
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
|
||||
F_USB = $(F_CPU)
|
||||
|
||||
# Interrupt driven control endpoint task(+60)
|
||||
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
||||
|
||||
|
||||
# Bootloader selection
|
||||
# Teensy halfkay
|
||||
# Pro Micro caterina
|
||||
# Atmel DFU atmel-dfu
|
||||
# LUFA DFU lufa-dfu
|
||||
# QMK DFU qmk-dfu
|
||||
# atmega32a bootloadHID
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
|
||||
# If you don't know the bootloader type, then you can specify the
|
||||
# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
|
||||
# Teensy halfKay 512
|
||||
# Teensy++ halfKay 1024
|
||||
# Atmel DFU loader 4096
|
||||
# LUFA bootloader 4096
|
||||
# USBaspLoader 2048
|
||||
# OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = yes # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = no # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
|
||||
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
|
||||
HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
|
@@ -15,7 +15,7 @@ const uint8_t RGBLED_SNAKE_INTERVALS[] PROGMEM = {100, 50, 20};
|
||||
const uint8_t RGBLED_KNIGHT_INTERVALS[] PROGMEM = {127, 63, 31};
|
||||
|
||||
// These control which colors are selected for the gradient mode
|
||||
const uint16_t RGBLED_GRADIENT_RANGES[] PROGMEM = {360, 240, 180, 120, 90};
|
||||
const uint8_t RGBLED_GRADIENT_RANGES[] PROGMEM = {255, 170, 127, 85, 64};
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[0] = LAYOUT(
|
||||
|
222
keyboards/kagamidget/config.h
Normal file
222
keyboards/kagamidget/config.h
Normal file
@@ -0,0 +1,222 @@
|
||||
/*
|
||||
Copyright 2019 yynmt
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "config_common.h"
|
||||
|
||||
/* USB Device descriptor parameter */
|
||||
#define VENDOR_ID 0xFEED
|
||||
#define PRODUCT_ID 0x0000
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER yynmt
|
||||
#define PRODUCT KagaMidget
|
||||
#define DESCRIPTION 48 keys tiny keyboard
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 4
|
||||
#define MATRIX_COLS 12
|
||||
|
||||
/*
|
||||
* 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 { D1, D0, F4, F5 }
|
||||
#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5, B6, B2, B3, B1, F7, F6 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */
|
||||
#define DIODE_DIRECTION COL2ROW
|
||||
|
||||
|
||||
#define RGB_DI_PIN D3
|
||||
#define RGBLIGHT_ANIMATIONS
|
||||
#define RGBLED_NUM 4
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#define RGBLIGHT_SAT_STEP 8
|
||||
#define RGBLIGHT_VAL_STEP 8
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
#define DEBOUNCING_DELAY 5
|
||||
|
||||
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||
//#define MATRIX_HAS_GHOST
|
||||
|
||||
/* number of backlight levels */
|
||||
|
||||
/* 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
|
||||
|
||||
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
|
||||
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
|
||||
*/
|
||||
// #define GRAVE_ESC_CTRL_OVERRIDE
|
||||
|
||||
/*
|
||||
* Force NKRO
|
||||
*
|
||||
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||
* makefile for this to work.)
|
||||
*
|
||||
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||
* until the next keyboard reset.
|
||||
*
|
||||
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||
* fully operational during normal computer usage.
|
||||
*
|
||||
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||
* power-up.
|
||||
*
|
||||
*/
|
||||
//#define FORCE_NKRO
|
||||
|
||||
/*
|
||||
* Magic Key Options
|
||||
*
|
||||
* Magic keys are hotkey commands that allow control over firmware functions of
|
||||
* the keyboard. They are best used in combination with the HID Listen program,
|
||||
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
||||
*
|
||||
* The options below allow the magic key functionality to be changed. This is
|
||||
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
||||
*
|
||||
*/
|
||||
|
||||
/* key combination for magic key command */
|
||||
/*#define IS_COMMAND() ( \
|
||||
keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||
)*/
|
||||
|
||||
/* control how magic key switches layers */
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
||||
|
||||
/* override magic key keymap */
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
||||
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
||||
//#define MAGIC_KEY_HELP1 H
|
||||
//#define MAGIC_KEY_HELP2 SLASH
|
||||
//#define MAGIC_KEY_DEBUG D
|
||||
//#define MAGIC_KEY_DEBUG_MATRIX X
|
||||
//#define MAGIC_KEY_DEBUG_KBD K
|
||||
//#define MAGIC_KEY_DEBUG_MOUSE M
|
||||
//#define MAGIC_KEY_VERSION V
|
||||
//#define MAGIC_KEY_STATUS S
|
||||
//#define MAGIC_KEY_CONSOLE C
|
||||
//#define MAGIC_KEY_LAYER0_ALT1 ESC
|
||||
//#define MAGIC_KEY_LAYER0_ALT2 GRAVE
|
||||
//#define MAGIC_KEY_LAYER0 0
|
||||
//#define MAGIC_KEY_LAYER1 1
|
||||
//#define MAGIC_KEY_LAYER2 2
|
||||
//#define MAGIC_KEY_LAYER3 3
|
||||
//#define MAGIC_KEY_LAYER4 4
|
||||
//#define MAGIC_KEY_LAYER5 5
|
||||
//#define MAGIC_KEY_LAYER6 6
|
||||
//#define MAGIC_KEY_LAYER7 7
|
||||
//#define MAGIC_KEY_LAYER8 8
|
||||
//#define MAGIC_KEY_LAYER9 9
|
||||
//#define MAGIC_KEY_BOOTLOADER PAUSE
|
||||
//#define MAGIC_KEY_LOCK CAPS
|
||||
//#define MAGIC_KEY_EEPROM E
|
||||
//#define MAGIC_KEY_NKRO N
|
||||
//#define MAGIC_KEY_SLEEP_LED Z
|
||||
|
||||
/*
|
||||
* 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
|
||||
//#define NO_ACTION_MACRO
|
||||
//#define NO_ACTION_FUNCTION
|
||||
|
||||
/*
|
||||
* MIDI options
|
||||
*/
|
||||
|
||||
/* Prevent use of disabled MIDI features in the keymap */
|
||||
//#define MIDI_ENABLE_STRICT 1
|
||||
|
||||
/* enable basic MIDI features:
|
||||
- MIDI notes can be sent when in Music mode is on
|
||||
*/
|
||||
//#define MIDI_BASIC
|
||||
|
||||
/* enable advanced MIDI features:
|
||||
- MIDI notes can be added to the keymap
|
||||
- Octave shift and transpose
|
||||
- Virtual sustain, portamento, and modulation wheel
|
||||
- etc.
|
||||
*/
|
||||
//#define MIDI_ADVANCED
|
||||
|
||||
/* override number of MIDI tone keycodes (each octave adds 12 keycodes and allocates 12 bytes) */
|
||||
//#define MIDI_TONE_KEYCODE_OCTAVES 1
|
||||
|
||||
/*
|
||||
* HD44780 LCD Display Configuration
|
||||
*/
|
||||
/*
|
||||
#define LCD_LINES 2 //< number of visible lines of the display
|
||||
#define LCD_DISP_LENGTH 16 //< visibles characters per line of the display
|
||||
|
||||
#define LCD_IO_MODE 1 //< 0: memory mapped mode, 1: IO port mode
|
||||
|
||||
#if LCD_IO_MODE
|
||||
#define LCD_PORT PORTB //< port for the LCD lines
|
||||
#define LCD_DATA0_PORT LCD_PORT //< port for 4bit data bit 0
|
||||
#define LCD_DATA1_PORT LCD_PORT //< port for 4bit data bit 1
|
||||
#define LCD_DATA2_PORT LCD_PORT //< port for 4bit data bit 2
|
||||
#define LCD_DATA3_PORT LCD_PORT //< port for 4bit data bit 3
|
||||
#define LCD_DATA0_PIN 4 //< pin for 4bit data bit 0
|
||||
#define LCD_DATA1_PIN 5 //< pin for 4bit data bit 1
|
||||
#define LCD_DATA2_PIN 6 //< pin for 4bit data bit 2
|
||||
#define LCD_DATA3_PIN 7 //< pin for 4bit data bit 3
|
||||
#define LCD_RS_PORT LCD_PORT //< port for RS line
|
||||
#define LCD_RS_PIN 3 //< pin for RS line
|
||||
#define LCD_RW_PORT LCD_PORT //< port for RW line
|
||||
#define LCD_RW_PIN 2 //< pin for RW line
|
||||
#define LCD_E_PORT LCD_PORT //< port for Enable line
|
||||
#define LCD_E_PIN 1 //< pin for Enable line
|
||||
#endif
|
||||
*/
|
||||
|
||||
/* Bootmagic Lite key configuration */
|
||||
// #define BOOTMAGIC_LITE_ROW 0
|
||||
// #define BOOTMAGIC_LITE_COLUMN 0
|
18
keyboards/kagamidget/info.json
Normal file
18
keyboards/kagamidget/info.json
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"keyboard_name": "KagaMidget",
|
||||
"url": "http://yynmt.com",
|
||||
"maintainer": "yynmt",
|
||||
"width": 12,
|
||||
"height": 4,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"key_count": 48,
|
||||
"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":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1},
|
||||
{"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2},
|
||||
{"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
43
keyboards/kagamidget/kagamidget.c
Normal file
43
keyboards/kagamidget/kagamidget.c
Normal file
@@ -0,0 +1,43 @@
|
||||
/* Copyright 2019 yynmt
|
||||
*
|
||||
* 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 "kagamidget.h"
|
||||
|
||||
void matrix_init_kb(void) {
|
||||
// put your keyboard start-up code here
|
||||
// runs once when the firmware starts up
|
||||
|
||||
matrix_init_user();
|
||||
}
|
||||
|
||||
void matrix_scan_kb(void) {
|
||||
// put your looping keyboard code here
|
||||
// runs every cycle (a lot)
|
||||
|
||||
matrix_scan_user();
|
||||
}
|
||||
|
||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
||||
// put your per-action keyboard code here
|
||||
// runs for every action, just before processing by the firmware
|
||||
|
||||
return process_record_user(keycode, record);
|
||||
}
|
||||
|
||||
void led_set_kb(uint8_t usb_led) {
|
||||
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
|
||||
|
||||
led_set_user(usb_led);
|
||||
}
|
39
keyboards/kagamidget/kagamidget.h
Normal file
39
keyboards/kagamidget/kagamidget.h
Normal file
@@ -0,0 +1,39 @@
|
||||
/* Copyright 2019 yynmt
|
||||
*
|
||||
* 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 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( \
|
||||
K01, K05, K09, K13, K17, K21, K25, K29, K33, K37, K41, K45, \
|
||||
K02, K06, K10, K14, K18, K22, K26, K30, K34, K38, K42, K46, \
|
||||
K03, K07, K11, K15, K19, K23, K27, K31, K35, K39, K43, K47, \
|
||||
K04, K08, K12, K16, K20, K24, K28, K32, K36, K40, K44, K48 \
|
||||
) \
|
||||
{ \
|
||||
{ K01, K05, K09, K13, K17, K21, K25, K29, K33, K37, K41, K45 }, \
|
||||
{ K02, K06, K10, K14, K18, K22, K26, K30, K34, K38, K42, K46 }, \
|
||||
{ K03, K07, K11, K15, K19, K23, K27, K31, K35, K39, K43, K47 }, \
|
||||
{ K04, K08, K12, K16, K20, K24, K28, K32, K36, K40, K44, K48 }, \
|
||||
}
|
19
keyboards/kagamidget/keymaps/default/config.h
Normal file
19
keyboards/kagamidget/keymaps/default/config.h
Normal file
@@ -0,0 +1,19 @@
|
||||
/* Copyright 2019 yynmt
|
||||
*
|
||||
* 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
|
||||
|
||||
// place overrides here
|
118
keyboards/kagamidget/keymaps/default/keymap.c
Normal file
118
keyboards/kagamidget/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,118 @@
|
||||
/* Copyright 2019 yynmt
|
||||
*
|
||||
* 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
|
||||
|
||||
#ifdef RGBLIGHT_ENABLE
|
||||
//Following line allows macro to read current RGB settings
|
||||
extern rgblight_config_t rgblight_config;
|
||||
#endif
|
||||
|
||||
enum layers {
|
||||
_QWERTY,
|
||||
_LOWER,
|
||||
_RAISE,
|
||||
_ADJUST
|
||||
};
|
||||
|
||||
#define LOWER MO(_LOWER)
|
||||
#define RAISE MO(_RAISE)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Qwerty
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Esc | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Shift| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_QWERTY] = LAYOUT(
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_ESC, 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_RSFT, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||
),
|
||||
/* Lower
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_LOWER] = LAYOUT(
|
||||
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||
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_HOME, KC_END, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
/* Raise
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_RAISE] = LAYOUT(
|
||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||
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_PGUP, KC_PGDN, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||
),
|
||||
/* Adjust (Lower + Raise)
|
||||
* ,-----------------------------------------------------------------------------------.
|
||||
* | | Reset| Debug|RGBTog|RGBMod|RGBHuI|RGBHuD|RGBSaI|RGBSaD|RGBVaI|RGBVaD| Del |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | | |
|
||||
* |------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
* | | | | | | | | | | | |
|
||||
* `-----------------------------------------------------------------------------------'
|
||||
*/
|
||||
[_ADJUST] = LAYOUT(
|
||||
_______, RESET, DEBUG, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_DEL ,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
)
|
||||
};
|
||||
|
||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
return true;
|
||||
}
|
||||
|
||||
void matrix_init_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void matrix_scan_user(void) {
|
||||
|
||||
}
|
||||
|
||||
void led_set_user(uint8_t usb_led) {
|
||||
|
||||
}
|
49
keyboards/kagamidget/keymaps/default/readme.md
Normal file
49
keyboards/kagamidget/keymaps/default/readme.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# The default keymap for KagaMidget
|
||||
## Qwerty
|
||||
```
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| Esc | A | S | D | F | G | H | J | K | L | ; | " |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| Shift| Z | X | C | V | B | N | M | , | . | / |Enter |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| Shift| Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
```
|
||||
## Lower
|
||||
```
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | Bksp |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| Del | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| | F7 | F8 | F9 | F10 | F11 | F12 |ISO ~ |ISO | | Home | End | |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
```
|
||||
## Raise
|
||||
```
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | Bksp |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| Del | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| | F7 | F8 | F9 | F10 | F11 | F12 |ISO # |ISO / |Pg Up |Pg Dn | |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| | | | | | | | Next | Vol- | Vol+ | Play |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
```
|
||||
## Adjust (Lower + Raise)
|
||||
```
|
||||
,-----------------------------------------------------------------------------------.
|
||||
| | Reset| Debug|RGBTog|RGBMod|RGBHuI|RGBHuD|RGBSaI|RGBSaD|RGBVaI|RGBVaD| Del |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| | | | | | | | | | | | |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| | | | | | | | | | | | |
|
||||
|------+------+------+------+------+------+------+------+------+------+------+------|
|
||||
| | | | | | | | | | | |
|
||||
`-----------------------------------------------------------------------------------'
|
||||
```
|
14
keyboards/kagamidget/readme.md
Normal file
14
keyboards/kagamidget/readme.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# KagaMidget
|
||||
|
||||

|
||||
|
||||
KagaMidget is 40% tiny keyboard.
|
||||
|
||||
Keyboard Maintainer: [yynmt](https://github.com/yynmt)
|
||||
Hardware Supported: KagaMidget PCBs, ProMicro supported
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make kagamidget: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).
|
83
keyboards/kagamidget/rules.mk
Normal file
83
keyboards/kagamidget/rules.mk
Normal file
@@ -0,0 +1,83 @@
|
||||
# MCU name
|
||||
#MCU = at90usb1286
|
||||
MCU = atmega32u4
|
||||
|
||||
# Processor frequency.
|
||||
# This will define a symbol, F_CPU, in all source code files equal to the
|
||||
# processor frequency in Hz. You can then use this symbol in your source code to
|
||||
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
||||
# automatically to create a 32-bit value in your source code.
|
||||
#
|
||||
# This will be an integer division of F_USB below, as it is sourced by
|
||||
# F_USB after it has run through any CPU prescalers. Note that this value
|
||||
# does not *change* the processor frequency - it should merely be updated to
|
||||
# reflect the processor speed set externally so that the code can use accurate
|
||||
# software delays.
|
||||
F_CPU = 16000000
|
||||
|
||||
|
||||
#
|
||||
# LUFA specific
|
||||
#
|
||||
# Target architecture (see library "Board Types" documentation).
|
||||
ARCH = AVR8
|
||||
|
||||
# Input clock frequency.
|
||||
# This will define a symbol, F_USB, in all source code files equal to the
|
||||
# input clock frequency (before any prescaling is performed) in Hz. This value may
|
||||
# differ from F_CPU if prescaling is used on the latter, and is required as the
|
||||
# raw input clock is fed directly to the PLL sections of the AVR for high speed
|
||||
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
|
||||
# at the end, this will be done automatically to create a 32-bit value in your
|
||||
# source code.
|
||||
#
|
||||
# If no clock division is performed on the input clock inside the AVR (via the
|
||||
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
|
||||
F_USB = $(F_CPU)
|
||||
|
||||
# Interrupt driven control endpoint task(+60)
|
||||
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
||||
|
||||
|
||||
# Bootloader selection
|
||||
# Teensy halfkay
|
||||
# Pro Micro caterina
|
||||
# Atmel DFU atmel-dfu
|
||||
# LUFA DFU lufa-dfu
|
||||
# QMK DFU qmk-dfu
|
||||
# atmega32a bootloadHID
|
||||
BOOTLOADER = atmel-dfu
|
||||
|
||||
|
||||
# If you don't know the bootloader type, then you can specify the
|
||||
# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
|
||||
# Teensy halfKay 512
|
||||
# Teensy++ halfKay 1024
|
||||
# Atmel DFU loader 4096
|
||||
# LUFA bootloader 4096
|
||||
# USBaspLoader 2048
|
||||
# OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = yes # Console for debug(+400)
|
||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = no # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
|
||||
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
|
||||
HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
|
||||
|
||||
RGBLIGHT_ENABLE = yes
|
82
keyboards/kbdfans/kbd6x/keymaps/wanleg/keymap.c
Normal file
82
keyboards/kbdfans/kbd6x/keymaps/wanleg/keymap.c
Normal file
@@ -0,0 +1,82 @@
|
||||
/* Copyright 2018 wanleg
|
||||
*
|
||||
* 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 "wanleg.h"
|
||||
|
||||
|
||||
#define LAYOUT_kbd6x_base( \
|
||||
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
|
||||
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
|
||||
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
|
||||
) \
|
||||
LAYOUT_wrapper( \
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, \
|
||||
KC_TAB, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, KC_LBRC, KC_RBRC, KC_BSLS, \
|
||||
KC_CAPS, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, KC_QUOT, KC_ENT, \
|
||||
KC_LSFT, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, KC_LSFT, FUNCTION, \
|
||||
KC_LCTL, KC_LGUI, KC_LALT, LT(gDIR,KC_SPC), KC_RALT, KC_RGUI, KC_RCTL \
|
||||
)
|
||||
#define LAYOUT_kbd6x_base_wrapper(...) LAYOUT_kbd6x_base(__VA_ARGS__)
|
||||
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[gGK] = LAYOUT_kbd6x_base_wrapper(
|
||||
_______________Gherkin_Row_0_______________,
|
||||
_______________Gherkin_Row_1_______________,
|
||||
_______________Gherkin_Row_2_______________
|
||||
),
|
||||
|
||||
[gNUM] = LAYOUT_kbd6x_base_wrapper(
|
||||
_______________Gherkin_NUM_0_______________,
|
||||
_______________Gherkin_NUM_1_______________,
|
||||
_______________Gherkin_NUM_2_______________
|
||||
),
|
||||
|
||||
[gDIR] = LAYOUT_kbd6x_base_wrapper(
|
||||
_______________Gherkin_DIR_0_______________,
|
||||
_______________Gherkin_DIR_1_______________,
|
||||
_______________Gherkin_DIR_2_______________
|
||||
),
|
||||
|
||||
[gETC] = LAYOUT_kbd6x_base_wrapper(
|
||||
_______________Gherkin_ETC_0_______________,
|
||||
_______________Gherkin_ETC_1_______________,
|
||||
_______________Gherkin_ETC_2_______________
|
||||
),
|
||||
|
||||
[_FN] = LAYOUT_kbd6x_base_wrapper(
|
||||
_______________Gherkin_FN_0________________,
|
||||
_______________Gherkin_FN_1________________,
|
||||
_______________Gherkin_FN_2________________
|
||||
),
|
||||
|
||||
//mac layout
|
||||
[_QW] = LAYOUT_wrapper(
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
|
||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(ONE),
|
||||
KC_LCTL, MO(ONE), KC_LGUI, KC_SPACE, KC_RGUI, KC_RALT, KC_RCTL
|
||||
),
|
||||
|
||||
[ONE] = LAYOUT_wrapper(
|
||||
KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
|
||||
_______, BL_BRTG, BL_DEC, BL_INC, BL_TOGG, BL_STEP, BL_ON, KC_PGUP, KC_HOME, _______, _______, _______, _______, _______,
|
||||
_______, RGB_M_B, RGB_VAD, RGB_VAI, RGB_TOG, RGB_MOD, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, _______,
|
||||
_______, RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, _______, _______, KC_PGDN, KC_END, _______, gGHERKIN,_______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
3
keyboards/kbdfans/kbd6x/keymaps/wanleg/rules.mk
Normal file
3
keyboards/kbdfans/kbd6x/keymaps/wanleg/rules.mk
Normal file
@@ -0,0 +1,3 @@
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
EXTRAKEY_ENABLE = no # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
11
keyboards/miniaxe/keymaps/wanleg/config.h
Normal file
11
keyboards/miniaxe/keymaps/wanleg/config.h
Normal file
@@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
/* Select hand configuration */
|
||||
|
||||
// #define MASTER_LEFT
|
||||
// #define MASTER_RIGHT
|
||||
#define EE_HANDS
|
||||
|
||||
//#define QMK_ESC_OUTPUT F1 // usually COL
|
||||
//#define QMK_ESC_INPUT D6 // usually ROW // connected to nothing on the miniaxe
|
||||
//#define QMK_LED D7 //connected to nothing on the miniaxe
|
49
keyboards/miniaxe/keymaps/wanleg/keymap.c
Normal file
49
keyboards/miniaxe/keymaps/wanleg/keymap.c
Normal file
@@ -0,0 +1,49 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "wanleg.h"
|
||||
|
||||
#define LAYOUT_miniaxe_base( \
|
||||
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
|
||||
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
|
||||
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A \
|
||||
) \
|
||||
LAYOUT_wrapper( \
|
||||
K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, \
|
||||
K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, \
|
||||
K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, \
|
||||
_______, NUMBER, ETCETERA, KC_SPC, DIRECTION, KC_RGUI \
|
||||
)
|
||||
#define LAYOUT_miniaxe_base_wrapper(...) LAYOUT_miniaxe_base(__VA_ARGS__)
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_GK] = LAYOUT_miniaxe_base_wrapper(
|
||||
_______________Gherkin_Row_0_______________,
|
||||
_______________Gherkin_Row_1_______________,
|
||||
SFT_T(KC_Z), KC_X, KC_C, LT(NUM,KC_V), LT(ETC,KC_B), LT(_FN,KC_N), LT(DIR,KC_M), GUI_T(KC_COMM), ALT_T(KC_DOT), CTL_T(KC_BSPC)
|
||||
),
|
||||
|
||||
[NUM] = LAYOUT_wrapper(
|
||||
_______________Gherkin_NUM_0_______________,
|
||||
_______________Gherkin_NUM_1_______________,
|
||||
_______________Gherkin_NUM_2_______________,
|
||||
_______, _______, _______, KC_ENT, KC_RSFT, _______
|
||||
),
|
||||
|
||||
[DIR] = LAYOUT_miniaxe_base_wrapper(
|
||||
_______________Gherkin_DIR_0_______________,
|
||||
_______________Gherkin_DIR_1_______________,
|
||||
_______________Gherkin_DIR_2_______________
|
||||
),
|
||||
|
||||
[ETC] = LAYOUT_wrapper(
|
||||
_______________Gherkin_ETC_0_______________,
|
||||
_______________Gherkin_ETC_1_______________,
|
||||
_______________Gherkin_ETC_2_______________,
|
||||
_______, NUMBER, ETCETERA, LALT(LCTL(KC_DEL)), DIRECTION, KC_RGUI
|
||||
),
|
||||
|
||||
[_FN] = LAYOUT_miniaxe_base_wrapper(
|
||||
_______________Gherkin_FN_0________________,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
18
keyboards/miniaxe/keymaps/wanleg/rules.mk
Normal file
18
keyboards/miniaxe/keymaps/wanleg/rules.mk
Normal file
@@ -0,0 +1,18 @@
|
||||
# Bootloader selection
|
||||
# Teensy halfkay
|
||||
# Pro Micro caterina
|
||||
# Atmel DFU atmel-dfu
|
||||
# LUFA DFU lufa-dfu
|
||||
# QMK DFU qmk-dfu
|
||||
# atmega32a bootloadHID
|
||||
#BOOTLOADER = qmk-dfu
|
||||
|
||||
|
||||
# If you don't know the bootloader type, then you can specify the
|
||||
# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
|
||||
# Teensy halfKay 512
|
||||
# Teensy++ halfKay 1024
|
||||
# Atmel DFU loader 4096
|
||||
# LUFA bootloader 4096
|
||||
# USBaspLoader 2048
|
||||
# OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
@@ -31,6 +31,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#define TAPPING_FORCE_HOLD
|
||||
#define TAPPING_TERM 100
|
||||
|
||||
#define USE_SERIAL
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 10
|
||||
#define MATRIX_COLS 8
|
||||
|
@@ -17,7 +17,7 @@
|
||||
#pragma once
|
||||
|
||||
/* Use I2C or Serial, not both */
|
||||
#define USE_SERIAL
|
||||
// #define USE_SERIAL
|
||||
// #define USE_I2C
|
||||
|
||||
// #define MASTER_RIGHT
|
||||
|
@@ -17,7 +17,7 @@
|
||||
#pragma once
|
||||
|
||||
/* Use I2C or Serial, not both */
|
||||
#define USE_SERIAL
|
||||
// #define USE_SERIAL
|
||||
// #define USE_I2C
|
||||
|
||||
// #define MASTER_RIGHT
|
||||
|
49
keyboards/nomu30/config.h
Normal file
49
keyboards/nomu30/config.h
Normal file
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
Copyright 2019 Naoto Takai
|
||||
|
||||
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 0xC0C0
|
||||
#define PRODUCT_ID 0x3000
|
||||
#define DEVICE_VER 0x0001
|
||||
#define MANUFACTURER Naoto Takai
|
||||
#define PRODUCT nomu30
|
||||
#define DESCRIPTION A 30% keyboard with ISO enter.
|
||||
|
||||
/* key matrix size */
|
||||
#define MATRIX_ROWS 3
|
||||
#define MATRIX_COLS 12
|
||||
|
||||
/*
|
||||
* 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 { D1, D0, D4 }
|
||||
#define MATRIX_COL_PINS { C6, D7, E6, B4, F4, F5, F6, F7, B1, B3, B2, B6 }
|
||||
#define UNUSED_PINS
|
||||
|
||||
/* COL2ROW, ROW2COL*/
|
||||
#define DIODE_DIRECTION COL2ROW
|
172
keyboards/nomu30/info.json
Normal file
172
keyboards/nomu30/info.json
Normal file
@@ -0,0 +1,172 @@
|
||||
{
|
||||
"keyboard_name": "Nomu30",
|
||||
"url": "https://keys.recompile.net/projects/nomu30/",
|
||||
"maintainer": "takai",
|
||||
"width": 11.5,
|
||||
"height": 3,
|
||||
"layouts": {
|
||||
"LAYOUT": {
|
||||
"layout": [
|
||||
{
|
||||
"label": "Q",
|
||||
"x": 0.5,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "W",
|
||||
"x": 1.5,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "E",
|
||||
"x": 2.5,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "R",
|
||||
"x": 3.5,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "T",
|
||||
"x": 4.5,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "Y",
|
||||
"x": 5.5,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "U",
|
||||
"x": 6.5,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "I",
|
||||
"x": 7.5,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "O",
|
||||
"x": 8.5,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "P",
|
||||
"x": 9.5,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "Del",
|
||||
"x": 10.5,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"label": "|",
|
||||
"x": 0,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"label": "A",
|
||||
"x": 1,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"label": "S",
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"label": "D",
|
||||
"x": 3,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"label": "F",
|
||||
"x": 4,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"label": "G",
|
||||
"x": 5,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"label": "H",
|
||||
"x": 6,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"label": "J",
|
||||
"x": 7,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"label": "K",
|
||||
"x": 8,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"label": "L",
|
||||
"x": 9,
|
||||
"y": 1
|
||||
},
|
||||
{
|
||||
"label": "Enter",
|
||||
"x": 10.25,
|
||||
"y": 1,
|
||||
"w": 1.25,
|
||||
"h": 2
|
||||
},
|
||||
{
|
||||
"label": "Control",
|
||||
"x": 0,
|
||||
"y": 2,
|
||||
"w": 1.5
|
||||
},
|
||||
{
|
||||
"label": "Z",
|
||||
"x": 1.5,
|
||||
"y": 2
|
||||
},
|
||||
{
|
||||
"label": "X",
|
||||
"x": 2.5,
|
||||
"y": 2
|
||||
},
|
||||
{
|
||||
"label": "C",
|
||||
"x": 3.5,
|
||||
"y": 2
|
||||
},
|
||||
{
|
||||
"label": "V",
|
||||
"x": 4.5,
|
||||
"y": 2
|
||||
},
|
||||
{
|
||||
"label": "B",
|
||||
"x": 5.5,
|
||||
"y": 2
|
||||
},
|
||||
{
|
||||
"label": "N",
|
||||
"x": 6.5,
|
||||
"y": 2
|
||||
},
|
||||
{
|
||||
"label": "M",
|
||||
"x": 7.5,
|
||||
"y": 2
|
||||
},
|
||||
{
|
||||
"label": "Shift",
|
||||
"x": 8.5,
|
||||
"y": 2,
|
||||
"w": 1.75
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
22
keyboards/nomu30/keymaps/default/config.h
Normal file
22
keyboards/nomu30/keymaps/default/config.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/* Copyright 2019 Naoto Takai
|
||||
*
|
||||
* 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
|
||||
|
||||
// place overrides here
|
||||
|
||||
#define TAPPING_TERM 200
|
||||
#define PERMISSIVE_HOLD
|
44
keyboards/nomu30/keymaps/default/keymap.c
Normal file
44
keyboards/nomu30/keymaps/default/keymap.c
Normal file
@@ -0,0 +1,44 @@
|
||||
/* Copyright 2019 Naoto Takai
|
||||
*
|
||||
* 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
|
||||
|
||||
#define _BASE 0
|
||||
#define _NUMS 1
|
||||
#define _SYMS 2
|
||||
#define _FUNC 3
|
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
[_BASE] = LAYOUT(
|
||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
|
||||
KC_LSFT, LALT_T(KC_Z), LGUI_T(KC_X), KC_C, LT(_SYMS, KC_V), LT(_FUNC, KC_B), LT(_NUMS, KC_N), KC_M, KC_SPC
|
||||
),
|
||||
[_NUMS] = LAYOUT(
|
||||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
|
||||
KC_TRNS, KC_LBRC, KC_RBRC, KC_SLSH, KC_BSLS, KC_TRNS, KC_MINS, KC_EQL, KC_SCLN, KC_QUOT, KC_TRNS,
|
||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_COMM, KC_DOT
|
||||
),
|
||||
[_SYMS] = LAYOUT(
|
||||
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TILD,
|
||||
KC_TRNS, KC_LCBR, KC_RCBR, KC_QUES, KC_PIPE, KC_TRNS, KC_UNDS, KC_PLUS, KC_COLN, KC_DQUO, KC_TRNS,
|
||||
KC_TRNS, KC_LABK, KC_RABK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
),
|
||||
[_FUNC] = LAYOUT(
|
||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
|
||||
KC_TAB, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, RESET,
|
||||
KC_TRNS, KC_LALT, KC_LGUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||
)
|
||||
};
|
1
keyboards/nomu30/keymaps/default/readme.md
Normal file
1
keyboards/nomu30/keymaps/default/readme.md
Normal file
@@ -0,0 +1 @@
|
||||
# The default keymap for nomu30
|
16
keyboards/nomu30/nomu30.c
Normal file
16
keyboards/nomu30/nomu30.c
Normal file
@@ -0,0 +1,16 @@
|
||||
/* Copyright 2019 Naoto Takai
|
||||
*
|
||||
* 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 "nomu30.h"
|
48
keyboards/nomu30/nomu30.h
Normal file
48
keyboards/nomu30/nomu30.h
Normal file
@@ -0,0 +1,48 @@
|
||||
/* Copyright 2019 Naoto Takai
|
||||
*
|
||||
* 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 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( \
|
||||
K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \
|
||||
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, \
|
||||
K200, K201, K202, K203, K204, K205, K206, K207, K208 \
|
||||
) \
|
||||
{ \
|
||||
{ KC_NO, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \
|
||||
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, KC_NO }, \
|
||||
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, KC_NO, KC_NO, KC_NO }, \
|
||||
}
|
||||
|
||||
#define LAYOUT_kc( \
|
||||
K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \
|
||||
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, \
|
||||
K200, K201, K202, K203, K204, K205, K206, K207, K208 \
|
||||
) \
|
||||
LAYOUT( \
|
||||
KC_##K001, KC_##K002, KC_##K003, KC_##K004, KC_##K005, KC_##K006, KC_##K007, KC_##K008, KC_##K009, KC_##K010, KC_##K011, \
|
||||
KC_##K100, KC_##K101, KC_##K102, KC_##K103, KC_##K104, KC_##K105, KC_##K106, KC_##K107, KC_##K108, KC_##K109, KC_##K110, \
|
||||
KC_##K200, KC_##K201, KC_##K202, KC_##K203, KC_##K204, KC_##K205, KC_##K206, KC_##K207, KC_##K208 \
|
||||
)
|
15
keyboards/nomu30/readme.md
Normal file
15
keyboards/nomu30/readme.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# nomu30
|
||||
|
||||

|
||||
|
||||
A 30% keyboard with ISO enter.
|
||||
|
||||
Keyboard Maintainer: [Naoto Takai](https://github.com/takai)
|
||||
Hardware Supported: The Nomu30 PCBs, ProMicro supported
|
||||
Hardware Availability: https://keys.recompile.net/projects/nomu30/
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make nomu30: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).
|
81
keyboards/nomu30/rules.mk
Normal file
81
keyboards/nomu30/rules.mk
Normal file
@@ -0,0 +1,81 @@
|
||||
# MCU name
|
||||
#MCU = at90usb1286
|
||||
MCU = atmega32u4
|
||||
|
||||
# Processor frequency.
|
||||
# This will define a symbol, F_CPU, in all source code files equal to the
|
||||
# processor frequency in Hz. You can then use this symbol in your source code to
|
||||
# calculate timings. Do NOT tack on a 'UL' at the end, this will be done
|
||||
# automatically to create a 32-bit value in your source code.
|
||||
#
|
||||
# This will be an integer division of F_USB below, as it is sourced by
|
||||
# F_USB after it has run through any CPU prescalers. Note that this value
|
||||
# does not *change* the processor frequency - it should merely be updated to
|
||||
# reflect the processor speed set externally so that the code can use accurate
|
||||
# software delays.
|
||||
F_CPU = 16000000
|
||||
|
||||
|
||||
#
|
||||
# LUFA specific
|
||||
#
|
||||
# Target architecture (see library "Board Types" documentation).
|
||||
ARCH = AVR8
|
||||
|
||||
# Input clock frequency.
|
||||
# This will define a symbol, F_USB, in all source code files equal to the
|
||||
# input clock frequency (before any prescaling is performed) in Hz. This value may
|
||||
# differ from F_CPU if prescaling is used on the latter, and is required as the
|
||||
# raw input clock is fed directly to the PLL sections of the AVR for high speed
|
||||
# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL'
|
||||
# at the end, this will be done automatically to create a 32-bit value in your
|
||||
# source code.
|
||||
#
|
||||
# If no clock division is performed on the input clock inside the AVR (via the
|
||||
# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU.
|
||||
F_USB = $(F_CPU)
|
||||
|
||||
# Interrupt driven control endpoint task(+60)
|
||||
OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
|
||||
|
||||
|
||||
# Bootloader selection
|
||||
# Teensy halfkay
|
||||
# Pro Micro caterina
|
||||
# Atmel DFU atmel-dfu
|
||||
# LUFA DFU lufa-dfu
|
||||
# QMK DFU qmk-dfu
|
||||
# atmega32a bootloadHID
|
||||
BOOTLOADER = caterina
|
||||
|
||||
|
||||
# If you don't know the bootloader type, then you can specify the
|
||||
# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line
|
||||
# Teensy halfKay 512
|
||||
# Teensy++ halfKay 1024
|
||||
# Atmel DFU loader 4096
|
||||
# LUFA bootloader 4096
|
||||
# USBaspLoader 2048
|
||||
# OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
||||
|
||||
|
||||
# Build Options
|
||||
# change yes to no to disable
|
||||
#
|
||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000)
|
||||
MOUSEKEY_ENABLE = no # Mouse keys(+4700)
|
||||
EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
|
||||
CONSOLE_ENABLE = no # Console for debug(+400)
|
||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||
NKRO_ENABLE = no # USB Nkey Rollover
|
||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality on B7 by default
|
||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||
MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
|
||||
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
|
||||
HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400)
|
@@ -60,4 +60,6 @@
|
||||
|
||||
#define KEYMAP LAYOUT_plaid_grid
|
||||
#define LAYOUT_ortho_4x12 LAYOUT_plaid_grid
|
||||
#define LAYOUT_planck_mit LAYOUT_plaid_mit
|
||||
#define LAYOUT_kc_ortho_4x12 KC_KEYMAP
|
||||
#define KC_LAYOUT_ortho_4x12 KC_KEYMAP
|
||||
|
@@ -97,5 +97,5 @@ NO_UART = yes
|
||||
NO_SUSPEND_POWER_DOWN = yes
|
||||
|
||||
|
||||
LAYOUTS = ortho_4x12 planck_mit planck_grid
|
||||
LAYOUTS = ortho_4x12 planck_mit
|
||||
LAYOUTS_HAS_RGB = no
|
||||
|
@@ -4,6 +4,7 @@
|
||||
float mushroom[][2] = SONG(MARIO_MUSHROOM);
|
||||
#endif
|
||||
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
|
||||
// Complex Tapdance hoopla
|
||||
@@ -26,7 +27,8 @@ enum {
|
||||
X_AT_FUN = 0,
|
||||
RSHIFT,
|
||||
LSHIFT,
|
||||
TD_S
|
||||
TD_S,
|
||||
SLASH
|
||||
};
|
||||
|
||||
int cur_dance (qk_tap_dance_state_t *state);
|
||||
@@ -110,7 +112,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
/* Programmer Dvorak */
|
||||
[_PDVORAK] = LAYOUT_planck_grid(
|
||||
KC_GESC, KC_SCOLON, KC_COMMA, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
|
||||
KC_LAST, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, TD(TD_S), KC_SLASH,
|
||||
KC_LAST, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, TD(TD_S), TD(SLASH),
|
||||
TD(LSHIFT), KC_QUOT, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, TD(RSHIFT),
|
||||
TD(X_AT_FUN), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, ALT_TAB, KC_SPACE, KC_ENTER, MT(MOD_LCTL | MOD_LSFT, KC_LGUI), KC_PGUP, KC_PGDN, LT(_LOWER, KC_PLUS)
|
||||
),
|
||||
@@ -245,6 +247,8 @@ qk_tap_dance_action_t tap_dance_actions[] = {
|
||||
[LSHIFT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lshift_finished, lshift_reset),
|
||||
[RSHIFT] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, rshift_finished, rshift_reset),
|
||||
[TD_S] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, s_finished, s_reset),
|
||||
[SLASH] = ACTION_TAP_DANCE_DOUBLE(KC_SLASH, KC_BSLASH),
|
||||
|
||||
};
|
||||
|
||||
void shutdown_user(void) { clear_keyboard(); }
|
||||
|
@@ -1,12 +1,17 @@
|
||||
# Programmer Dvorak for the Planck (Light)
|
||||
|
||||
|
||||
| Magic | | UPPER |
|
||||
|----------|---------|-------|
|
||||
| | DEFAULT | |
|
||||
| FUNCTION | | LOWER |
|
||||
| | | | | | | | | | | | |
|
||||
|----------|---------|-------|-----|------|-------|-------|------|------|------|------|------|
|
||||
| GRAVE_ESC | ; [u]; [l]7 | , [u]% [l]5 | . [l]3 | p [l]1 | y [u]= [l]9 | f [u]* [l]0 | g [l]2 | c [l]4 | r [u]! [l]6 | l [u]# [l]8 | BKSP |
|
||||
| LCTRL [TD]!$ | a | o | e | u | i | d | h | t | n | s [TD]- _ | / [TD]\ |
|
||||
| LSHFT [TD]( [ { | ' | q | j | k | x | b | m | w | v | z | LSHFT [TD]) ] } |
|
||||
| @ [TD]UPPER FUN RESET | LEFT | DOWN | UP | RIGHT | ALT_TAB | SPACE | ENTER | LGUI | PGUP | PGDOWN | = [TD]LOWER |
|
||||
|
||||
# Layout notes
|
||||
- [u] = UPPER symbol
|
||||
- [l] = LOWER symbol
|
||||
- [TD] = Tap Dances
|
||||
- ALT_TAB = cycle through windows as long as you keep tapping it keeps alt tabbing
|
||||
- LAST = "!$" = is useful for using the last parm in bash/zsh
|
||||
- More to come
|
||||
|
@@ -2,8 +2,25 @@
|
||||
|
||||
//QMK DFU settings (ProMicro boards)
|
||||
// set top left key as bootloader mode escape key on Gherkin
|
||||
#if defined(KEYBOARD_gherkin)
|
||||
#if defined(KEYBOARD_40percentclub_gherkin) && !defined(FLIP)
|
||||
#define QMK_LED B0
|
||||
#define QMK_ESC_OUTPUT B4 // usually COL
|
||||
#define QMK_ESC_INPUT F7 // usually ROW
|
||||
#endif
|
||||
|
||||
//change gherkin orientation (i.e. move USB port from right side to left side)
|
||||
#if defined(KEYBOARD_40percentclub_gherkin) && defined(FLIP)
|
||||
//need to fix QMKdfu setting:
|
||||
#define QMK_ESC_OUTPUT B6 // usually COL
|
||||
#define QMK_ESC_INPUT D0 // usually ROW
|
||||
#define QMK_LED B0
|
||||
|
||||
//need to undefine standard 4x4 array before defining alternate ProMicro array
|
||||
#undef MATRIX_ROW_PINS
|
||||
#undef MATRIX_COL_PINS
|
||||
//standard config:
|
||||
//#define MATRIX_ROW_PINS { F7, B1, B3, B2, B6 }
|
||||
//#define MATRIX_COL_PINS { B4, E6, D7, C6, D4, D0 }
|
||||
#define MATRIX_ROW_PINS { B6, B2, B3, B1, F7 }
|
||||
#define MATRIX_COL_PINS { D0, D4, C6, D7, E6, B4 }
|
||||
#endif
|
||||
|
@@ -26,4 +26,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
_______________Gherkin_ETC_2_______________
|
||||
),
|
||||
|
||||
[_FN] = LAYOUT_ortho_3x10_wrapper(
|
||||
_______________Gherkin_FN_0________________,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
};
|
||||
|
@@ -1,4 +1,4 @@
|
||||

|
||||

|
||||
# Gherkin Wanleg Layout
|
||||
This is the layout I came up with to preserve a standard QWERTY 104 key ANSI layout as much as possible, in as few layers as possible for a 30 key board.
|
||||
Here are the two Tap Dance keys I've set up for this board:
|
||||
@@ -47,9 +47,9 @@ The instructions below have been adapted from https://www.reddit.com/r/olkb/comm
|
||||
| Arduino | ProMicro |
|
||||
| --- | --- |
|
||||
| 10 | RST |
|
||||
| 11 | 16 |
|
||||
| 12 | 14 |
|
||||
| 13 | 15 |
|
||||
| 11 (MOSI) | 16 |
|
||||
| 12 (MISO) | 14 |
|
||||
| 13 (SCK) | 15 |
|
||||
| GND | GND |
|
||||
| 5V | VCC |
|
||||
|
||||
|
@@ -1,3 +1 @@
|
||||
SWAP_HANDS_ENABLE = no
|
||||
|
||||
BOOTLOADER = qmk-dfu
|
@@ -20,6 +20,13 @@
|
||||
#define EE_HANDS
|
||||
#endif
|
||||
|
||||
// set top left key as bootloader mode escape key on Nori
|
||||
#if defined(KEYBOARD_40percentclub_nori)
|
||||
#define QMK_LED B0
|
||||
#define QMK_ESC_OUTPUT F4 // usually COL
|
||||
#define QMK_ESC_INPUT D3 // usually ROW
|
||||
#endif
|
||||
|
||||
// set top left key as bootloader mode escape key on 4x4 48key layout
|
||||
#if defined(KEYBOARD_40percentclub_4x4) && !defined(PRO_MICRO)
|
||||
#define QMK_LED B0
|
||||
|
@@ -21,7 +21,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
_____________DIRECTIONS_Row__2_____________,
|
||||
_______, _______, ONEHAND, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
#elif defined(KEYBOARD_40percentclub_4x4)
|
||||
#elif defined(KEYBOARD_40percentclub_4x4) || defined(KEYBOARD_40percentclub_nori)
|
||||
[_GK] = LAYOUT_ortho_4x12_wrapper(
|
||||
_______________GherkinLike_0_______________,
|
||||
_______________GherkinLike_1_______________,
|
||||
@@ -36,14 +36,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
_______________NUMPAD_Row__3_______________
|
||||
),
|
||||
|
||||
#elif defined(KEYBOARD_jj40)
|
||||
[_GK] = LAYOUT_ortho_4x12_wrapper(
|
||||
_______________GherkinLike_0_______________,
|
||||
_______________GherkinLike_1_______________,
|
||||
_______________GherkinLike_2_______________,
|
||||
TD(RST_TAP_DANCE), BL_TOGG, BL_STEP, BL_BRTG, NUMBER, ETCETERA, KC_SPC,DIRECTION, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL
|
||||
),
|
||||
|
||||
#else
|
||||
[_GK] = LAYOUT_ortho_4x12_wrapper(
|
||||
_______________GherkinLike_0_______________,
|
||||
@@ -94,4 +86,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
______________ETCETERA_Row__3______________
|
||||
),
|
||||
|
||||
[_FN] = LAYOUT_ortho_4x12_wrapper(
|
||||
_______, _______________Gherkin_FN_0________________, _______,
|
||||
_______, _______________Gherkin_FN_0________________, _______,
|
||||
_______, _______________Gherkin_FN_0________________, _______,
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
};
|
||||
|
@@ -7,4 +7,9 @@ endif
|
||||
|
||||
ifeq ($(strip $(KEYBOARD)), planck/rev6)
|
||||
AUDIO_ENABLE = yes
|
||||
endif
|
||||
|
||||
#disable RGB on version 1 of jj40 keyboard (does not exist)
|
||||
ifeq ($(strip $(KEYBOARD)), jj40)
|
||||
RGBLIGHT_ENABLE = no
|
||||
endif
|
@@ -11,7 +11,7 @@
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, K3d, K3e \
|
||||
) \
|
||||
LAYOUT_ortho_5x15_wrapper( \
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NLCK, QWERTY, GHERKIN, FUNCTION, \
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, QWERTY, GHERKIN, FUNCTION, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NLCK, \
|
||||
K00, K01, K02, K03, K04, K05, K0c, K0d, K0e, K06, K07, K08, K09, K0a, K0b, \
|
||||
K10, K11, K12, K13, K14, K15, K1c, K1d, K1e, K16, K17, K18, K19, K1a, K1b, \
|
||||
K20, K21, K22, K23, K24, K25, K2c, K2d, K2e, K26, K27, K28, K29, K2a, K2b, \
|
||||
@@ -26,7 +26,7 @@
|
||||
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3a, K3b, K3c, K3d, K3e \
|
||||
) \
|
||||
LAYOUT_ortho_5x15_wrapper( \
|
||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NLCK, QWERTY, GHERKIN, FUNCTION, \
|
||||
QWERTY, GHERKIN, FUNCTION, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_NLCK, \
|
||||
K0c, K0d, K0e, K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0a, K0b, \
|
||||
K1c, K1d, K1e, K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1a, K1b, \
|
||||
K2c, K2d, K2e, K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2a, K2b, \
|
||||
@@ -110,7 +110,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
),
|
||||
#endif
|
||||
#else
|
||||
/* Gherkin
|
||||
/* Gherkin-Like
|
||||
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||
* | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | NUMLOCK| qwerty | gherkin| FN |
|
||||
* |-----------------------------------------------------------------------------------------------------------+--------+--------+--------|
|
||||
@@ -190,7 +190,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
________________SUPRA_Row_3________________, _______, _______, _______
|
||||
),
|
||||
|
||||
/* Gherkin Numbers
|
||||
/* Gherkin-Like Numbers
|
||||
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------------------------------------------------------|--------+-----------------|
|
||||
@@ -210,7 +210,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
_______________NUMBERS_Row_3_______________, _______, _______, _______
|
||||
),
|
||||
|
||||
/* Gherkin Et Cetera
|
||||
/* Gherkin-Like Et Cetera
|
||||
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------------------------------------------------------|--------+-----------------|
|
||||
@@ -230,7 +230,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
______________ETCETERA_Row__3______________, _______, _______, _______
|
||||
),
|
||||
|
||||
/* Gherkin Directional Keys
|
||||
/* Gherkin-Like Directional Keys
|
||||
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* |-----------------------------------------------------------------------------------------------------------|--------+-----------------|
|
||||
@@ -250,25 +250,25 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
_____________DIRECTIONS_Row__3_____________, _______, _______, _______
|
||||
),
|
||||
|
||||
|
||||
/* FUNCTION
|
||||
/* Gherkin FN/Lighting
|
||||
* .--------------------------------------------------------------------------------------------------------------------------------------.
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
|
||||
* | | | | | | | | | | | | | | | |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | CAP LK | MS BT5 | MS BT4 | MS BT3 | MS BT2 | SLOW M | FAST M | NEXT | VOL+ | VOL- | PLAY | | | | WHEEL+ |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | RGB TG | RGB MD | RGB HI | RGB HD | RGB SI | RGB SD | RGB VI | RGB VD | BL TOG | BL INC | BL DEC | | | MOUS U | WHEEL- |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | | | | | | | MS BT1 | | | | | | MOUS L | MOUS D | MOUS R |
|
||||
* |-----------------------------------------------------------------------------------------------------------|--------+-----------------|
|
||||
* | | | | |
|
||||
* | |--------+--------+--------|
|
||||
* | 4x12 FN/Lighting LAYOUT | | | |
|
||||
* | |--------+--------+--------|
|
||||
* | | | | |
|
||||
* | |--------+--------+--------|
|
||||
* | | | | |
|
||||
* '--------------------------------------------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
|
||||
[_FN] = LAYOUT_75_base_wrapper(
|
||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||
KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, _______, _______, KC_WH_U,
|
||||
RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, _______, _______, KC_MS_U, KC_WH_D,
|
||||
_______, _______, _______, _______, _______, _______, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R
|
||||
_______, _______________Gherkin_FN_0________________, _______, _______, _______, _______,
|
||||
_______, _______________Gherkin_FN_1________________, _______, _______, _______, _______,
|
||||
_______, _______________Gherkin_FN_2________________, _______, _______, _______, _______,
|
||||
_______, _________________BLANK_50__________________, _______, _______, _______, _______
|
||||
),
|
||||
|
||||
};
|
||||
|
@@ -22,8 +22,8 @@
|
||||
RGB hsv_to_rgb( HSV hsv )
|
||||
{
|
||||
RGB rgb;
|
||||
uint8_t region, p, q, t;
|
||||
uint16_t h, s, v, remainder;
|
||||
uint8_t region, remainder, p, q, t;
|
||||
uint16_t h, s, v;
|
||||
|
||||
if ( hsv.s == 0 )
|
||||
{
|
||||
@@ -37,8 +37,8 @@ RGB hsv_to_rgb( HSV hsv )
|
||||
s = hsv.s;
|
||||
v = hsv.v;
|
||||
|
||||
region = h / 43;
|
||||
remainder = (h - (region * 43)) * 6;
|
||||
region = h * 6 / 255;
|
||||
remainder = (h * 2 - region * 85) * 3;
|
||||
|
||||
p = (v * (255 - s)) >> 8;
|
||||
q = (v * (255 - ((s * remainder) >> 8))) >> 8;
|
||||
@@ -46,6 +46,7 @@ RGB hsv_to_rgb( HSV hsv )
|
||||
|
||||
switch ( region )
|
||||
{
|
||||
case 6:
|
||||
case 0:
|
||||
rgb.r = v;
|
||||
rgb.g = t;
|
||||
|
@@ -19,38 +19,28 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#ifdef USE_CIE1931_CURVE
|
||||
// Lightness curve using the CIE 1931 lightness formula
|
||||
//Generated by the python script provided in http://jared.geek.nz/2013/feb/linear-led-pwm
|
||||
const uint8_t CIE1931_CURVE[] PROGMEM = {
|
||||
0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
|
||||
2, 2, 2, 3, 3, 3, 3, 3, 3, 3,
|
||||
3, 4, 4, 4, 4, 4, 4, 5, 5, 5,
|
||||
5, 5, 6, 6, 6, 6, 6, 7, 7, 7,
|
||||
7, 8, 8, 8, 8, 9, 9, 9, 10, 10,
|
||||
10, 10, 11, 11, 11, 12, 12, 12, 13, 13,
|
||||
13, 14, 14, 15, 15, 15, 16, 16, 17, 17,
|
||||
17, 18, 18, 19, 19, 20, 20, 21, 21, 22,
|
||||
22, 23, 23, 24, 24, 25, 25, 26, 26, 27,
|
||||
28, 28, 29, 29, 30, 31, 31, 32, 32, 33,
|
||||
34, 34, 35, 36, 37, 37, 38, 39, 39, 40,
|
||||
41, 42, 43, 43, 44, 45, 46, 47, 47, 48,
|
||||
49, 50, 51, 52, 53, 54, 54, 55, 56, 57,
|
||||
58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
|
||||
68, 70, 71, 72, 73, 74, 75, 76, 77, 79,
|
||||
80, 81, 82, 83, 85, 86, 87, 88, 90, 91,
|
||||
92, 94, 95, 96, 98, 99, 100, 102, 103, 105,
|
||||
106, 108, 109, 110, 112, 113, 115, 116, 118, 120,
|
||||
121, 123, 124, 126, 128, 129, 131, 132, 134, 136,
|
||||
138, 139, 141, 143, 145, 146, 148, 150, 152, 154,
|
||||
155, 157, 159, 161, 163, 165, 167, 169, 171, 173,
|
||||
175, 177, 179, 181, 183, 185, 187, 189, 191, 193,
|
||||
196, 198, 200, 202, 204, 207, 209, 211, 214, 216,
|
||||
218, 220, 223, 225, 228, 230, 232, 235, 237, 240,
|
||||
242, 245, 247, 250, 252, 255,
|
||||
};
|
||||
const uint8_t CIE1931_CURVE[256] PROGMEM = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
|
||||
1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
|
||||
3, 3, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6,
|
||||
6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, 10, 11,
|
||||
11, 11, 12, 12, 12, 13, 13, 13, 14, 14, 14, 15, 15, 16, 16, 16,
|
||||
17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24,
|
||||
25, 25, 26, 26, 27, 28, 28, 29, 29, 30, 31, 31, 32, 33, 33, 34,
|
||||
35, 35, 36, 37, 37, 38, 39, 40, 40, 41, 42, 43, 44, 44, 45, 46,
|
||||
47, 48, 49, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
|
||||
62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 75, 76, 77, 78,
|
||||
79, 80, 82, 83, 84, 85, 87, 88, 89, 90, 92, 93, 94, 96, 97, 99,
|
||||
100, 101, 103, 104, 106, 107, 108, 110, 111, 113, 114, 116, 118, 119, 121, 122,
|
||||
124, 125, 127, 129, 130, 132, 134, 135, 137, 139, 141, 142, 144, 146, 148, 149,
|
||||
151, 153, 155, 157, 159, 161, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180,
|
||||
182, 185, 187, 189, 191, 193, 195, 197, 200, 202, 204, 206, 208, 211, 213, 215,
|
||||
218, 220, 222, 225, 227, 230, 232, 234, 237, 239, 242, 244, 247, 249, 252, 255
|
||||
};
|
||||
#endif
|
||||
|
||||
#ifdef USE_LED_BREATHING_TABLE
|
||||
const uint8_t LED_BREATHING_TABLE[] PROGMEM = {
|
||||
const uint8_t LED_BREATHING_TABLE[256] PROGMEM = {
|
||||
0, 0, 0, 0, 1, 1, 1, 2, 2, 3, 4, 5, 5, 6, 7, 9,
|
||||
10, 11, 12, 14, 15, 17, 18, 20, 21, 23, 25, 27, 29, 31, 33, 35,
|
||||
37, 40, 42, 44, 47, 49, 52, 54, 57, 59, 62, 65, 67, 70, 73, 76,
|
||||
|
@@ -15,7 +15,8 @@ bool rgb_matrix_solid_reactive(effect_params_t* params) {
|
||||
for (uint8_t i = led_min; i < led_max; i++) {
|
||||
RGB_MATRIX_TEST_LED_FLAGS();
|
||||
uint16_t tick = max_tick;
|
||||
for(uint8_t j = 0; j < g_last_hit_tracker.count; j++) {
|
||||
// Reverse search to find most recent key hit
|
||||
for (int8_t j = g_last_hit_tracker.count - 1; j >= 0; j--) {
|
||||
if (g_last_hit_tracker.index[j] == i && g_last_hit_tracker.tick[j] < tick) {
|
||||
tick = g_last_hit_tracker.tick[j];
|
||||
break;
|
||||
|
@@ -14,7 +14,8 @@ bool rgb_matrix_solid_reactive_simple(effect_params_t* params) {
|
||||
for (uint8_t i = led_min; i < led_max; i++) {
|
||||
RGB_MATRIX_TEST_LED_FLAGS();
|
||||
uint16_t tick = max_tick;
|
||||
for(uint8_t j = 0; j < g_last_hit_tracker.count; j++) {
|
||||
// Reverse search to find most recent key hit
|
||||
for (int8_t j = g_last_hit_tracker.count - 1; j >= 0; j--) {
|
||||
if (g_last_hit_tracker.index[j] == i && g_last_hit_tracker.tick[j] < tick) {
|
||||
tick = g_last_hit_tracker.tick[j];
|
||||
break;
|
||||
|
@@ -99,12 +99,12 @@ const rgb_matrix_driver_t rgb_matrix_driver = {
|
||||
|
||||
#elif defined(WS2812)
|
||||
|
||||
extern LED_TYPE led[RGBLED_NUM];
|
||||
extern LED_TYPE led[DRIVER_LED_TOTAL];
|
||||
|
||||
static void flush( void )
|
||||
{
|
||||
// Assumes use of RGB_DI_PIN
|
||||
ws2812_setleds(led, RGBLED_NUM);
|
||||
ws2812_setleds(led, DRIVER_LED_TOTAL);
|
||||
}
|
||||
|
||||
static void init( void )
|
||||
|
@@ -28,8 +28,10 @@
|
||||
#include "progmem.h"
|
||||
#include "timer.h"
|
||||
#include "rgblight.h"
|
||||
#include "color.h"
|
||||
#include "debug.h"
|
||||
#include "led_tables.h"
|
||||
#include "lib/lib8tion/lib8tion.h"
|
||||
#ifdef VELOCIKEY_ENABLE
|
||||
#include "velocikey.h"
|
||||
#endif
|
||||
@@ -74,16 +76,13 @@ static inline int is_static_effect(uint8_t mode) {
|
||||
return memchr(static_effect_table, mode, sizeof(static_effect_table)) != NULL;
|
||||
}
|
||||
|
||||
#define MIN(a,b) (((a)<(b))?(a):(b))
|
||||
#define MAX(a,b) (((a)>(b))?(a):(b))
|
||||
|
||||
#ifdef RGBLIGHT_LED_MAP
|
||||
const uint8_t led_map[] PROGMEM = RGBLIGHT_LED_MAP;
|
||||
#endif
|
||||
|
||||
#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
__attribute__ ((weak))
|
||||
const uint16_t RGBLED_GRADIENT_RANGES[] PROGMEM = {360, 240, 180, 120, 90};
|
||||
const uint8_t RGBLED_GRADIENT_RANGES[] PROGMEM = {255, 170, 127, 85, 64};
|
||||
#endif
|
||||
|
||||
rgblight_config_t rgblight_config;
|
||||
@@ -109,59 +108,10 @@ void rgblight_set_clipping_range(uint8_t start_pos, uint8_t num_leds) {
|
||||
}
|
||||
|
||||
|
||||
void sethsv(uint16_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) {
|
||||
uint8_t r = 0, g = 0, b = 0, base, color;
|
||||
|
||||
if (val > RGBLIGHT_LIMIT_VAL) {
|
||||
val=RGBLIGHT_LIMIT_VAL; // limit the val
|
||||
}
|
||||
|
||||
if (sat == 0) { // Acromatic color (gray). Hue doesn't mind.
|
||||
r = val;
|
||||
g = val;
|
||||
b = val;
|
||||
} else {
|
||||
base = ((255 - sat) * val) >> 8;
|
||||
color = (val - base) * (hue % 60) / 60;
|
||||
|
||||
switch (hue / 60) {
|
||||
case 0:
|
||||
r = val;
|
||||
g = base + color;
|
||||
b = base;
|
||||
break;
|
||||
case 1:
|
||||
r = val - color;
|
||||
g = val;
|
||||
b = base;
|
||||
break;
|
||||
case 2:
|
||||
r = base;
|
||||
g = val;
|
||||
b = base + color;
|
||||
break;
|
||||
case 3:
|
||||
r = base;
|
||||
g = val - color;
|
||||
b = val;
|
||||
break;
|
||||
case 4:
|
||||
r = base + color;
|
||||
g = base;
|
||||
b = val;
|
||||
break;
|
||||
case 5:
|
||||
r = val;
|
||||
g = base;
|
||||
b = val - color;
|
||||
break;
|
||||
}
|
||||
}
|
||||
r = pgm_read_byte(&CIE1931_CURVE[r]);
|
||||
g = pgm_read_byte(&CIE1931_CURVE[g]);
|
||||
b = pgm_read_byte(&CIE1931_CURVE[b]);
|
||||
|
||||
setrgb(r, g, b, led1);
|
||||
void sethsv(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1) {
|
||||
HSV hsv = { hue, sat, val > RGBLIGHT_LIMIT_VAL ? RGBLIGHT_LIMIT_VAL : val };
|
||||
RGB rgb = hsv_to_rgb(hsv);
|
||||
setrgb(rgb.r, rgb.g, rgb.b, led1);
|
||||
}
|
||||
|
||||
void setrgb(uint8_t r, uint8_t g, uint8_t b, LED_TYPE *led1) {
|
||||
@@ -180,24 +130,9 @@ void rgblight_check_config(void) {
|
||||
rgblight_config.mode = RGBLIGHT_MODES;
|
||||
}
|
||||
|
||||
if (rgblight_config.hue < 0) {
|
||||
rgblight_config.hue = 0;
|
||||
} else if (rgblight_config.hue > 360) {
|
||||
rgblight_config.hue %= 360;
|
||||
}
|
||||
|
||||
if (rgblight_config.sat < 0) {
|
||||
rgblight_config.sat = 0;
|
||||
} else if (rgblight_config.sat > 255) {
|
||||
rgblight_config.sat = 255;
|
||||
}
|
||||
|
||||
if (rgblight_config.val < 0) {
|
||||
rgblight_config.val = 0;
|
||||
} else if (rgblight_config.val > RGBLIGHT_LIMIT_VAL) {
|
||||
if (rgblight_config.val > RGBLIGHT_LIMIT_VAL) {
|
||||
rgblight_config.val = RGBLIGHT_LIMIT_VAL;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
uint32_t eeconfig_read_rgblight(void) {
|
||||
@@ -220,7 +155,7 @@ void eeconfig_update_rgblight_default(void) {
|
||||
rgblight_config.enable = 1;
|
||||
rgblight_config.mode = RGBLIGHT_MODE_STATIC_LIGHT;
|
||||
rgblight_config.hue = 0;
|
||||
rgblight_config.sat = 255;
|
||||
rgblight_config.sat = UINT8_MAX;
|
||||
rgblight_config.val = RGBLIGHT_LIMIT_VAL;
|
||||
rgblight_config.speed = 0;
|
||||
RGBLIGHT_SPLIT_SET_CHANGE_MODEHSVS;
|
||||
@@ -442,23 +377,8 @@ void rgblight_disable_noeeprom(void) {
|
||||
rgblight_set();
|
||||
}
|
||||
|
||||
|
||||
// Deals with the messy details of incrementing an integer
|
||||
static uint8_t increment( uint8_t value, uint8_t step, uint8_t min, uint8_t max ) {
|
||||
int16_t new_value = value;
|
||||
new_value += step;
|
||||
return MIN( MAX( new_value, min ), max );
|
||||
}
|
||||
|
||||
static uint8_t decrement( uint8_t value, uint8_t step, uint8_t min, uint8_t max ) {
|
||||
int16_t new_value = value;
|
||||
new_value -= step;
|
||||
return MIN( MAX( new_value, min ), max );
|
||||
}
|
||||
|
||||
void rgblight_increase_hue_helper(bool write_to_eeprom) {
|
||||
uint16_t hue;
|
||||
hue = (rgblight_config.hue+RGBLIGHT_HUE_STEP) % 360;
|
||||
uint8_t hue = rgblight_config.hue + RGBLIGHT_HUE_STEP;
|
||||
rgblight_sethsv_eeprom_helper(hue, rgblight_config.sat, rgblight_config.val, write_to_eeprom);
|
||||
}
|
||||
void rgblight_increase_hue_noeeprom(void) {
|
||||
@@ -468,12 +388,7 @@ void rgblight_increase_hue(void) {
|
||||
rgblight_increase_hue_helper(true);
|
||||
}
|
||||
void rgblight_decrease_hue_helper(bool write_to_eeprom) {
|
||||
uint16_t hue;
|
||||
if (rgblight_config.hue-RGBLIGHT_HUE_STEP < 0) {
|
||||
hue = (rgblight_config.hue + 360 - RGBLIGHT_HUE_STEP) % 360;
|
||||
} else {
|
||||
hue = (rgblight_config.hue - RGBLIGHT_HUE_STEP) % 360;
|
||||
}
|
||||
uint8_t hue = rgblight_config.hue - RGBLIGHT_HUE_STEP;
|
||||
rgblight_sethsv_eeprom_helper(hue, rgblight_config.sat, rgblight_config.val, write_to_eeprom);
|
||||
}
|
||||
void rgblight_decrease_hue_noeeprom(void) {
|
||||
@@ -483,12 +398,7 @@ void rgblight_decrease_hue(void) {
|
||||
rgblight_decrease_hue_helper(true);
|
||||
}
|
||||
void rgblight_increase_sat_helper(bool write_to_eeprom) {
|
||||
uint8_t sat;
|
||||
if (rgblight_config.sat + RGBLIGHT_SAT_STEP > 255) {
|
||||
sat = 255;
|
||||
} else {
|
||||
sat = rgblight_config.sat + RGBLIGHT_SAT_STEP;
|
||||
}
|
||||
uint8_t sat = qadd8(rgblight_config.sat, RGBLIGHT_SAT_STEP);
|
||||
rgblight_sethsv_eeprom_helper(rgblight_config.hue, sat, rgblight_config.val, write_to_eeprom);
|
||||
}
|
||||
void rgblight_increase_sat_noeeprom(void) {
|
||||
@@ -498,12 +408,7 @@ void rgblight_increase_sat(void) {
|
||||
rgblight_increase_sat_helper(true);
|
||||
}
|
||||
void rgblight_decrease_sat_helper(bool write_to_eeprom) {
|
||||
uint8_t sat;
|
||||
if (rgblight_config.sat - RGBLIGHT_SAT_STEP < 0) {
|
||||
sat = 0;
|
||||
} else {
|
||||
sat = rgblight_config.sat - RGBLIGHT_SAT_STEP;
|
||||
}
|
||||
uint8_t sat = qsub8(rgblight_config.sat, RGBLIGHT_SAT_STEP);
|
||||
rgblight_sethsv_eeprom_helper(rgblight_config.hue, sat, rgblight_config.val, write_to_eeprom);
|
||||
}
|
||||
void rgblight_decrease_sat_noeeprom(void) {
|
||||
@@ -513,12 +418,7 @@ void rgblight_decrease_sat(void) {
|
||||
rgblight_decrease_sat_helper(true);
|
||||
}
|
||||
void rgblight_increase_val_helper(bool write_to_eeprom) {
|
||||
uint8_t val;
|
||||
if (rgblight_config.val + RGBLIGHT_VAL_STEP > RGBLIGHT_LIMIT_VAL) {
|
||||
val = RGBLIGHT_LIMIT_VAL;
|
||||
} else {
|
||||
val = rgblight_config.val + RGBLIGHT_VAL_STEP;
|
||||
}
|
||||
uint8_t val = qadd8(rgblight_config.val, RGBLIGHT_VAL_STEP);
|
||||
rgblight_sethsv_eeprom_helper(rgblight_config.hue, rgblight_config.sat, val, write_to_eeprom);
|
||||
}
|
||||
void rgblight_increase_val_noeeprom(void) {
|
||||
@@ -528,12 +428,7 @@ void rgblight_increase_val(void) {
|
||||
rgblight_increase_val_helper(true);
|
||||
}
|
||||
void rgblight_decrease_val_helper(bool write_to_eeprom) {
|
||||
uint8_t val;
|
||||
if (rgblight_config.val - RGBLIGHT_VAL_STEP < 0) {
|
||||
val = 0;
|
||||
} else {
|
||||
val = rgblight_config.val - RGBLIGHT_VAL_STEP;
|
||||
}
|
||||
uint8_t val = qsub8(rgblight_config.val, RGBLIGHT_VAL_STEP);
|
||||
rgblight_sethsv_eeprom_helper(rgblight_config.hue, rgblight_config.sat, val, write_to_eeprom);
|
||||
}
|
||||
void rgblight_decrease_val_noeeprom(void) {
|
||||
@@ -543,18 +438,20 @@ void rgblight_decrease_val(void) {
|
||||
rgblight_decrease_val_helper(true);
|
||||
}
|
||||
void rgblight_increase_speed(void) {
|
||||
rgblight_config.speed = increment( rgblight_config.speed, 1, 0, 3 );
|
||||
if (rgblight_config.speed < 3)
|
||||
rgblight_config.speed++;
|
||||
//RGBLIGHT_SPLIT_SET_CHANGE_HSVS; // NEED?
|
||||
eeconfig_update_rgblight(rgblight_config.raw);//EECONFIG needs to be increased to support this
|
||||
}
|
||||
|
||||
void rgblight_decrease_speed(void) {
|
||||
rgblight_config.speed = decrement( rgblight_config.speed, 1, 0, 3 );
|
||||
if (rgblight_config.speed > 0)
|
||||
rgblight_config.speed--;
|
||||
//RGBLIGHT_SPLIT_SET_CHANGE_HSVS; // NEED??
|
||||
eeconfig_update_rgblight(rgblight_config.raw);//EECONFIG needs to be increased to support this
|
||||
}
|
||||
|
||||
void rgblight_sethsv_noeeprom_old(uint16_t hue, uint8_t sat, uint8_t val) {
|
||||
void rgblight_sethsv_noeeprom_old(uint8_t hue, uint8_t sat, uint8_t val) {
|
||||
if (rgblight_config.enable) {
|
||||
LED_TYPE tmp_led;
|
||||
sethsv(hue, sat, val, &tmp_led);
|
||||
@@ -563,7 +460,7 @@ void rgblight_sethsv_noeeprom_old(uint16_t hue, uint8_t sat, uint8_t val) {
|
||||
}
|
||||
}
|
||||
|
||||
void rgblight_sethsv_eeprom_helper(uint16_t hue, uint8_t sat, uint8_t val, bool write_to_eeprom) {
|
||||
void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool write_to_eeprom) {
|
||||
if (rgblight_config.enable) {
|
||||
rgblight_status.base_mode = mode_base_table[rgblight_config.mode];
|
||||
if (rgblight_config.mode == RGBLIGHT_MODE_STATIC_LIGHT) {
|
||||
@@ -596,13 +493,22 @@ void rgblight_sethsv_eeprom_helper(uint16_t hue, uint8_t sat, uint8_t val, bool
|
||||
#ifdef RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
else if (rgblight_status.base_mode == RGBLIGHT_MODE_STATIC_GRADIENT) {
|
||||
// static gradient
|
||||
uint16_t _hue;
|
||||
uint8_t delta = rgblight_config.mode - rgblight_status.base_mode;
|
||||
int8_t direction = (delta % 2) ? -1 : 1;
|
||||
uint16_t range = pgm_read_word(&RGBLED_GRADIENT_RANGES[delta / 2]);
|
||||
bool direction = (delta % 2) == 0;
|
||||
#ifdef __AVR__
|
||||
// probably due to how pgm_read_word is defined for ARM, but the ARM compiler really hates this line
|
||||
uint8_t range = pgm_read_word(&RGBLED_GRADIENT_RANGES[delta / 2]);
|
||||
#else
|
||||
uint8_t range = RGBLED_GRADIENT_RANGES[delta / 2];
|
||||
#endif
|
||||
for (uint8_t i = 0; i < RGBLED_NUM; i++) {
|
||||
_hue = (range / RGBLED_NUM * i * direction + hue + 360) % 360;
|
||||
dprintf("rgblight rainbow set hsv: %u,%u,%d,%u\n", i, _hue, direction, range);
|
||||
uint8_t _hue = ((uint16_t)i * (uint16_t)range) / RGBLED_NUM;
|
||||
if (direction) {
|
||||
_hue = hue + _hue;
|
||||
} else {
|
||||
_hue = hue - _hue;
|
||||
}
|
||||
dprintf("rgblight rainbow set hsv: %d,%d,%d,%u\n", i, _hue, direction, range);
|
||||
sethsv(_hue, sat, val, (LED_TYPE *)&led[i]);
|
||||
}
|
||||
rgblight_set();
|
||||
@@ -628,15 +534,15 @@ void rgblight_sethsv_eeprom_helper(uint16_t hue, uint8_t sat, uint8_t val, bool
|
||||
}
|
||||
}
|
||||
|
||||
void rgblight_sethsv(uint16_t hue, uint8_t sat, uint8_t val) {
|
||||
void rgblight_sethsv(uint8_t hue, uint8_t sat, uint8_t val) {
|
||||
rgblight_sethsv_eeprom_helper(hue, sat, val, true);
|
||||
}
|
||||
|
||||
void rgblight_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val) {
|
||||
void rgblight_sethsv_noeeprom(uint8_t hue, uint8_t sat, uint8_t val) {
|
||||
rgblight_sethsv_eeprom_helper(hue, sat, val, false);
|
||||
}
|
||||
|
||||
uint16_t rgblight_get_hue(void) {
|
||||
uint8_t rgblight_get_hue(void) {
|
||||
return rgblight_config.hue;
|
||||
}
|
||||
|
||||
@@ -668,7 +574,7 @@ void rgblight_setrgb_at(uint8_t r, uint8_t g, uint8_t b, uint8_t index) {
|
||||
rgblight_set();
|
||||
}
|
||||
|
||||
void rgblight_sethsv_at(uint16_t hue, uint8_t sat, uint8_t val, uint8_t index) {
|
||||
void rgblight_sethsv_at(uint8_t hue, uint8_t sat, uint8_t val, uint8_t index) {
|
||||
if (!rgblight_config.enable) { return; }
|
||||
|
||||
LED_TYPE tmp_led;
|
||||
@@ -701,7 +607,7 @@ void rgblight_setrgb_range(uint8_t r, uint8_t g, uint8_t b, uint8_t start, uint8
|
||||
wait_ms(1);
|
||||
}
|
||||
|
||||
void rgblight_sethsv_range(uint16_t hue, uint8_t sat, uint8_t val, uint8_t start, uint8_t end) {
|
||||
void rgblight_sethsv_range(uint8_t hue, uint8_t sat, uint8_t val, uint8_t start, uint8_t end) {
|
||||
if (!rgblight_config.enable) { return; }
|
||||
|
||||
LED_TYPE tmp_led;
|
||||
@@ -717,11 +623,11 @@ void rgblight_setrgb_slave(uint8_t r, uint8_t g, uint8_t b) {
|
||||
rgblight_setrgb_range(r, g, b, (uint8_t) RGBLED_NUM/2, (uint8_t) RGBLED_NUM);
|
||||
}
|
||||
|
||||
void rgblight_sethsv_master(uint16_t hue, uint8_t sat, uint8_t val) {
|
||||
void rgblight_sethsv_master(uint8_t hue, uint8_t sat, uint8_t val) {
|
||||
rgblight_sethsv_range(hue, sat, val, 0, (uint8_t) RGBLED_NUM/2);
|
||||
}
|
||||
|
||||
void rgblight_sethsv_slave(uint16_t hue, uint8_t sat, uint8_t val) {
|
||||
void rgblight_sethsv_slave(uint8_t hue, uint8_t sat, uint8_t val) {
|
||||
rgblight_sethsv_range(hue, sat, val, (uint8_t) RGBLED_NUM/2, (uint8_t) RGBLED_NUM);
|
||||
}
|
||||
|
||||
@@ -973,6 +879,14 @@ void rgblight_task(void) {
|
||||
|
||||
// Effects
|
||||
#ifdef RGBLIGHT_EFFECT_BREATHING
|
||||
|
||||
#ifndef RGBLIGHT_EFFECT_BREATHE_CENTER
|
||||
#ifndef RGBLIGHT_BREATHE_TABLE_SIZE
|
||||
#define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256 or 128 or 64
|
||||
#endif
|
||||
#include <rgblight_breathe_table.h>
|
||||
#endif
|
||||
|
||||
__attribute__ ((weak))
|
||||
const uint8_t RGBLED_BREATHING_INTERVALS[] PROGMEM = {30, 20, 10, 5};
|
||||
|
||||
@@ -980,9 +894,13 @@ void rgblight_effect_breathing(animation_status_t *anim) {
|
||||
float val;
|
||||
|
||||
// http://sean.voisen.org/blog/2011/10/breathing-led-with-arduino/
|
||||
#ifdef RGBLIGHT_EFFECT_BREATHE_TABLE
|
||||
val = pgm_read_byte(&rgblight_effect_breathe_table[anim->pos / table_scale]);
|
||||
#else
|
||||
val = (exp(sin((anim->pos/255.0)*M_PI)) - RGBLIGHT_EFFECT_BREATHE_CENTER/M_E)*(RGBLIGHT_EFFECT_BREATHE_MAX/(M_E-1/M_E));
|
||||
#endif
|
||||
rgblight_sethsv_noeeprom_old(rgblight_config.hue, rgblight_config.sat, val);
|
||||
anim->pos = (anim->pos + 1) % 256;
|
||||
anim->pos = (anim->pos + 1);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -992,36 +910,32 @@ const uint8_t RGBLED_RAINBOW_MOOD_INTERVALS[] PROGMEM = {120, 60, 30};
|
||||
|
||||
void rgblight_effect_rainbow_mood(animation_status_t *anim) {
|
||||
rgblight_sethsv_noeeprom_old(anim->current_hue, rgblight_config.sat, rgblight_config.val);
|
||||
anim->current_hue = (anim->current_hue + 1) % 360;
|
||||
anim->current_hue++;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||
#ifndef RGBLIGHT_RAINBOW_SWIRL_RANGE
|
||||
#define RGBLIGHT_RAINBOW_SWIRL_RANGE 360
|
||||
#define RGBLIGHT_RAINBOW_SWIRL_RANGE 255
|
||||
#endif
|
||||
|
||||
__attribute__ ((weak))
|
||||
const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {100, 50, 20};
|
||||
|
||||
void rgblight_effect_rainbow_swirl(animation_status_t *anim) {
|
||||
uint16_t hue;
|
||||
uint8_t hue;
|
||||
uint8_t i;
|
||||
|
||||
for (i = 0; i < RGBLED_NUM; i++) {
|
||||
hue = (RGBLIGHT_RAINBOW_SWIRL_RANGE / RGBLED_NUM * i + anim->current_hue) % 360;
|
||||
hue = (RGBLIGHT_RAINBOW_SWIRL_RANGE / RGBLED_NUM * i + anim->current_hue);
|
||||
sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i]);
|
||||
}
|
||||
rgblight_set();
|
||||
|
||||
if (anim->delta % 2) {
|
||||
anim->current_hue = (anim->current_hue + 1) % 360;
|
||||
anim->current_hue++;
|
||||
} else {
|
||||
if (anim->current_hue - 1 < 0) {
|
||||
anim->current_hue = 359;
|
||||
} else {
|
||||
anim->current_hue = anim->current_hue - 1;
|
||||
}
|
||||
anim->current_hue--;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -1146,12 +1060,12 @@ void rgblight_effect_knight(animation_status_t *anim) {
|
||||
|
||||
#ifdef RGBLIGHT_EFFECT_CHRISTMAS
|
||||
void rgblight_effect_christmas(animation_status_t *anim) {
|
||||
uint16_t hue;
|
||||
uint8_t hue;
|
||||
uint8_t i;
|
||||
|
||||
anim->current_offset = (anim->current_offset + 1) % 2;
|
||||
for (i = 0; i < RGBLED_NUM; i++) {
|
||||
hue = 0 + ((i/RGBLIGHT_EFFECT_CHRISTMAS_STEP + anim->current_offset) % 2) * 120;
|
||||
hue = 0 + ((i/RGBLIGHT_EFFECT_CHRISTMAS_STEP + anim->current_offset) % 2) * 85;
|
||||
sethsv(hue, rgblight_config.sat, rgblight_config.val, (LED_TYPE *)&led[i]);
|
||||
}
|
||||
rgblight_set();
|
||||
|
@@ -80,9 +80,7 @@ enum RGBLIGHT_EFFECT_MODE {
|
||||
|
||||
#define RGBLIGHT_MODES (RGBLIGHT_MODE_last-1)
|
||||
|
||||
#ifndef RGBLIGHT_EFFECT_BREATHE_CENTER
|
||||
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1-2.7
|
||||
#endif
|
||||
// sample: #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85
|
||||
|
||||
#ifndef RGBLIGHT_EFFECT_BREATHE_MAX
|
||||
#define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0-255
|
||||
@@ -113,7 +111,7 @@ enum RGBLIGHT_EFFECT_MODE {
|
||||
#endif
|
||||
|
||||
#ifndef RGBLIGHT_HUE_STEP
|
||||
#define RGBLIGHT_HUE_STEP 10
|
||||
#define RGBLIGHT_HUE_STEP 8
|
||||
#endif
|
||||
#ifndef RGBLIGHT_SAT_STEP
|
||||
#define RGBLIGHT_SAT_STEP 17
|
||||
@@ -151,12 +149,13 @@ extern const uint8_t RGBLED_KNIGHT_INTERVALS[3] PROGMEM;
|
||||
extern const uint16_t RGBLED_RGBTEST_INTERVALS[1] PROGMEM;
|
||||
extern bool is_rgblight_initialized;
|
||||
|
||||
// Should stay in sycn with rgb matrix config as we reuse eeprom storage for both (for now)
|
||||
typedef union {
|
||||
uint32_t raw;
|
||||
struct {
|
||||
bool enable :1;
|
||||
uint8_t mode :6;
|
||||
uint16_t hue :9;
|
||||
uint8_t mode :7;
|
||||
uint8_t hue :8;
|
||||
uint8_t sat :8;
|
||||
uint8_t val :8;
|
||||
uint8_t speed :8;//EECONFIG needs to be increased to support this
|
||||
@@ -211,19 +210,19 @@ void rgblight_increase_val(void);
|
||||
void rgblight_decrease_val(void);
|
||||
void rgblight_increase_speed(void);
|
||||
void rgblight_decrease_speed(void);
|
||||
void rgblight_sethsv(uint16_t hue, uint8_t sat, uint8_t val);
|
||||
uint16_t rgblight_get_hue(void);
|
||||
void rgblight_sethsv(uint8_t hue, uint8_t sat, uint8_t val);
|
||||
uint8_t rgblight_get_hue(void);
|
||||
uint8_t rgblight_get_sat(void);
|
||||
uint8_t rgblight_get_val(void);
|
||||
void rgblight_setrgb(uint8_t r, uint8_t g, uint8_t b);
|
||||
void rgblight_setrgb_at(uint8_t r, uint8_t g, uint8_t b, uint8_t index);
|
||||
void rgblight_sethsv_at(uint16_t hue, uint8_t sat, uint8_t val, uint8_t index);
|
||||
void rgblight_sethsv_at(uint8_t hue, uint8_t sat, uint8_t val, uint8_t index);
|
||||
void rgblight_setrgb_range(uint8_t r, uint8_t g, uint8_t b, uint8_t start, uint8_t end);
|
||||
void rgblight_sethsv_range(uint16_t hue, uint8_t sat, uint8_t val, uint8_t start, uint8_t end);
|
||||
void rgblight_sethsv_range(uint8_t hue, uint8_t sat, uint8_t val, uint8_t start, uint8_t end);
|
||||
void rgblight_setrgb_master(uint8_t r, uint8_t g, uint8_t b);
|
||||
void rgblight_setrgb_slave(uint8_t r, uint8_t g, uint8_t b);
|
||||
void rgblight_sethsv_master(uint16_t hue, uint8_t sat, uint8_t val);
|
||||
void rgblight_sethsv_slave(uint16_t hue, uint8_t sat, uint8_t val);
|
||||
void rgblight_sethsv_master(uint8_t hue, uint8_t sat, uint8_t val);
|
||||
void rgblight_sethsv_slave(uint8_t hue, uint8_t sat, uint8_t val);
|
||||
void rgblight_set_clipping_range(uint8_t start_pos, uint8_t num_leds);
|
||||
|
||||
uint32_t eeconfig_read_rgblight(void);
|
||||
@@ -234,10 +233,10 @@ void eeconfig_debug_rgblight(void);
|
||||
void rgb_matrix_increase(void);
|
||||
void rgb_matrix_decrease(void);
|
||||
|
||||
void sethsv(uint16_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1);
|
||||
void sethsv(uint8_t hue, uint8_t sat, uint8_t val, LED_TYPE *led1);
|
||||
void setrgb(uint8_t r, uint8_t g, uint8_t b, LED_TYPE *led1);
|
||||
|
||||
void rgblight_sethsv_noeeprom(uint16_t hue, uint8_t sat, uint8_t val);
|
||||
void rgblight_sethsv_noeeprom(uint8_t hue, uint8_t sat, uint8_t val);
|
||||
void rgblight_mode_noeeprom(uint8_t mode);
|
||||
void rgblight_toggle_noeeprom(void);
|
||||
void rgblight_enable_noeeprom(void);
|
||||
@@ -251,7 +250,7 @@ void rgblight_decrease_sat_noeeprom(void);
|
||||
void rgblight_increase_val_noeeprom(void);
|
||||
void rgblight_decrease_val_noeeprom(void);
|
||||
|
||||
void rgblight_sethsv_eeprom_helper(uint16_t hue, uint8_t sat, uint8_t val, bool write_to_eeprom);
|
||||
void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool write_to_eeprom);
|
||||
void rgblight_mode_eeprom_helper(uint8_t mode, bool write_to_eeprom);
|
||||
|
||||
|
||||
@@ -274,7 +273,7 @@ typedef struct _animation_status_t {
|
||||
union {
|
||||
uint16_t pos16;
|
||||
uint8_t pos;
|
||||
int16_t current_hue;
|
||||
int8_t current_hue;
|
||||
uint16_t current_offset;
|
||||
};
|
||||
} animation_status_t;
|
||||
|
116
quantum/rgblight_breathe_table.h
Normal file
116
quantum/rgblight_breathe_table.h
Normal file
@@ -0,0 +1,116 @@
|
||||
#ifndef RGBLIGHT_EFFECT_BREATHE_TABLE
|
||||
#define RGBLIGHT_EFFECT_BREATHE_TABLE
|
||||
|
||||
const uint8_t rgblight_effect_breathe_table[] PROGMEM = {
|
||||
/* #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 */
|
||||
/* #define RGBLIGHT_EFFECT_BREATHE_MAX 255 */
|
||||
|
||||
#if RGBLIGHT_BREATHE_TABLE_SIZE == 256
|
||||
0x22, 0x23, 0x25, 0x26, 0x28, 0x29, 0x2a, 0x2c,
|
||||
0x2d, 0x2f, 0x30, 0x32, 0x33, 0x35, 0x36, 0x38,
|
||||
0x3a, 0x3b, 0x3d, 0x3e, 0x40, 0x42, 0x43, 0x45,
|
||||
0x47, 0x49, 0x4a, 0x4c, 0x4e, 0x50, 0x51, 0x53,
|
||||
0x55, 0x57, 0x59, 0x5a, 0x5c, 0x5e, 0x60, 0x62,
|
||||
0x64, 0x66, 0x68, 0x69, 0x6b, 0x6d, 0x6f, 0x71,
|
||||
0x73, 0x75, 0x77, 0x79, 0x7b, 0x7d, 0x7f, 0x81,
|
||||
0x83, 0x85, 0x87, 0x89, 0x8a, 0x8c, 0x8e, 0x90,
|
||||
0x92, 0x94, 0x96, 0x98, 0x9a, 0x9c, 0x9e, 0x9f,
|
||||
0xa1, 0xa3, 0xa5, 0xa7, 0xa8, 0xaa, 0xac, 0xae,
|
||||
0xaf, 0xb1, 0xb3, 0xb4, 0xb6, 0xb8, 0xb9, 0xbb,
|
||||
0xbc, 0xbe, 0xbf, 0xc1, 0xc2, 0xc3, 0xc5, 0xc6,
|
||||
0xc7, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xd0,
|
||||
0xd1, 0xd2, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7,
|
||||
0xd7, 0xd8, 0xd9, 0xd9, 0xda, 0xda, 0xdb, 0xdb,
|
||||
0xdb, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdd, 0xdd,
|
||||
0xdd, 0xdd, 0xdc, 0xdc, 0xdc, 0xdc, 0xdc, 0xdb,
|
||||
0xdb, 0xdb, 0xda, 0xda, 0xd9, 0xd9, 0xd8, 0xd7,
|
||||
0xd7, 0xd6, 0xd5, 0xd4, 0xd3, 0xd2, 0xd2, 0xd1,
|
||||
0xd0, 0xce, 0xcd, 0xcc, 0xcb, 0xca, 0xc9, 0xc7,
|
||||
0xc6, 0xc5, 0xc3, 0xc2, 0xc1, 0xbf, 0xbe, 0xbc,
|
||||
0xbb, 0xb9, 0xb8, 0xb6, 0xb4, 0xb3, 0xb1, 0xaf,
|
||||
0xae, 0xac, 0xaa, 0xa8, 0xa7, 0xa5, 0xa3, 0xa1,
|
||||
0x9f, 0x9e, 0x9c, 0x9a, 0x98, 0x96, 0x94, 0x92,
|
||||
0x90, 0x8e, 0x8c, 0x8a, 0x89, 0x87, 0x85, 0x83,
|
||||
0x81, 0x7f, 0x7d, 0x7b, 0x79, 0x77, 0x75, 0x73,
|
||||
0x71, 0x6f, 0x6d, 0x6b, 0x69, 0x68, 0x66, 0x64,
|
||||
0x62, 0x60, 0x5e, 0x5c, 0x5a, 0x59, 0x57, 0x55,
|
||||
0x53, 0x51, 0x50, 0x4e, 0x4c, 0x4a, 0x49, 0x47,
|
||||
0x45, 0x43, 0x42, 0x40, 0x3e, 0x3d, 0x3b, 0x3a,
|
||||
0x38, 0x36, 0x35, 0x33, 0x32, 0x30, 0x2f, 0x2d,
|
||||
0x2c, 0x2a, 0x29, 0x28, 0x26, 0x25, 0x23, 0x22
|
||||
#endif /* 256 bytes table */
|
||||
|
||||
#if RGBLIGHT_BREATHE_TABLE_SIZE == 128
|
||||
0x22, 0x25, 0x28, 0x2a,
|
||||
0x2d, 0x30, 0x33, 0x36,
|
||||
0x3a, 0x3d, 0x40, 0x43,
|
||||
0x47, 0x4a, 0x4e, 0x51,
|
||||
0x55, 0x59, 0x5c, 0x60,
|
||||
0x64, 0x68, 0x6b, 0x6f,
|
||||
0x73, 0x77, 0x7b, 0x7f,
|
||||
0x83, 0x87, 0x8a, 0x8e,
|
||||
0x92, 0x96, 0x9a, 0x9e,
|
||||
0xa1, 0xa5, 0xa8, 0xac,
|
||||
0xaf, 0xb3, 0xb6, 0xb9,
|
||||
0xbc, 0xbf, 0xc2, 0xc5,
|
||||
0xc7, 0xca, 0xcc, 0xce,
|
||||
0xd1, 0xd2, 0xd4, 0xd6,
|
||||
0xd7, 0xd9, 0xda, 0xdb,
|
||||
0xdb, 0xdc, 0xdc, 0xdd,
|
||||
0xdd, 0xdc, 0xdc, 0xdc,
|
||||
0xdb, 0xda, 0xd9, 0xd8,
|
||||
0xd7, 0xd5, 0xd3, 0xd2,
|
||||
0xd0, 0xcd, 0xcb, 0xc9,
|
||||
0xc6, 0xc3, 0xc1, 0xbe,
|
||||
0xbb, 0xb8, 0xb4, 0xb1,
|
||||
0xae, 0xaa, 0xa7, 0xa3,
|
||||
0x9f, 0x9c, 0x98, 0x94,
|
||||
0x90, 0x8c, 0x89, 0x85,
|
||||
0x81, 0x7d, 0x79, 0x75,
|
||||
0x71, 0x6d, 0x69, 0x66,
|
||||
0x62, 0x5e, 0x5a, 0x57,
|
||||
0x53, 0x50, 0x4c, 0x49,
|
||||
0x45, 0x42, 0x3e, 0x3b,
|
||||
0x38, 0x35, 0x32, 0x2f,
|
||||
0x2c, 0x29, 0x26, 0x23
|
||||
#endif /* 128 bytes table */
|
||||
|
||||
#if RGBLIGHT_BREATHE_TABLE_SIZE == 64
|
||||
0x22, 0x28,
|
||||
0x2d, 0x33,
|
||||
0x3a, 0x40,
|
||||
0x47, 0x4e,
|
||||
0x55, 0x5c,
|
||||
0x64, 0x6b,
|
||||
0x73, 0x7b,
|
||||
0x83, 0x8a,
|
||||
0x92, 0x9a,
|
||||
0xa1, 0xa8,
|
||||
0xaf, 0xb6,
|
||||
0xbc, 0xc2,
|
||||
0xc7, 0xcc,
|
||||
0xd1, 0xd4,
|
||||
0xd7, 0xda,
|
||||
0xdb, 0xdc,
|
||||
0xdd, 0xdc,
|
||||
0xdb, 0xd9,
|
||||
0xd7, 0xd3,
|
||||
0xd0, 0xcb,
|
||||
0xc6, 0xc1,
|
||||
0xbb, 0xb4,
|
||||
0xae, 0xa7,
|
||||
0x9f, 0x98,
|
||||
0x90, 0x89,
|
||||
0x81, 0x79,
|
||||
0x71, 0x69,
|
||||
0x62, 0x5a,
|
||||
0x53, 0x4c,
|
||||
0x45, 0x3e,
|
||||
0x38, 0x32,
|
||||
0x2c, 0x26
|
||||
#endif /* 64 bytes table */
|
||||
};
|
||||
|
||||
static const int table_scale = 256/sizeof(rgblight_effect_breathe_table);
|
||||
|
||||
#endif /* RGBLIGHT_EFFECT_BREATHE_TABLE */
|
@@ -38,22 +38,22 @@
|
||||
/* HSV COLORS */
|
||||
#define HSV_WHITE 0, 0, 255
|
||||
#define HSV_RED 0, 255, 255
|
||||
#define HSV_CORAL 16, 176, 255
|
||||
#define HSV_ORANGE 39, 255, 255
|
||||
#define HSV_GOLDENROD 43, 218, 218
|
||||
#define HSV_GOLD 51, 255, 255
|
||||
#define HSV_YELLOW 60, 255, 255
|
||||
#define HSV_CHARTREUSE 90, 255, 255
|
||||
#define HSV_GREEN 120, 255, 255
|
||||
#define HSV_SPRINGGREEN 150, 255, 255
|
||||
#define HSV_TURQUOISE 174, 90, 112
|
||||
#define HSV_TEAL 180, 255, 128
|
||||
#define HSV_CYAN 180, 255, 255
|
||||
#define HSV_AZURE 186, 102, 255
|
||||
#define HSV_BLUE 240, 255, 255
|
||||
#define HSV_PURPLE 270, 255, 255
|
||||
#define HSV_MAGENTA 300, 255, 255
|
||||
#define HSV_PINK 330, 128, 255
|
||||
#define HSV_CORAL 11, 176, 255
|
||||
#define HSV_ORANGE 28, 255, 255
|
||||
#define HSV_GOLDENROD 30, 218, 218
|
||||
#define HSV_GOLD 36, 255, 255
|
||||
#define HSV_YELLOW 43, 255, 255
|
||||
#define HSV_CHARTREUSE 64, 255, 255
|
||||
#define HSV_GREEN 85, 255, 255
|
||||
#define HSV_SPRINGGREEN 106, 255, 255
|
||||
#define HSV_TURQUOISE 123, 90, 112
|
||||
#define HSV_TEAL 128, 255, 128
|
||||
#define HSV_CYAN 128, 255, 255
|
||||
#define HSV_AZURE 132, 102, 255
|
||||
#define HSV_BLUE 170, 255, 255
|
||||
#define HSV_PURPLE 191, 255, 255
|
||||
#define HSV_MAGENTA 213, 255, 255
|
||||
#define HSV_PINK 234, 128, 255
|
||||
|
||||
|
||||
/*
|
||||
|
@@ -77,6 +77,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||
// #define RGBLIGHT_EFFECT_RGB_TEST
|
||||
// #define RGBLIGHT_EFFECT_ALTERNATING
|
||||
// /*== customize breathing effect ==*/
|
||||
// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
|
||||
// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
|
||||
// /*==== use exp() and sin() ====*/
|
||||
// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
|
||||
// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
|
||||
// #endif
|
||||
|
||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||
|
@@ -6,9 +6,9 @@
|
||||
|
||||
|
||||
//MIGHT HAVE TO SPLIT THIS INTO TWO CONDITIONS
|
||||
#if defined(TAP_DANCE_ENABLE) && defined(KEYBOARD_lets_split_rev2) || defined(KEYBOARD_iris_rev2)
|
||||
#if defined(TAP_DANCE_ENABLE) && defined(KEYBOARD_lets_split_rev2) || defined(KEYBOARD_keebio_iris_rev2)
|
||||
//Kailh Coppers activate quickly and don't need a long tapping term
|
||||
#define TAPPING_TERM 100
|
||||
#define TAPPING_TERM 180
|
||||
|
||||
#elif defined(TAP_DANCE_ENABLE) && defined(KEYBOARD_bigswitch)
|
||||
#define TAPPING_TERM 700
|
||||
@@ -38,7 +38,14 @@
|
||||
#define NO_ACTION_FUNCTION
|
||||
#define NO_ACTION_ONESHOT
|
||||
|
||||
// Disable mod tap interrrupt
|
||||
#ifndef IGNORE_MOD_TAP_INTERRUPT
|
||||
#define IGNORE_MOD_TAP_INTERRUPT
|
||||
#endif // !mod tap interrrupt
|
||||
|
||||
#define PERMISSIVE_HOLD
|
||||
//// Disable mod tap interrrupt
|
||||
//#ifndef IGNORE_MOD_TAP_INTERRUPT
|
||||
//#define IGNORE_MOD_TAP_INTERRUPT
|
||||
//#endif // !mod tap interrrupt
|
||||
|
||||
//set max breathing brightness on kbd6x
|
||||
#if defined(KEYBOARD_kbdfans_kbd6x)
|
||||
#define RGBLIGHT_EFFECT_BREATHE_MAX 128 // 0-255
|
||||
#endif
|
||||
|
@@ -1,14 +1,125 @@
|
||||
Copyright 2018 Brian Fong @wanleg
|
||||
# Contents
|
||||
* [Git Basics](#git-basics)
|
||||
* [Update a Feature Branch](#update-a-development-branch)
|
||||
* [Delete Branch Locally and Remotely](#delete-branch-locally-and-remotely)
|
||||
* [Merge TEST branch into DEV branch](#merge-test-branch-into-dev-branch)
|
||||
* [STM32F103C8T6 Setup](#STM32F103C8T6-setup)
|
||||
* [Bootloader](#bootloader)
|
||||
* [Flashing QMK](#flashing-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.
|
||||
---
|
||||
## Git Basics
|
||||
### Update a Development Branch
|
||||
|
||||
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.
|
||||
This is how to update a working branch with upstream changes.
|
||||
First we'll update your local master branch. Go to your local project and check out the branch you want to merge into (your local master branch)
|
||||
```bash
|
||||
$ git checkout master
|
||||
```
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
Fetch the remote, bringing the branches and their commits from the remote repository.
|
||||
You can use the -p, --prune option to delete any remote-tracking references that no longer exist in the remote. Commits to master will be stored in a local branch, remotes/origin/master
|
||||
```bash
|
||||
$ git fetch -p origin
|
||||
```
|
||||
|
||||
Merge the changes from origin/master into your local master branch. This brings your master branch in sync with the remote repository, without losing your local changes. If your local branch didn't have any unique commits, Git will instead perform a "fast-forward".
|
||||
```bash
|
||||
$ git merge origin/master
|
||||
```
|
||||
|
||||
Checkout the branch you want to merge into
|
||||
```bash
|
||||
$ git checkout <feature-branch>
|
||||
```
|
||||
|
||||
Merge your (now updated) master branch into your feature branch to update it with the latest changes from your team.
|
||||
```bash
|
||||
$ git merge master
|
||||
```
|
||||
|
||||
This will open your git-configured text editor. Edit the message as desired, save, and exit the editor.
|
||||
|
||||
The above steps only update your local feature branch. To update it on GitHub, push your changes.
|
||||
```bash
|
||||
$ git push origin <feature-branch>
|
||||
```
|
||||
|
||||
### Delete Branch Locally and Remotely
|
||||
|
||||
Executive Summary
|
||||
```bash
|
||||
$ git push --delete <remote_name> <branch_name>
|
||||
$ git branch -d <branch_name>
|
||||
```
|
||||
Note that in most cases the remote name is origin.
|
||||
|
||||
Delete Local Branch
|
||||
To delete the local branch use one of the following:
|
||||
```bash
|
||||
$ git branch -d branch_name
|
||||
$ git branch -D branch_name
|
||||
```
|
||||
Note: The -d option is an alias for --delete, which only deletes the branch if it has already been fully merged in its upstream branch. You could also use -D, which is an alias for --delete --force, which deletes the branch "irrespective of its merged status." [Source: man git-branch]
|
||||
|
||||
Delete Remote Branch [Updated on 8-Sep-2017]
|
||||
As of Git v1.7.0, you can delete a remote branch using
|
||||
```bash
|
||||
$ git push <remote_name> --delete <branch_name>
|
||||
```
|
||||
which might be easier to remember than
|
||||
```bash
|
||||
$ git push <remote_name> :<branch_name>
|
||||
```
|
||||
which was added in Git v1.5.0 "to delete a remote branch or a tag."
|
||||
|
||||
Starting on Git v2.8.0 you can also use `git push` with the `-d` option as an alias for `--delete`.
|
||||
|
||||
Therefore, the version of Git you have installed will dictate whether you need to use the easier or harder syntax.
|
||||
|
||||
### Merge TEST branch into DEV branch
|
||||
|
||||
Executive Summary
|
||||
```bash
|
||||
$ git checkout DEV
|
||||
$ git merge TEST
|
||||
$ git push <remote_name> DEV
|
||||
$ git branch -d TEST
|
||||
$ git push <remote_name> :TEST
|
||||
```
|
||||
Note that in most cases the remote name is origin.
|
||||
The above code will merge, push to remote, and delete both the local and remote TEST branches
|
||||
|
||||
---
|
||||
## STM32F103C8T6 Setup
|
||||
Cheap "Blue/Black Pills" typically do not come with a bootloader installed. The Black Pill uses [generic_boot20_pb12.bin](https://github.com/rogerclarkmelbourne/STM32duino-bootloader/blob/master/binaries/generic_boot20_pb12.bin). The Blue Pill uses [generic_boot20_pc13.bin](https://github.com/rogerclarkmelbourne/STM32duino-bootloader/blob/master/binaries/generic_boot20_pc13.bin).
|
||||
The following instructions have been adapted from [here](http://wiki.stm32duino.com/index.php?title=Burning_the_bootloader).
|
||||
### Bootloader
|
||||
Flashing a bootloader on to a Black Pill can be done via a USB to Serial converter (e.g. CP2102). This process should be roughly the same for all F103 boards.
|
||||
|
||||
1. Download the correct bootloader binary
|
||||
2. Set the 'boot 0' pin/jumper high, and 'boot 1' low
|
||||
B0+ to center pin
|
||||
B1- to center pin
|
||||
3. Connect the board to the PC using a USB to serial converter
|
||||
RX to PA9
|
||||
TX to PA10
|
||||
GND to Ground
|
||||
3.3V to 3.3 Volts
|
||||
4. Download and install __Flash Loader Demonstrator__ from [here](http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-programmers/flasher-stm32.html)
|
||||
5. Use __Flash Loader Demonstrator__ to flash the bootloader
|
||||
Ensure the correct COM port is selected. Leave other options with their default values/selections.
|
||||
Use the "Download to Device" option, with "Erase necessary pages" selected
|
||||
6. After a successful flash, set 'boot 0' pin/jumper low
|
||||
B0- to center pin
|
||||
B1- to center pin (no change)
|
||||
|
||||
### Flashing QMK
|
||||
As of April 2019, the `:dfu-util` target doesn't work on a \*Pill. You will need to use dfu-util directly.
|
||||
1. Use QMK to build your `.bin`
|
||||
2. Run `dfu-util.exe -d 1eaf:0003 -a 2 -D YOUR_FIRMWARE.bin"`
|
||||
If this is the first QMK flash on the \*Pill, you will need to synchronize your Reset Button-push with starting the command. By default, the \*Pill only stays in bootloader mode for about 3 seconds before returning to normal operation.
|
||||
|
||||
See [this page](https://docs.qmk.fm/#/faq_build?id=unknown-device-for-dfu-bootloader) if Windows can't see anything to upload to.
|
||||
|
||||
---
|
||||
|
@@ -36,4 +36,10 @@ ifeq ($(strip $(padc)), yes)
|
||||
endif
|
||||
ifeq ($(strip $(padl)), yes)
|
||||
OPT_DEFS += -DPADL
|
||||
endif
|
||||
|
||||
#change gherkin orientation (i.e. move USB port from right side to left side)
|
||||
#example usage: make gherkin:wanleg flip=yes
|
||||
ifeq ($(strip $(flip)), yes)
|
||||
OPT_DEFS += -DFLIP
|
||||
endif
|
@@ -6,20 +6,30 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
switch (keycode) {
|
||||
case QWERTY:
|
||||
if (record->event.pressed) {
|
||||
print("mode just switched to qwerty and this is a huge string\n");
|
||||
set_single_persistent_default_layer(_QW);
|
||||
#if defined(RGBLIGHT_ENABLE)
|
||||
rgblight_sethsv_noeeprom(0,0,128);
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_BREATHING);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case GHERKIN:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(_GK);
|
||||
#if defined(RGBLIGHT_ENABLE)
|
||||
rgblight_sethsv_noeeprom(128,255,64);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
case gGHERKIN:
|
||||
if (record->event.pressed) {
|
||||
set_single_persistent_default_layer(gGK);
|
||||
#if defined(RGBLIGHT_ENABLE)
|
||||
rgblight_sethsv_noeeprom(128,255,128);
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_KNIGHT);
|
||||
#endif
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
@@ -113,6 +123,17 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||
}
|
||||
return false;
|
||||
break;
|
||||
//on RESET, underglow red if present
|
||||
case RESET:
|
||||
if (record->event.pressed) {
|
||||
#if defined(RGBLIGHT_ENABLE)
|
||||
rgblight_enable_noeeprom(); // enables Rgb, without saving settings
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_STATIC_LIGHT);
|
||||
rgblight_sethsv_noeeprom_red();
|
||||
#endif
|
||||
}
|
||||
return true; // Let QMK send the press/release events as normal
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -128,6 +149,7 @@ void matrix_init_keymap(void) {}
|
||||
|
||||
// Call user matrix init, then call the keymap's init function
|
||||
void matrix_init_user(void) {
|
||||
//turn off pro micro LEDs
|
||||
#if defined(KEYBOARD_lets_split_rev2)
|
||||
DDRD &= ~(1<<5);
|
||||
PORTD &= ~(1<<5);
|
||||
@@ -135,5 +157,20 @@ void matrix_init_user(void) {
|
||||
DDRB &= ~(1<<0);
|
||||
PORTB &= ~(1<<0);
|
||||
#endif
|
||||
|
||||
//disable backlight breathing for keyboard using random flashing RGB LEDs for backlight
|
||||
//(breathing provides insufficient power to integrated LED IC)
|
||||
#if defined(KEYBOARD_kbdfans_kbd6x) && defined(BACKLIGHT_BREATHING)
|
||||
breathing_disable();
|
||||
#endif
|
||||
matrix_init_keymap();
|
||||
}
|
||||
}
|
||||
|
||||
//at end of firmware startup process, change powerup default layer and underglow colour for kbd6x
|
||||
void keyboard_post_init_user(void) {
|
||||
#if defined(KEYBOARD_kbdfans_kbd6x)
|
||||
set_single_persistent_default_layer(_QW);
|
||||
rgblight_mode_noeeprom(RGBLIGHT_MODE_SNAKE + 5);
|
||||
rgblight_sethsv_noeeprom(0,0,128);
|
||||
#endif
|
||||
}
|
||||
|
@@ -3,7 +3,7 @@
|
||||
#include "quantum.h"
|
||||
|
||||
// Define layer names and order
|
||||
#ifdef KEYBOARD_gherkin
|
||||
#if defined(KEYBOARD_40percentclub_gherkin) || defined(KEYBOARD_kbdfans_kbd6x)
|
||||
enum userspace_layers {
|
||||
gGK = 0,
|
||||
gNUM,
|
||||
@@ -118,22 +118,22 @@ enum {
|
||||
// lengths consistent.
|
||||
|
||||
|
||||
/* Pure Gherkin
|
||||
/* Gherkin
|
||||
* .-----------------------------------------------------------------------------------------.
|
||||
* | Q//ESC | W | E | R | T | Y | U | I | O | P |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | A | S | D | F | G | H | J | K | L | SPACE |
|
||||
* | | | | | | | | | |SFThold |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | Z | X | C | V/gNUM | B/gETC | N | M/gDIR | ,/GUI | ./ALT | BSPC |
|
||||
* | Z | X | C | V/gNUM | B/gETC | N/Fn | M/gDIR | ,/GUI | ./ALT | BSPC |
|
||||
* | SFThold| | | | | | | | |CTRLhold|
|
||||
* '-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
#define _______________Gherkin_Row_0_______________ TD(TD_Q_ESC), KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P
|
||||
#define _______________Gherkin_Row_1_______________ KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, SFT_T(KC_SPC)
|
||||
#define _______________Gherkin_Row_2_______________ SFT_T(KC_Z), KC_X, KC_C, LT(gNUM,KC_V), LT(gETC,KC_B), KC_N, LT(gDIR,KC_M), GUI_T(KC_COMM), ALT_T(KC_DOT), CTL_T(KC_BSPC)
|
||||
#define _______________Gherkin_Row_2_______________ SFT_T(KC_Z), KC_X, KC_C, LT(gNUM,KC_V), LT(gETC,KC_B), LT(_FN,KC_N), LT(gDIR,KC_M), GUI_T(KC_COMM), ALT_T(KC_DOT), CTL_T(KC_BSPC)
|
||||
|
||||
/* Directional Keys
|
||||
/* Gherkin Directional Keys
|
||||
* .-----------------------------------------------------------------------------------------.
|
||||
* | TAB | up | | INS | CTRL | SHIFT | PgUp | HOME | - | = |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
@@ -146,7 +146,7 @@ enum {
|
||||
#define _______________Gherkin_DIR_1_______________ KC_LEFT, KC_DOWN, KC_RGHT, KC_PSCR, KC_LSFT, KC_RCTL, KC_PGDN, KC_END, KC_LBRC, KC_RBRC
|
||||
#define _______________Gherkin_DIR_2_______________ KC_PAUS, _______, _______, _______, _______, _______, _______, KC_RGUI, KC_LALT, KC_SLSH
|
||||
|
||||
/* Numbers
|
||||
/* Gherkin Numbers
|
||||
* .-----------------------------------------------------------------------------------------.
|
||||
* | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
@@ -160,16 +160,16 @@ enum {
|
||||
#define _______________Gherkin_NUM_1_______________ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0
|
||||
#define _______________Gherkin_NUM_2_______________ KC_F11, KC_F12, _______,_______, _______, KC_ENT, KC_RSFT, KC_RGUI, ALT_T(KC_DOT), CTL_T(KC_BSPC)
|
||||
|
||||
/* Et Cetera
|
||||
/* Gherkin Et Cetera
|
||||
* .-----------------------------------------------------------------------------------------.
|
||||
* | ` | mUP | | | RESET | SHIFT | mScrDn | mScrUp | | \ |
|
||||
* | ` | mUP | | ESC | RESET | SHIFT | mScrDn | mScrUp | | \ |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | mLeft | mDown | mRight | | SHIFT | mBtn3 | mBtn1 | mBtn2 | ; | ' |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | Sft//Cp| CAPS | | | | C-A-D | mScrL | mScrR | ALT | DEL |
|
||||
* '-----------------------------------------------------------------------------------------'
|
||||
*/
|
||||
#define _______________Gherkin_ETC_0_______________ KC_GRV, KC_MS_U, _______,_______, RESET, KC_RSFT, KC_WH_D, KC_WH_U, _______, KC_BSLS
|
||||
#define _______________Gherkin_ETC_0_______________ KC_GRV, KC_MS_U, _______,KC_ESC, RESET, KC_RSFT, KC_WH_D, KC_WH_U, _______, KC_BSLS
|
||||
#define _______________Gherkin_ETC_1_______________ KC_MS_L, KC_MS_D, KC_MS_R,_______, KC_LSFT, KC_BTN3, KC_BTN1, KC_BTN2, KC_SCLN, KC_QUOT
|
||||
#define _______________Gherkin_ETC_2_______________ TD(TD_SFT_CAPS),KC_CAPS, _______,_______, _______, LALT(LCTL(KC_DEL)), KC_WH_L, KC_WH_R, KC_LALT, KC_DEL
|
||||
|
||||
@@ -180,7 +180,7 @@ enum {
|
||||
* | TAB | A | S | D | F | G | H | J | K | L | SPACE | ' |
|
||||
* | | | | | | | | | | |SFThold | |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* |SFT/CAPS| Z | X | C | V/NUM | B/ETC | N | M/DIR | ,/GUI | ./ALT | BSPC | ENT/SFT|
|
||||
* |SFT/CAPS| Z | X | C | V/NUM | B/ETC | N/Fn | M/DIR | ,/GUI | ./ALT | BSPC | ENT/SFT|
|
||||
* | |SFThold | | | | | | | | |CTRLhold| |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | LCTRL | LGUI | ALT | ONEHAND| NUM | ETC | SPACE | DIR | RGUI | ALT | DEL | CTRL |
|
||||
@@ -188,7 +188,7 @@ enum {
|
||||
*/
|
||||
#define _______________GherkinLike_0_______________ KC_ESC, _______________Gherkin_Row_0_______________, KC_BSPC
|
||||
#define _______________GherkinLike_1_______________ KC_TAB, _______________Gherkin_Row_1_______________, KC_QUOT
|
||||
#define _______________GherkinLike_2_______________ TD(TD_SFT_CAPS), SFT_T(KC_Z), KC_X, KC_C, LT(NUM, KC_V),LT(ETC, KC_B),KC_N, LT(DIR, KC_M), GUI_T(KC_COMM), ALT_T(KC_DOT), CTL_T(KC_BSPC), SFT_T(KC_ENT)
|
||||
#define _______________GherkinLike_2_______________ TD(TD_SFT_CAPS), SFT_T(KC_Z), KC_X, KC_C, LT(NUM, KC_V),LT(ETC, KC_B),LT(_FN,KC_N), LT(DIR, KC_M), GUI_T(KC_COMM), ALT_T(KC_DOT), CTL_T(KC_BSPC), SFT_T(KC_ENT)
|
||||
#define _______________GherkinLike_3_______________ KC_LCTL, KC_LGUI, KC_LALT, KC_LALT, NUMBER, ETCETERA, KC_SPC,DIRECTION, KC_RGUI, KC_RALT, KC_DEL, KC_RCTL
|
||||
#define _______________GherkinLike_3_OneHand_______ KC_LCTL, KC_LGUI, KC_LALT, ONEHAND, NUMBER, ETCETERA, KC_SPC,DIRECTION, KC_RGUI, KC_RALT, ONEHAND, KC_RCTL
|
||||
|
||||
@@ -241,7 +241,7 @@ enum {
|
||||
#define _______________SUBTER_Row__2_______________ _______, KC_F11, KC_F12, _______, _______, _______, _______, _______, KC_RGUI,ALT_T(KC_DOT), CTL_T(KC_BSPC), _______
|
||||
#define _______________SUBTER_Row__3_______________ _______, _______, GHERKIN, _______, _______, _______, KC_ENT, KC_LSFT, _______,_______, _______, _______
|
||||
|
||||
/* Gherkin Numbers
|
||||
/* Gherkin-Like Numbers
|
||||
* .-----------------------------------------------------------------------------------------------------------.
|
||||
* | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | BSPC |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
@@ -259,7 +259,7 @@ enum {
|
||||
#define _______________NUMBERS_Row_3_______________ _______, _______, _______, _______, _______, _______, KC_ENT, KC_RSFT, KC_RGUI, _______, _______, _______
|
||||
|
||||
|
||||
/* Gherkin Directional Keys
|
||||
/* Gherkin-Like Directional Keys
|
||||
* .-----------------------------------------------------------------------------------------------------------.
|
||||
* | | TAB | up | | INS | CTRL | SHIFT | PgUp | HOME | - | = | DEL |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
@@ -275,9 +275,9 @@ enum {
|
||||
#define _____________DIRECTIONS_Row__2_____________ _______, _______________Gherkin_DIR_2_______________, _______
|
||||
#define _____________DIRECTIONS_Row__3_____________ _______, _______, QWERTY, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||
|
||||
/* Gherkin Et Cetera
|
||||
/* Gherkin-Like Et Cetera
|
||||
* .-----------------------------------------------------------------------------------------------------------.
|
||||
* | | ` | mUP | | | RESET | SHIFT | mScrUp |mScrDown| | \ | DEL |
|
||||
* | | ` | mUP | | | RESET | SHIFT | mScrDn | mScrUp | | \ | DEL |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
* | | mLeft | mDown | mRight | | SHIFT | mBtn3 | mBtn1 | mBtn2 | ; | ' | |
|
||||
* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||
@@ -290,7 +290,7 @@ enum {
|
||||
#define ______________ETCETERA_Row__1______________ _______, _______________Gherkin_ETC_1_______________, _______
|
||||
#define ______________ETCETERA_Row__2______________ _______, _______________Gherkin_ETC_2_______________, _______
|
||||
#define ______________ETCETERA_Row__3______________ _______, _______, _______, _______, _______, _______, LALT(LCTL(KC_DEL)), _______, _______, _______, _______, _______
|
||||
|
||||
|
||||
/* Single 4x4 board only
|
||||
* .-----------------------------------.
|
||||
* | 7 | 8 | 9 | BSPC |
|
||||
@@ -307,3 +307,16 @@ enum {
|
||||
#define _______________NUMPAD_Row__1_______________ KC_KP_4, KC_KP_5, KC_KP_6, KC_SPC
|
||||
#define _______________NUMPAD_Row__2_______________ KC_KP_1, KC_KP_2, KC_KP_3, KC_PENT
|
||||
#define _______________NUMPAD_Row__3_______________ KC_KP_0, TD(LYR_TAP_DANCE), KC_KP_DOT, KC_PMNS
|
||||
|
||||
/* Gherkin FN/Lighting
|
||||
* .-----------------------------------------------------------------------------------------------------.
|
||||
* | BL_breathe | BL_brite- | BL_brite+ | BL_toggle | BL_briteCyc | BL_briteMax | | | | |
|
||||
* |------------+-----------+-----------+-----------+-------------+-------------+-----+-----+-----+------|
|
||||
* | UG_breathe | UG_brite- | UG_brite+ | UG_toggle | UG_modeCycle| | | | | |
|
||||
* |------------+-----------+-----------+-----------+-------------+-------------+-----+-----+-----+------|
|
||||
* | UG_hue- | UG_hue+ | UG_sat- | UG_sat+ | | | | | |QWERTY|
|
||||
* '-----------------------------------------------------------------------------------------------------'
|
||||
*/
|
||||
#define _______________Gherkin_FN_0________________ BL_BRTG, BL_DEC, BL_INC, BL_TOGG, BL_STEP, BL_ON, _______, _______, _______, _______
|
||||
#define _______________Gherkin_FN_1________________ RGB_M_B, RGB_VAD, RGB_VAI, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______
|
||||
#define _______________Gherkin_FN_2________________ RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______, QWERTY
|
||||
|
49
util/rgblight_breathing_table_calc.c
Normal file
49
util/rgblight_breathing_table_calc.c
Normal file
@@ -0,0 +1,49 @@
|
||||
//
|
||||
// calculate rgblight_effect_breathe_table[] values
|
||||
//
|
||||
// this is host program for quantum/rgblight.c:void rgblight_effect_breathing();
|
||||
//
|
||||
// example:
|
||||
// $ edit util/rgblight_breathing_table_calc.c
|
||||
// $ cc -o util/rgblight_breathing_table_calc util/rgblight_breathing_table_calc.c
|
||||
// $ ./util/rgblight_breathing_table_calc > keyboards/KEYBOARD_NAME/keymaps/KEYMAP_NAME/rgblight_breathe_table.h
|
||||
//
|
||||
#include <stdio.h>
|
||||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/// customize breeathing effect part ///////////////////////////
|
||||
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
|
||||
#define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
|
||||
////////////////////////////////////////////////////////////////
|
||||
|
||||
int main(void) {
|
||||
int pos, step;
|
||||
int table[256];
|
||||
for (pos = 0; pos < 256; pos ++ ) {
|
||||
table[pos] = (uint8_t)(
|
||||
(exp(sin((pos/255.0)*M_PI))- RGBLIGHT_EFFECT_BREATHE_CENTER/M_E)
|
||||
* (RGBLIGHT_EFFECT_BREATHE_MAX/(M_E-1/M_E))
|
||||
);
|
||||
}
|
||||
printf("#ifndef RGBLIGHT_EFFECT_BREATHE_TABLE\n");
|
||||
printf("#define RGBLIGHT_EFFECT_BREATHE_TABLE\n\n");
|
||||
printf("const uint8_t rgblight_effect_breathe_table[] PROGMEM = {\n");
|
||||
printf(" /* #define RGBLIGHT_EFFECT_BREATHE_CENTER %.2f */\n", RGBLIGHT_EFFECT_BREATHE_CENTER);
|
||||
printf(" /* #define RGBLIGHT_EFFECT_BREATHE_MAX %d */\n", RGBLIGHT_EFFECT_BREATHE_MAX);
|
||||
|
||||
for (int s = 0, step = (1<<s); s < 3 ; s += 1, step = (1<<s) ) {
|
||||
printf("\n #if RGBLIGHT_BREATHE_TABLE_SIZE == %d\n",
|
||||
s == 0 ? 256:(s== 1 ? 128: 64));
|
||||
for (pos = 0; pos < 256; pos += step ) {
|
||||
printf(" 0x%x%s", table[pos], (pos+step)>=256?"":"," );
|
||||
if ((pos+step) % 8 == 0)
|
||||
printf("\n");
|
||||
}
|
||||
printf(" #endif /* %d bytes table */\n", s == 0 ? 256:(s== 1 ? 128: 64));
|
||||
}
|
||||
printf("};\n");
|
||||
printf("\nstatic const int table_scale = 256/sizeof(rgblight_effect_breathe_table);\n");
|
||||
printf("\n#endif /* RGBLIGHT_EFFECT_BREATHE_TABLE */\n");
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user