Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3d922e6257 | ||
|
|
38b9f67c3b | ||
|
|
c6778dde82 | ||
|
|
c27a458799 | ||
|
|
8ed1addd1e | ||
|
|
25c97e0019 | ||
|
|
0fd8faa1ad | ||
|
|
fc2b51194c | ||
|
|
18dc12cd78 | ||
|
|
489c814a48 | ||
|
|
8190a795ed | ||
|
|
d3963a61cb |
No files matched your search
+5
-1
@@ -205,6 +205,7 @@ endif
|
|||||||
#
|
#
|
||||||
# https://docs.qmk.fm/#/feature_layouts?id=tips-for-making-layouts-keyboard-agnostic
|
# https://docs.qmk.fm/#/feature_layouts?id=tips-for-making-layouts-keyboard-agnostic
|
||||||
#
|
#
|
||||||
|
QMK_KEYBOARD_H = $(KEYBOARD_OUTPUT)/src/default_keyboard.h
|
||||||
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/$(KEYBOARD_FOLDER_1).h)","")
|
ifneq ("$(wildcard $(KEYBOARD_PATH_1)/$(KEYBOARD_FOLDER_1).h)","")
|
||||||
QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_1).h
|
QMK_KEYBOARD_H = $(KEYBOARD_FOLDER_1).h
|
||||||
endif
|
endif
|
||||||
@@ -296,10 +297,13 @@ CONFIG_H += $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/layouts.
|
|||||||
$(KEYBOARD_OUTPUT)/src/info_config.h: $(INFO_JSON_FILES)
|
$(KEYBOARD_OUTPUT)/src/info_config.h: $(INFO_JSON_FILES)
|
||||||
bin/qmk generate-config-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/info_config.h
|
bin/qmk generate-config-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/info_config.h
|
||||||
|
|
||||||
|
$(KEYBOARD_OUTPUT)/src/default_keyboard.h: $(INFO_JSON_FILES)
|
||||||
|
bin/qmk generate-keyboard-h --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/default_keyboard.h
|
||||||
|
|
||||||
$(KEYBOARD_OUTPUT)/src/layouts.h: $(INFO_JSON_FILES)
|
$(KEYBOARD_OUTPUT)/src/layouts.h: $(INFO_JSON_FILES)
|
||||||
bin/qmk generate-layouts --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/layouts.h
|
bin/qmk generate-layouts --quiet --keyboard $(KEYBOARD) --output $(KEYBOARD_OUTPUT)/src/layouts.h
|
||||||
|
|
||||||
generated-files: $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/layouts.h
|
generated-files: $(KEYBOARD_OUTPUT)/src/info_config.h $(KEYBOARD_OUTPUT)/src/default_keyboard.h $(KEYBOARD_OUTPUT)/src/layouts.h
|
||||||
|
|
||||||
.INTERMEDIATE : generated-files
|
.INTERMEDIATE : generated-files
|
||||||
|
|
||||||
|
|||||||
@@ -228,6 +228,18 @@ This command is directory aware. It will automatically fill in KEYBOARD if you a
|
|||||||
qmk list-keymaps -kb planck/ez
|
qmk list-keymaps -kb planck/ez
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## `qmk new-keyboard`
|
||||||
|
|
||||||
|
This command creates a new keyboard based on available templates.
|
||||||
|
|
||||||
|
This command will prompt for input to guide you though the generation process.
|
||||||
|
|
||||||
|
**Usage**:
|
||||||
|
|
||||||
|
```
|
||||||
|
qmk new-keyboard
|
||||||
|
```
|
||||||
|
|
||||||
## `qmk new-keymap`
|
## `qmk new-keymap`
|
||||||
|
|
||||||
This command creates a new keymap based on a keyboard's existing default keymap.
|
This command creates a new keymap based on a keyboard's existing default keymap.
|
||||||
|
|||||||
@@ -70,4 +70,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||||
)
|
)
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
/* Copyright 2021 eithanshavit
|
/* Copyright 2021 Afternoon Labs
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
/* Copyright 2021 Afternoon Labs
|
||||||
|
*
|
||||||
|
* 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"
|
||||||
|
|
||||||
|
#define NO_ACTION_MACRO
|
||||||
|
#define NO_ACTION_FUNCTION
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
/* Copyright 2021 Afternoon Labs
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
enum layer_names {
|
||||||
|
_MAIN,
|
||||||
|
_LOWER,
|
||||||
|
_RAISE,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define LOWER MO(_LOWER)
|
||||||
|
#define RAISE MO(_RAISE)
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_MAIN] = LAYOUT(
|
||||||
|
//┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
|
KC_MINS, KC_EQL, KC_GRV, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
KC_LBRC, KC_RBRC, KC_BSLS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
KC_UP, 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_LEFT, KC_DOWN, KC_RIGHT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||||
|
//└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘
|
||||||
|
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX
|
||||||
|
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||||
|
),
|
||||||
|
|
||||||
|
[_LOWER] = LAYOUT(
|
||||||
|
//┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
|
KC_MUTE, KC_VOLD, KC_VOLU, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||||
|
),
|
||||||
|
|
||||||
|
[_RAISE] = LAYOUT(
|
||||||
|
//┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______,
|
||||||
|
//└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘
|
||||||
|
_______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT
|
||||||
|
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# Default Southern Breeze Layout
|
||||||
|
|
||||||
|
This is the default suggested layout for the Southern Breeze Split Keyboard (with the arrow cluster on the left half).
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
# LTO: link time optimization makes the build take slightly longer
|
||||||
|
# but makes the resulting .hex file smaller, which allows you to
|
||||||
|
# fit more features into smaller MCUs:
|
||||||
|
LTO_ENABLE = yes
|
||||||
|
# Support for these features make the hex file larger, but we want 'em:
|
||||||
|
MOUSEKEY_ENABLE = yes # Allow mapping of mouse control keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Allow audio & system control keys
|
||||||
|
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||||
|
NKRO_ENABLE = yes # Support USB N-key roll over.
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
/* Copyright 2021 Afternoon Labs
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
enum layer_names {
|
||||||
|
_MAIN,
|
||||||
|
_LOWER,
|
||||||
|
_RAISE,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define LOWER MO(_LOWER)
|
||||||
|
#define RAISE MO(_RAISE)
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_MAIN] = LAYOUT(
|
||||||
|
//┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
|
KC_MINS, KC_EQL, KC_GRV, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
KC_LBRC, KC_RBRC, KC_BSLS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
KC_UP, 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_LEFT, KC_DOWN, KC_RIGHT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||||
|
//└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘
|
||||||
|
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX
|
||||||
|
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||||
|
),
|
||||||
|
|
||||||
|
[_LOWER] = LAYOUT(
|
||||||
|
//┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
|
KC_MUTE, KC_VOLD, KC_VOLU, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||||
|
),
|
||||||
|
|
||||||
|
[_RAISE] = LAYOUT(
|
||||||
|
//┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______,
|
||||||
|
//└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘
|
||||||
|
_______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT
|
||||||
|
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||||
|
),
|
||||||
|
|
||||||
|
[3] = LAYOUT(
|
||||||
|
//┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# Default Southern Breeze Layout
|
||||||
|
|
||||||
|
This is the default suggested layout for the Southern Breeze Split Keyboard (with the arrow cluster on the left half).
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
|
# LTO: link time optimization makes the build take slightly longer
|
||||||
|
# but makes the resulting .hex file smaller, which allows you to
|
||||||
|
# fit more features into smaller MCUs:
|
||||||
|
LTO_ENABLE = yes
|
||||||
|
# Support for these features make the hex file larger, but we want 'em:
|
||||||
|
MOUSEKEY_ENABLE = yes # Allow mapping of mouse control keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Allow audio & system control keys
|
||||||
|
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||||
|
NKRO_ENABLE = yes # Support USB N-key roll over.
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
/* Copyright 2021 Afternoon Labs
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0x616C
|
||||||
|
#define PRODUCT_ID 0x0005
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER AfternoonLabs
|
||||||
|
#define PRODUCT Southern Breeze
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
// Rows are doubled-up
|
||||||
|
#define MATRIX_ROWS 10
|
||||||
|
#define MATRIX_COLS 9
|
||||||
|
|
||||||
|
// wiring of each half
|
||||||
|
#define MATRIX_ROW_PINS \
|
||||||
|
{ F4, F5, F6, F7, B1 }
|
||||||
|
#define MATRIX_COL_PINS \
|
||||||
|
{ B2, D1, D0, D4, C6, D7, E6, B4, B5 }
|
||||||
|
|
||||||
|
#define SPLIT_HAND_PIN B3
|
||||||
|
|
||||||
|
/* Set 0 if debouncing isn't needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
#define SOFT_SERIAL_PIN D2
|
||||||
|
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define BOOTMAGIC_LITE_ROW_RIGHT 0
|
||||||
|
#define BOOTMAGIC_LITE_COLUMN_RIGHT 5
|
||||||
|
#define BOOTMAGIC_LITE_ROW_LEFT 0
|
||||||
|
#define BOOTMAGIC_LITE_COLUMN_LEFT 5
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Southern Breeze",
|
||||||
|
"url": "afternoonlabs.com/breeze",
|
||||||
|
"productId": "0x0005",
|
||||||
|
"maintainer": "eithanshavit",
|
||||||
|
"width": 19,
|
||||||
|
"height": 6,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0.375},
|
||||||
|
{"x":1, "y":0.375},
|
||||||
|
{"x":2, "y":0.375},
|
||||||
|
{"x":3.25, "y":0.375},
|
||||||
|
{"x":4.25, "y":0.375},
|
||||||
|
{"x":5.25, "y":0.125},
|
||||||
|
{"x":6.25, "y":0},
|
||||||
|
{"x":7.25, "y":0.125},
|
||||||
|
{"x":8.25, "y":0.25},
|
||||||
|
{"x":13, "y":0.25},
|
||||||
|
{"x":14, "y":0.125},
|
||||||
|
{"x":15, "y":0},
|
||||||
|
{"x":16, "y":0.125},
|
||||||
|
{"x":17, "y":0.375},
|
||||||
|
{"x":18, "y":0.375},
|
||||||
|
|
||||||
|
{"x":0, "y":1.375},
|
||||||
|
{"x":1, "y":1.375},
|
||||||
|
{"x":2, "y":1.375},
|
||||||
|
{"x":3.25, "y":1.375},
|
||||||
|
{"x":4.25, "y":1.375},
|
||||||
|
{"x":5.25, "y":1.125},
|
||||||
|
{"x":6.25, "y":1},
|
||||||
|
{"x":7.25, "y":1.125},
|
||||||
|
{"x":8.25, "y":1.25},
|
||||||
|
{"x":13, "y":1.25},
|
||||||
|
{"x":14, "y":1.125},
|
||||||
|
{"x":15, "y":1},
|
||||||
|
{"x":16, "y":1.125},
|
||||||
|
{"x":17, "y":1.375},
|
||||||
|
{"x":18, "y":1.375},
|
||||||
|
|
||||||
|
{"x":1, "y":2.375},
|
||||||
|
{"x":3.25, "y":2.375},
|
||||||
|
{"x":4.25, "y":2.375},
|
||||||
|
{"x":5.25, "y":2.125},
|
||||||
|
{"x":6.25, "y":2},
|
||||||
|
{"x":7.25, "y":2.125},
|
||||||
|
{"x":8.25, "y":2.25},
|
||||||
|
{"x":13, "y":2.25},
|
||||||
|
{"x":14, "y":2.125},
|
||||||
|
{"x":15, "y":2},
|
||||||
|
{"x":16, "y":2.125},
|
||||||
|
{"x":17, "y":2.375},
|
||||||
|
{"x":18, "y":2.375},
|
||||||
|
|
||||||
|
{"x":0, "y":3.375},
|
||||||
|
{"x":1, "y":3.375},
|
||||||
|
{"x":2, "y":3.375},
|
||||||
|
{"x":3.25, "y":3.375},
|
||||||
|
{"x":4.25, "y":3.375},
|
||||||
|
{"x":5.25, "y":3.125},
|
||||||
|
{"x":6.25, "y":3},
|
||||||
|
{"x":7.25, "y":3.125},
|
||||||
|
{"x":8.25, "y":3.25},
|
||||||
|
{"x":13, "y":3.25},
|
||||||
|
{"x":14, "y":3.125},
|
||||||
|
{"x":15, "y":3},
|
||||||
|
{"x":16, "y":3.125},
|
||||||
|
{"x":17, "y":3.375},
|
||||||
|
{"x":18, "y":3.375},
|
||||||
|
|
||||||
|
{"x":5.75, "y":4.25},
|
||||||
|
{"x":6.75, "y":4.25},
|
||||||
|
{"x":7.75, "y":4.5},
|
||||||
|
{"x":9.5, "y":3.75, "h":2, "r":30},
|
||||||
|
{"x":11.75, "y":3.75, "h":2, "r":-30},
|
||||||
|
{"x":13.5, "y":4.5},
|
||||||
|
{"x":14.5, "y":4.25},
|
||||||
|
{"x":15.5, "y":4.25}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# Southern Breeze
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Split ergonomics meets productivity. Southern Breeze Rev1 is a split keyboard with 6×4 keys, 4 key thumb cluster, arrow keys, and a 6 key macro cluster, with ortholinear column-staggered.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Eithan Shavit](https://github.com/eithanshavit)
|
||||||
|
* Hardware Supported: Breeze Rev1 PCB
|
||||||
|
* Hardware Availability: Coming soon
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make afternoonlabs/southern_breeze/rev1: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).
|
||||||
+3
-2
@@ -1,4 +1,4 @@
|
|||||||
/* Copyright 2021 zvecr<[email protected]>
|
/* Copyright 2021 Afternoon Labs
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -13,4 +13,5 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
#include "forever65.h"
|
|
||||||
|
#include "rev1.h"
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
/* Copyright 2021 Afternoon Labs
|
||||||
|
*
|
||||||
|
* 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 "southern_breeze.h"
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT( \
|
||||||
|
LW00, LW01, LW02, L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
|
||||||
|
LW10, LW11, LW12, L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
|
||||||
|
LWUP, L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
|
||||||
|
LWLT, LWDN, LWRT, L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, \
|
||||||
|
LT0, LT1, LT2, LT3, RT0, RT1, RT2, RT3 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ L05, L04, L03, L02, L01, L00, LW02, LW01, LW00 }, \
|
||||||
|
{ L15, L14, L13, L12, L11, L10, LW12, LW11, LW10 }, \
|
||||||
|
{ L25, L24, L23, L22, L21, L20, KC_NO, LWUP, KC_NO }, \
|
||||||
|
{ L35, L34, L33, L32, L31, L30, LWRT, LWDN, LWLT }, \
|
||||||
|
{ LT3, LT2, LT1, LT0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ R00, R01, R02, R03, R04, R05, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ R10, R11, R12, R13, R14, R15, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ R20, R21, R22, R23, R24, R25, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ R30, R31, R32, R33, R34, R35, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ RT0, RT1, RT2, RT3, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = caterina
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = no # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = yes # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
SPLIT_KEYBOARD = yes
|
||||||
+2
-3
@@ -1,4 +1,4 @@
|
|||||||
/* Copyright 2021 zvecr<[email protected]>
|
/* Copyright 2021 Afternoon Labs
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@@ -13,6 +13,5 @@
|
|||||||
* You should have received a copy of the GNU General Public License
|
* You should have received a copy of the GNU General Public License
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "quantum.h"
|
#include "southern_breeze.h"
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
/* Copyright 2021 Afternoon Labs
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifdef KEYBOARD_afternoonlabs_southern_breeze_rev1
|
||||||
|
# include "rev1.h"
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
/* Copyright 2021 Afternoon Labs
|
||||||
|
*
|
||||||
|
* 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"
|
||||||
|
|
||||||
|
#define NO_ACTION_MACRO
|
||||||
|
#define NO_ACTION_FUNCTION
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
/* Copyright 2021 Afternoon Labs
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
enum layer_names {
|
||||||
|
_MAIN,
|
||||||
|
_LOWER,
|
||||||
|
_RAISE,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define LOWER MO(_LOWER)
|
||||||
|
#define RAISE MO(_RAISE)
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_MAIN] = LAYOUT(
|
||||||
|
//┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
|
||||||
|
_______, KC_WH_U, _______, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, KC_GRV,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
KC_BTN1, KC_WH_D, KC_BTN2, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
KC_MS_U, 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_UP,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
KC_MS_L, KC_MS_D, KC_MS_R, 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_LEFT, KC_DOWN, KC_RIGHT,
|
||||||
|
//└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
|
||||||
|
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX
|
||||||
|
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||||
|
),
|
||||||
|
|
||||||
|
[_LOWER] = LAYOUT(
|
||||||
|
//┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
|
||||||
|
_______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, KC_BTN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||||
|
),
|
||||||
|
|
||||||
|
[_RAISE] = LAYOUT(
|
||||||
|
//┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______,
|
||||||
|
//└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
|
||||||
|
_______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT
|
||||||
|
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||||
|
),
|
||||||
|
};
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# Default Summer Breeze Layout
|
||||||
|
|
||||||
|
This is the default suggested layout for the Summer Breeze Split Keyboard (with both arrow clusters).
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
# LTO: link time optimization makes the build take slightly longer
|
||||||
|
# but makes the resulting .hex file smaller, which allows you to
|
||||||
|
# fit more features into smaller MCUs:
|
||||||
|
LTO_ENABLE = yes
|
||||||
|
# Support for these features make the hex file larger, but we want 'em:
|
||||||
|
MOUSEKEY_ENABLE = yes # Allow mapping of mouse control keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Allow audio & system control keys
|
||||||
|
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||||
|
NKRO_ENABLE = yes # Support USB N-key roll over.
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
/* Copyright 2021 Afternoon Labs
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
enum layer_names {
|
||||||
|
_MAIN,
|
||||||
|
_LOWER,
|
||||||
|
_RAISE,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define LOWER MO(_LOWER)
|
||||||
|
#define RAISE MO(_RAISE)
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_MAIN] = LAYOUT(
|
||||||
|
//┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
|
||||||
|
_______, KC_WH_U, _______, KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, KC_GRV,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
KC_BTN1, KC_WH_D, KC_BTN2, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
KC_MS_U, 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_UP,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
KC_MS_L, KC_MS_D, KC_MS_R, 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_LEFT, KC_DOWN, KC_RIGHT,
|
||||||
|
//└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
|
||||||
|
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, RAISE, LOWER, XXXXXXX
|
||||||
|
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||||
|
),
|
||||||
|
|
||||||
|
[_LOWER] = LAYOUT(
|
||||||
|
//┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
|
||||||
|
_______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, KC_BTN3, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||||
|
),
|
||||||
|
|
||||||
|
[_RAISE] = LAYOUT(
|
||||||
|
//┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PPLS, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, _______, _______,
|
||||||
|
//└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
|
||||||
|
_______, _______, _______, _______, _______, _______, KC_P0, KC_PDOT
|
||||||
|
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||||
|
),
|
||||||
|
|
||||||
|
[3] = LAYOUT(
|
||||||
|
//┌────────┬────────┬────────┐┌────────┬────────┬────────┬────────┬────────┬────────┐ ┌────────┬────────┬────────┬────────┬────────┬────────┐┌────────┬────────┬────────┐
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//├────────┼────────┼────────┤├────────┼────────┼────────┼────────┼────────┼────────┤ ├────────┼────────┼────────┼────────┼────────┼────────┤├────────┼────────┼────────┤
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
//└────────┴────────┴────────┘└────────┴────────┼────────┼────────┼────────┼────────┼────────┐ ┌────────┼────────┼────────┼────────┴────────┴────────┴────────┘└────────┴────────┴────────┘
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
// └────────┴────────┴────────┴────────┘ └────────┴────────┴────────┴────────┘
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# Default Summer Breeze Layout
|
||||||
|
|
||||||
|
This is the default suggested layout for the Summer Breeze Split Keyboard (with both arrow clusters).
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
|
# LTO: link time optimization makes the build take slightly longer
|
||||||
|
# but makes the resulting .hex file smaller, which allows you to
|
||||||
|
# fit more features into smaller MCUs:
|
||||||
|
LTO_ENABLE = yes
|
||||||
|
# Support for these features make the hex file larger, but we want 'em:
|
||||||
|
MOUSEKEY_ENABLE = yes # Allow mapping of mouse control keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Allow audio & system control keys
|
||||||
|
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||||
|
NKRO_ENABLE = yes # Support USB N-key roll over.
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
/* Copyright 2021 Afternoon Labs
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0x616C
|
||||||
|
#define PRODUCT_ID 0x0004
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER AfternoonLabs
|
||||||
|
#define PRODUCT Summer Breeze
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
// Rows are doubled-up
|
||||||
|
#define MATRIX_ROWS 10
|
||||||
|
#define MATRIX_COLS 9
|
||||||
|
|
||||||
|
// wiring of each half
|
||||||
|
#define MATRIX_ROW_PINS \
|
||||||
|
{ F4, F5, F6, F7, B1 }
|
||||||
|
#define MATRIX_COL_PINS \
|
||||||
|
{ B2, D1, D0, D4, C6, D7, E6, B4, B5 }
|
||||||
|
|
||||||
|
#define SPLIT_HAND_PIN B3
|
||||||
|
|
||||||
|
/* Set 0 if debouncing isn't needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
#define SOFT_SERIAL_PIN D2
|
||||||
|
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define BOOTMAGIC_LITE_ROW_RIGHT 0
|
||||||
|
#define BOOTMAGIC_LITE_COLUMN_RIGHT 5
|
||||||
|
#define BOOTMAGIC_LITE_ROW_LEFT 0
|
||||||
|
#define BOOTMAGIC_LITE_COLUMN_LEFT 5
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Summer Breeze",
|
||||||
|
"url": "afternoonlabs.com/breeze",
|
||||||
|
"productId": "0x0004",
|
||||||
|
"maintainer": "eithanshavit",
|
||||||
|
"width": 19,
|
||||||
|
"height": 6,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0.375},
|
||||||
|
{"x":1, "y":0.375},
|
||||||
|
{"x":2, "y":0.375},
|
||||||
|
{"x":3.25, "y":0.375},
|
||||||
|
{"x":4.25, "y":0.375},
|
||||||
|
{"x":5.25, "y":0.125},
|
||||||
|
{"x":6.25, "y":0},
|
||||||
|
{"x":7.25, "y":0.125},
|
||||||
|
{"x":8.25, "y":0.25},
|
||||||
|
{"x":13, "y":0.25},
|
||||||
|
{"x":14, "y":0.125},
|
||||||
|
{"x":15, "y":0},
|
||||||
|
{"x":16, "y":0.125},
|
||||||
|
{"x":17, "y":0.375},
|
||||||
|
{"x":18, "y":0.375},
|
||||||
|
{"x":19.25, "y":0.375},
|
||||||
|
{"x":20.25, "y":0.375},
|
||||||
|
{"x":21.25, "y":0.375},
|
||||||
|
|
||||||
|
{"x":0, "y":1.375},
|
||||||
|
{"x":1, "y":1.375},
|
||||||
|
{"x":2, "y":1.375},
|
||||||
|
{"x":3.25, "y":1.375},
|
||||||
|
{"x":4.25, "y":1.375},
|
||||||
|
{"x":5.25, "y":1.125},
|
||||||
|
{"x":6.25, "y":1},
|
||||||
|
{"x":7.25, "y":1.125},
|
||||||
|
{"x":8.25, "y":1.25},
|
||||||
|
{"x":13, "y":1.25},
|
||||||
|
{"x":14, "y":1.125},
|
||||||
|
{"x":15, "y":1},
|
||||||
|
{"x":16, "y":1.125},
|
||||||
|
{"x":17, "y":1.375},
|
||||||
|
{"x":18, "y":1.375},
|
||||||
|
{"x":19.25, "y":1.375},
|
||||||
|
{"x":20.25, "y":1.375},
|
||||||
|
{"x":21.25, "y":1.375},
|
||||||
|
|
||||||
|
{"x":1, "y":2.375},
|
||||||
|
{"x":3.25, "y":2.375},
|
||||||
|
{"x":4.25, "y":2.375},
|
||||||
|
{"x":5.25, "y":2.125},
|
||||||
|
{"x":6.25, "y":2},
|
||||||
|
{"x":7.25, "y":2.125},
|
||||||
|
{"x":8.25, "y":2.25},
|
||||||
|
{"x":13, "y":2.25},
|
||||||
|
{"x":14, "y":2.125},
|
||||||
|
{"x":15, "y":2},
|
||||||
|
{"x":16, "y":2.125},
|
||||||
|
{"x":17, "y":2.375},
|
||||||
|
{"x":18, "y":2.375},
|
||||||
|
{"x":20.25, "y":2.375},
|
||||||
|
|
||||||
|
{"x":0, "y":3.375},
|
||||||
|
{"x":1, "y":3.375},
|
||||||
|
{"x":2, "y":3.375},
|
||||||
|
{"x":3.25, "y":3.375},
|
||||||
|
{"x":4.25, "y":3.375},
|
||||||
|
{"x":5.25, "y":3.125},
|
||||||
|
{"x":6.25, "y":3},
|
||||||
|
{"x":7.25, "y":3.125},
|
||||||
|
{"x":8.25, "y":3.25},
|
||||||
|
{"x":13, "y":3.25},
|
||||||
|
{"x":14, "y":3.125},
|
||||||
|
{"x":15, "y":3},
|
||||||
|
{"x":16, "y":3.125},
|
||||||
|
{"x":17, "y":3.375},
|
||||||
|
{"x":18, "y":3.375},
|
||||||
|
{"x":19.25, "y":3.375},
|
||||||
|
{"x":20.25, "y":3.375},
|
||||||
|
{"x":21.25, "y":3.375},
|
||||||
|
|
||||||
|
{"x":5.75, "y":4.25},
|
||||||
|
{"x":6.75, "y":4.25},
|
||||||
|
{"x":7.75, "y":4.5},
|
||||||
|
{"x":9.5, "y":3.75, "h":2, "r":30},
|
||||||
|
{"x":11.75, "y":3.75, "h":2, "r":-30},
|
||||||
|
{"x":13.5, "y":4.5},
|
||||||
|
{"x":14.5, "y":4.25},
|
||||||
|
{"x":15.5, "y":4.25}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# Summer Breeze
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Split ergonomics meets productivity. Breeze Rev1 is a split keyboard with 6×4 keys, 4 key thumb clusters, arrow keys, and two 6 key macro clusters, with ortholinear column-staggered.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Eithan Shavit](https://github.com/eithanshavit)
|
||||||
|
* Hardware Supported: Breeze Rev1 PCB
|
||||||
|
* Hardware Availability: Coming soon
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make afternoonlabs/summer_breeze/rev1:default
|
||||||
|
|
||||||
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/* Copyright 2021 Afternoon Labs
|
||||||
|
*
|
||||||
|
* 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 "rev1.h"
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
/* Copyright 2021 Afternoon Labs
|
||||||
|
*
|
||||||
|
* 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 "summer_breeze.h"
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT( \
|
||||||
|
LW00, LW01, LW02, L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, MC0, MC1, MC2, \
|
||||||
|
LW10, LW11, LW12, L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, MC3, MC4, MC5, \
|
||||||
|
LW21, L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, AUP, \
|
||||||
|
LW30, LW31, LW32, L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, ALT, ADN, ART, \
|
||||||
|
LT0, LT1, LT2, LT3, RT0, RT1, RT2, RT3 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ L05, L04, L03, L02, L01, L00, LW02, LW01, LW00 }, \
|
||||||
|
{ L15, L14, L13, L12, L11, L10, LW12, LW11, LW10 }, \
|
||||||
|
{ L25, L24, L23, L22, L21, L20, KC_NO, LW01, KC_NO }, \
|
||||||
|
{ L35, L34, L33, L32, L31, L30, LW32, LW31, LW30 }, \
|
||||||
|
{ LT3, LT2, LT1, LT0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ R00, R01, R02, R03, R04, R05, MC0, MC1, MC2 }, \
|
||||||
|
{ R10, R11, R12, R13, R14, R15, MC3, MC4, MC5 }, \
|
||||||
|
{ R20, R21, R22, R23, R24, R25, KC_NO, AUP, KC_NO }, \
|
||||||
|
{ R30, R31, R32, R33, R34, R35, ALT, ADN, ART }, \
|
||||||
|
{ RT0, RT1, RT2, RT3, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = caterina
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = no # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = yes # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
SPLIT_KEYBOARD = yes
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/* Copyright 2021 Afternoon Labs
|
||||||
|
*
|
||||||
|
* 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 "summer_breeze.h"
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
/* Copyright 2021 Afternoon Labs
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#ifdef KEYBOARD_afternoonlabs_summer_breeze_rev1
|
||||||
|
# include "rev1.h"
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Andrew Kannan
|
||||||
|
|
||||||
|
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 "andromeda.h"
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Andrew Kannan
|
||||||
|
|
||||||
|
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_tkl_ansi_wkl( \
|
||||||
|
K000, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, \
|
||||||
|
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, \
|
||||||
|
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, \
|
||||||
|
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, \
|
||||||
|
K400, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, K415, \
|
||||||
|
K500, K502, K507, K511, K513, K514, K515, K516 \
|
||||||
|
) { \
|
||||||
|
{ K000, KC_NO, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016 }, \
|
||||||
|
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116 }, \
|
||||||
|
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213 , K214, K215, K216 }, \
|
||||||
|
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ K400, KC_NO, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, KC_NO, K415, KC_NO }, \
|
||||||
|
{ K500, KC_NO, K502, KC_NO, KC_NO, KC_NO, KC_NO, K507, KC_NO, KC_NO, KC_NO, K511, KC_NO, K513, K514, K515, K516 } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Andrew Kannan
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xA103
|
||||||
|
#define PRODUCT_ID 0x000A
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER ai03 Design Studio
|
||||||
|
#define PRODUCT Andromeda
|
||||||
|
|
||||||
|
#define MATRIX_ROWS 6
|
||||||
|
#define MATRIX_COLS 17
|
||||||
|
|
||||||
|
#define MATRIX_COL_PINS { A10, A9, A8, B15, B14, B13, B12, B11, B10, B2, B1, B0, A7, A6, B5, B8, B9 }
|
||||||
|
#define MATRIX_ROW_PINS { B4, B3, A15, A3, A4, A5 }
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* define if matrix has ghost */
|
||||||
|
//#define MATRIX_HAS_GHOST
|
||||||
|
|
||||||
|
/* Set 0 if debouncing isn't needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Andromeda",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "ai03",
|
||||||
|
"width": 18.25,
|
||||||
|
"height": 6.25,
|
||||||
|
"layouts": {
|
||||||
|
"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.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"Insert", "x":15.25, "y":1.25}, {"label":"Home", "x":16.25, "y":1.25}, {"label":"PgUp", "x":17.25, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.25}, {"label":"End", "x":16.25, "y":2.25}, {"label":"PgDn", "x":17.25, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"Shift", "x":0, "y":4.25, "w":2.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, {"x":4, "y":5.25, "w":7}, {"label":"Alt", "x":11, "y":5.25, "w":1.5}, {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, {"label":"\u2190", "x":15.25, "y":5.25}, {"label":"\u2193", "x":16.25, "y":5.25}, {"label":"\u2192", "x":17.25, "y":5.25}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2012,2013 Jun Wako <[email protected]>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_BASE] = 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, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2012,2013 Jun Wako <[email protected]>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
_FN1,
|
||||||
|
_FN2,
|
||||||
|
_FN3
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_BASE] = 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, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN1] = LAYOUT_tkl_ansi_wkl(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
|
[_FN2] = LAYOUT_tkl_ansi_wkl(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
|
[_FN3] = LAYOUT_tkl_ansi_wkl(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
# ai03 Andromeda
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [ai03](https://github.com/ai03-2725)
|
||||||
|
* Hardware Supported: Andromeda PCB
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make ai03/andromeda: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).
|
||||||
|
|
||||||
|
Press and hold the reset button for at least 5 seconds before releasing to enter the bootloader mode.
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = STM32F072
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = yes # Console for debug
|
||||||
|
COMMAND_ENABLE = 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 = yes # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
|
||||||
|
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||||
|
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
||||||
@@ -15,11 +15,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "noroadsleft.h"
|
#include "noroadsleft.h"
|
||||||
#include "sendstring_dvorak.h"
|
|
||||||
|
|
||||||
enum layer_names {
|
enum layer_names {
|
||||||
_QW,
|
|
||||||
_DV,
|
_DV,
|
||||||
|
_QW,
|
||||||
_NP,
|
_NP,
|
||||||
_FN,
|
_FN,
|
||||||
_SY
|
_SY
|
||||||
@@ -30,14 +29,6 @@ enum layer_names {
|
|||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
[_QW] = LAYOUT_65_ansi(
|
|
||||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
|
|
||||||
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_PGUP,
|
|
||||||
FN_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_PGDN,
|
|
||||||
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_END,
|
|
||||||
CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
|
||||||
),
|
|
||||||
|
|
||||||
[_DV] = LAYOUT_65_ansi(
|
[_DV] = LAYOUT_65_ansi(
|
||||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME,
|
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME,
|
||||||
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_PGUP,
|
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS, KC_PGUP,
|
||||||
@@ -46,6 +37,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
),
|
),
|
||||||
|
|
||||||
|
[_QW] = LAYOUT_65_ansi(
|
||||||
|
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_HOME,
|
||||||
|
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_PGUP,
|
||||||
|
FN_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_PGDN,
|
||||||
|
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_END,
|
||||||
|
CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
[_NP] = LAYOUT_65_ansi(
|
[_NP] = LAYOUT_65_ansi(
|
||||||
_______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, KC_E, KC_F, _______, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PSLS, KC_PEQL, _______, _______,
|
_______, _______, _______, _______, KC_E, KC_F, _______, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PSLS, KC_PEQL, _______, _______,
|
||||||
@@ -63,7 +62,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
|
|
||||||
[_SY] = LAYOUT_65_ansi(
|
[_SY] = LAYOUT_65_ansi(
|
||||||
TG(_SY), TO(_QW), TO(_DV), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, DEBUG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX,
|
TG(_SY), TO(_DV), TO(_QW), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, DEBUG, XXXXXXX, VRSN, XXXXXXX, XXXXXXX,
|
||||||
XXXXXXX, XXXXXXX, M_MDSWP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, M_MDSWP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Paul Ewing
|
||||||
|
|
||||||
|
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 "bloomer.h"
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Paul Ewing
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
#if defined(KEYBOARD_cozykeys_bloomer_v2)
|
||||||
|
#include "v2.h"
|
||||||
|
#elif defined(KEYBOARD_cozykeys_bloomer_v3)
|
||||||
|
#include "v3.h"
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Paul Ewing
|
||||||
|
|
||||||
|
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 0x1191
|
||||||
|
#define MANUFACTURER CozyKeys
|
||||||
|
#define PRODUCT Bloomer
|
||||||
|
|
||||||
|
// Key matrix size
|
||||||
|
#define MATRIX_ROWS 6
|
||||||
|
#define MATRIX_COLS 15
|
||||||
|
|
||||||
|
// Enable RGB backlight
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
#define RGB_DI_PIN D7
|
||||||
|
#define RGBLED_NUM 12
|
||||||
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
|
#define RGBLIGHT_LIMIT_VAL 255
|
||||||
|
#define RGBLIGHT_SLEEP
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#define RGBLIGHT_BREATHE_TABLE_SIZE 256
|
||||||
|
#define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85
|
||||||
|
#define RGBLIGHT_EFFECT_BREATHE_MAX 255
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
// Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
// Locking resynchronize hack
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# Bloomer
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
- Keyboard Maintainer: [Paul Ewing](https://github.com/pcewing)
|
||||||
|
- Hardware Supported: ItsyBitsy 32u4 5V 16MHz
|
||||||
|
- Hardware Availability: [Bloomer Repository](https://github.com/cozykeys/bloomer)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make cozykeys/bloomer/v2:default # for Bloomer v2
|
||||||
|
make cozykeys/bloomer/v3:default # for Bloomer v3
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make cozykeys/bloomer/v2:default:flash # for Bloomer v2
|
||||||
|
make cozykeys/bloomer/v3:default:flash # for Bloomer v3
|
||||||
|
|
||||||
|
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).
|
||||||
|
|
||||||
|
## Flashing the Firmware
|
||||||
|
|
||||||
|
See the QMK docs for handwiring a keyboard; there is a section with instructions on how to flash the *.hex* file to the Teensy 2.0 controller.
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Paul Ewing
|
||||||
|
|
||||||
|
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 DEVICE_VER 0x0002
|
||||||
|
|
||||||
|
// Keyboard Matrix Assignments
|
||||||
|
#define MATRIX_ROW_PINS { D0, D1, D3, D2, D4, B2 }
|
||||||
|
#define MATRIX_COL_PINS { F7, F6, F5, F4, F1, F0, B1, B4, C6, E6, B5, B6, B7, D6, C7 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
@@ -0,0 +1,100 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Bloomer",
|
||||||
|
"url": "https://github.com/cozykeys/bloomer",
|
||||||
|
"maintainer": "pcewing",
|
||||||
|
"width": 15,
|
||||||
|
"height": 6,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{ "label": "k00", "x": 0.868, "y": 0.0, "r": 10 },
|
||||||
|
{ "label": "k01", "x": 1.853, "y": 0.174, "r": 10 },
|
||||||
|
{ "label": "k02", "x": 2.856, "y": 0.244, "r": 10 },
|
||||||
|
{ "label": "k03", "x": 3.896, "y": 0.107, "r": 10 },
|
||||||
|
{ "label": "k04", "x": 4.826, "y": 0.591, "r": 10 },
|
||||||
|
{ "label": "k05", "x": 5.765, "y": 1.023, "r": 10 },
|
||||||
|
{ "label": "k06", "x": 7.031, "y": 0.724, "r": 0 },
|
||||||
|
{ "label": "k07", "x": 8.031, "y": 0.46, "r": 0 },
|
||||||
|
{ "label": "k08", "x": 9.031, "y": 0.724, "r": 0 },
|
||||||
|
{ "label": "k09", "x": 10.297, "y": 1.023, "r": -10 },
|
||||||
|
{ "label": "k10", "x": 11.236, "y": 0.591, "r": -10 },
|
||||||
|
{ "label": "k11", "x": 12.166, "y": 0.107, "r": -10 },
|
||||||
|
{ "label": "k12", "x": 13.196, "y": 0.192, "r": -10 },
|
||||||
|
{ "label": "k13", "x": 14.208, "y": 0.174, "r": -10 },
|
||||||
|
{ "label": "k14", "x": 15.193, "y": 0.0, "r": -10 },
|
||||||
|
{ "label": "k15", "x": 0.695, "y": 0.985, "r": 10 },
|
||||||
|
{ "label": "k16", "x": 1.679, "y": 1.158, "r": 10 },
|
||||||
|
{ "label": "k17", "x": 2.682, "y": 1.229, "r": 10 },
|
||||||
|
{ "label": "k18", "x": 3.722, "y": 1.092, "r": 10 },
|
||||||
|
{ "label": "k19", "x": 4.652, "y": 1.576, "r": 10 },
|
||||||
|
{ "label": "k20", "x": 5.591, "y": 2.008, "r": 10 },
|
||||||
|
{ "label": "k21", "x": 7.031, "y": 2.249, "r": 0 },
|
||||||
|
{ "label": "k22", "x": 8.031, "y": 1.985, "r": 0 },
|
||||||
|
{ "label": "k23", "x": 9.031, "y": 2.249, "r": 0 },
|
||||||
|
{ "label": "k24", "x": 10.47, "y": 2.008, "r": -10 },
|
||||||
|
{ "label": "k25", "x": 11.409, "y": 1.576, "r": -10 },
|
||||||
|
{ "label": "k26", "x": 12.34, "y": 1.092, "r": -10 },
|
||||||
|
{ "label": "k27", "x": 13.37, "y": 1.177, "r": -10 },
|
||||||
|
{ "label": "k28", "x": 14.382, "y": 1.158, "r": -10 },
|
||||||
|
{ "label": "k29", "x": 15.367, "y": 0.985, "r": -10 },
|
||||||
|
{ "label": "k30", "x": 0.521, "y": 1.97, "r": 10 },
|
||||||
|
{ "label": "k31", "x": 1.506, "y": 2.143, "r": 10 },
|
||||||
|
{ "label": "k32", "x": 2.509, "y": 2.214, "r": 10 },
|
||||||
|
{ "label": "k33", "x": 3.548, "y": 2.077, "r": 10 },
|
||||||
|
{ "label": "k34", "x": 4.478, "y": 2.561, "r": 10 },
|
||||||
|
{ "label": "k35", "x": 5.418, "y": 2.993, "r": 10 },
|
||||||
|
{ "label": "k36", "x": 7.031, "y": 3.249, "r": 0 },
|
||||||
|
{ "label": "k37", "x": 8.031, "y": 2.985, "r": 0 },
|
||||||
|
{ "label": "k38", "x": 9.031, "y": 3.249, "r": 0 },
|
||||||
|
{ "label": "k39", "x": 10.644, "y": 2.993, "r": -10 },
|
||||||
|
{ "label": "k40", "x": 11.583, "y": 2.561, "r": -10 },
|
||||||
|
{ "label": "k41", "x": 12.513, "y": 2.077, "r": -10 },
|
||||||
|
{ "label": "k42", "x": 13.544, "y": 2.162, "r": -10 },
|
||||||
|
{ "label": "k43", "x": 14.556, "y": 2.143, "r": -10 },
|
||||||
|
{ "label": "k44", "x": 15.541, "y": 1.97, "r": -10 },
|
||||||
|
{ "label": "k45", "x": 0.347, "y": 2.954, "r": 10 },
|
||||||
|
{ "label": "k46", "x": 1.332, "y": 3.128, "r": 10 },
|
||||||
|
{ "label": "k47", "x": 2.335, "y": 3.198, "r": 10 },
|
||||||
|
{ "label": "k48", "x": 3.375, "y": 3.062, "r": 10 },
|
||||||
|
{ "label": "k49", "x": 4.305, "y": 3.546, "r": 10 },
|
||||||
|
{ "label": "k50", "x": 5.244, "y": 3.978, "r": 10 },
|
||||||
|
{ "label": "k51", "x": 10.818, "y": 3.978, "r": -10 },
|
||||||
|
{ "label": "k52", "x": 11.757, "y": 3.546, "r": -10 },
|
||||||
|
{ "label": "k53", "x": 12.687, "y": 3.062, "r": -10 },
|
||||||
|
{ "label": "k54", "x": 13.717, "y": 3.147, "r": -10 },
|
||||||
|
{ "label": "k55", "x": 14.729, "y": 3.128, "r": -10 },
|
||||||
|
{ "label": "k56", "x": 15.714, "y": 2.954, "r": -10 },
|
||||||
|
{ "label": "k57", "x": 0.174, "y": 3.939, "r": 10 },
|
||||||
|
{ "label": "k58", "x": 1.158, "y": 4.113, "r": 10 },
|
||||||
|
{ "label": "k59", "x": 2.161, "y": 4.183, "r": 10 },
|
||||||
|
{ "label": "k60", "x": 3.201, "y": 4.047, "r": 10 },
|
||||||
|
{ "label": "k61", "x": 4.131, "y": 4.53, "r": 10 },
|
||||||
|
{ "label": "k62", "x": 5.07, "y": 4.963, "r": 10 },
|
||||||
|
{ "label": "k63", "x": 7.031, "y": 4.984, "r": 0 },
|
||||||
|
{ "label": "k64", "x": 8.031, "y": 4.51, "r": 0 },
|
||||||
|
{ "label": "k65", "x": 9.031, "y": 4.984, "r": 0 },
|
||||||
|
{ "label": "k66", "x": 10.991, "y": 4.963, "r": -10 },
|
||||||
|
{ "label": "k67", "x": 11.93, "y": 4.53, "r": -10 },
|
||||||
|
{ "label": "k68", "x": 12.861, "y": 4.047, "r": -10 },
|
||||||
|
{ "label": "k69", "x": 13.891, "y": 4.131, "r": -10 },
|
||||||
|
{ "label": "k70", "x": 14.903, "y": 4.113, "r": -10 },
|
||||||
|
{ "label": "k71", "x": 15.888, "y": 3.939, "r": -10 },
|
||||||
|
{ "label": "k72", "x": 0.0, "y": 4.924, "r": 10 },
|
||||||
|
{ "label": "k73", "x": 0.985, "y": 5.098, "r": 10 },
|
||||||
|
{ "label": "k74", "x": 1.988, "y": 5.168, "r": 10 },
|
||||||
|
{ "label": "k75", "x": 3.027, "y": 5.031, "r": 10 },
|
||||||
|
{ "label": "k76", "x": 3.957, "y": 5.515, "r": 10 },
|
||||||
|
{ "label": "k77", "x": 4.897, "y": 5.947, "r": 10 },
|
||||||
|
{ "label": "k78", "x": 5.883, "y": 6.115, "r": 10 },
|
||||||
|
{ "label": "k79", "x": 8.031, "y": 5.51, "r": 0 },
|
||||||
|
{ "label": "k80", "x": 10.179, "y": 6.115, "r": -10 },
|
||||||
|
{ "label": "k81", "x": 11.165, "y": 5.947, "r": -10 },
|
||||||
|
{ "label": "k82", "x": 12.104, "y": 5.515, "r": -10 },
|
||||||
|
{ "label": "k83", "x": 13.034, "y": 5.031, "r": -10 },
|
||||||
|
{ "label": "k84", "x": 14.065, "y": 5.116, "r": -10 },
|
||||||
|
{ "label": "k85", "x": 15.077, "y": 5.098, "r": -10 },
|
||||||
|
{ "label": "k86", "x": 16.062, "y": 4.924, "r": -10 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Paul Ewing
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
enum bloomer_layers {
|
||||||
|
DEFAULT,
|
||||||
|
FN
|
||||||
|
};
|
||||||
|
|
||||||
|
#define RGB_N RGB_MOD // Rotate to next RGB mode
|
||||||
|
#define RGB_P RGB_RMOD // Rotate to next RGB mode
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[DEFAULT] = LAYOUT(
|
||||||
|
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_PSCR, KC_SLCK, KC_PAUS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
|
||||||
|
KC_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_INS, KC_HOME, KC_PGUP, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_CAPS, KC_END, KC_PGDN, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||||
|
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_LEFT, KC_UP, KC_RGHT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, MO(FN), KC_BSPC, KC_DEL, KC_DOWN, KC_ENT, KC_SPC, KC_LBRC, KC_RBRC, KC_RALT, KC_RGUI, KC_RCTL
|
||||||
|
),
|
||||||
|
|
||||||
|
[FN] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
|
||||||
|
_______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, KC_F9, KC_F10, KC_F11, KC_F12, _______, RGB_HUD, RGB_SAD, RGB_VAD, _______, KC_GRV, KC_LBRC, KC_RBRC, _______, _______,
|
||||||
|
_______, KC_F5, KC_F6, KC_F7, KC_F8, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, _______, RGB_P, RGB_TOG, RGB_N, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, RGB_M_P, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# CozyKeys Bloomer v2 Default Keymap
|
||||||
|
|
||||||
|
## Default Layer
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Function Layer
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
# CozyKeys Bloomer v2
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
For more information on the Bloomer and how to build/flash the firmware, see the [readme.md](../readme.md) in the parent directory.
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = caterina
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Paul Ewing
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include "v2.h"
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Paul Ewing
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define ___ KC_NO
|
||||||
|
|
||||||
|
#define LAYOUT( \
|
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, \
|
||||||
|
k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
|
||||||
|
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44, \
|
||||||
|
k45, k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, \
|
||||||
|
k57, k58, k59, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k70, k71, \
|
||||||
|
k72, k73, k74, k75, k76, k77, k78, k79, k80, k81, k82, k83, k84, k85, k86 \
|
||||||
|
) \
|
||||||
|
{ /* c00 c01 c02 c03 c04 c05 c06 c07 c08 c09 c10 c11 c12 c13 c14 */ \
|
||||||
|
/* r0 */ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14 }, \
|
||||||
|
/* r1 */ { k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
|
||||||
|
/* r2 */ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k44 }, \
|
||||||
|
/* r3 */ { k45, k46, k47, k48, k49, k50, ___, ___, ___, k51, k52, k53, k54, k55, k56 }, \
|
||||||
|
/* r4 */ { k57, k58, k59, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k70, k71 }, \
|
||||||
|
/* r5 */ { k72, k73, k74, k75, k76, k77, k78, k79, k80, k81, k82, k83, k84, k85, k86 }, \
|
||||||
|
}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Paul Ewing
|
||||||
|
|
||||||
|
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 DEVICE_VER 0x0003
|
||||||
|
|
||||||
|
// Keyboard Matrix Assignments
|
||||||
|
#define MATRIX_ROW_PINS { D0, D1, D3, D2, D4, B2 }
|
||||||
|
#define MATRIX_COL_PINS { F7, F6, F5, F4, F1, F0, B1, B4, C6, E6, B5, B6, B7, D6, C7 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
@@ -0,0 +1,103 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Bloomer",
|
||||||
|
"url": "https://github.com/cozykeys/bloomer",
|
||||||
|
"maintainer": "pcewing",
|
||||||
|
"width": 15,
|
||||||
|
"height": 6,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{ "label": "k00", "x": 0.868, "y": 0.0, "r": 10 },
|
||||||
|
{ "label": "k01", "x": 1.853, "y": 0.174, "r": 10 },
|
||||||
|
{ "label": "k02", "x": 2.856, "y": 0.244, "r": 10 },
|
||||||
|
{ "label": "k03", "x": 3.896, "y": 0.107, "r": 10 },
|
||||||
|
{ "label": "k04", "x": 4.826, "y": 0.591, "r": 10 },
|
||||||
|
{ "label": "k05", "x": 5.765, "y": 1.023, "r": 10 },
|
||||||
|
{ "label": "k06", "x": 10.507, "y": 1.023, "r": -10 },
|
||||||
|
{ "label": "k07", "x": 11.446, "y": 0.591, "r": -10 },
|
||||||
|
{ "label": "k08", "x": 12.376, "y": 0.107, "r": -10 },
|
||||||
|
{ "label": "k09", "x": 13.406, "y": 0.192, "r": -10 },
|
||||||
|
{ "label": "k10", "x": 14.418, "y": 0.174, "r": -10 },
|
||||||
|
{ "label": "k11", "x": 15.403, "y": 0.0, "r": -10 },
|
||||||
|
{ "label": "k12", "x": 0.695, "y": 0.985, "r": 10 },
|
||||||
|
{ "label": "k13", "x": 1.679, "y": 1.158, "r": 10 },
|
||||||
|
{ "label": "k14", "x": 2.682, "y": 1.229, "r": 10 },
|
||||||
|
{ "label": "k15", "x": 3.722, "y": 1.092, "r": 10 },
|
||||||
|
{ "label": "k16", "x": 4.652, "y": 1.576, "r": 10 },
|
||||||
|
{ "label": "k17", "x": 5.591, "y": 2.008, "r": 10 },
|
||||||
|
{ "label": "k18", "x": 10.68, "y": 2.008, "r": -10 },
|
||||||
|
{ "label": "k19", "x": 11.619, "y": 1.576, "r": -10 },
|
||||||
|
{ "label": "k20", "x": 12.55, "y": 1.092, "r": -10 },
|
||||||
|
{ "label": "k21", "x": 13.58, "y": 1.177, "r": -10 },
|
||||||
|
{ "label": "k22", "x": 14.592, "y": 1.158, "r": -10 },
|
||||||
|
{ "label": "k23", "x": 15.577, "y": 0.985, "r": -10 },
|
||||||
|
{ "label": "k24", "x": 0.521, "y": 1.97, "r": 10 },
|
||||||
|
{ "label": "k25", "x": 1.506, "y": 2.143, "r": 10 },
|
||||||
|
{ "label": "k26", "x": 2.509, "y": 2.214, "r": 10 },
|
||||||
|
{ "label": "k27", "x": 3.548, "y": 2.077, "r": 10 },
|
||||||
|
{ "label": "k28", "x": 4.478, "y": 2.561, "r": 10 },
|
||||||
|
{ "label": "k29", "x": 5.418, "y": 2.993, "r": 10 },
|
||||||
|
{ "label": "k30", "x": 6.402, "y": 3.167, "r": 10 },
|
||||||
|
{ "label": "k31", "x": 7.636, "y": 3.217, "r": 0 },
|
||||||
|
{ "label": "k32", "x": 8.636, "y": 3.217, "r": 0 },
|
||||||
|
{ "label": "k33", "x": 9.869, "y": 3.167, "r": -10 },
|
||||||
|
{ "label": "k34", "x": 10.854, "y": 2.993, "r": -10 },
|
||||||
|
{ "label": "k35", "x": 11.793, "y": 2.561, "r": -10 },
|
||||||
|
{ "label": "k36", "x": 12.723, "y": 2.077, "r": -10 },
|
||||||
|
{ "label": "k37", "x": 13.754, "y": 2.162, "r": -10 },
|
||||||
|
{ "label": "k38", "x": 14.766, "y": 2.143, "r": -10 },
|
||||||
|
{ "label": "k39", "x": 15.75, "y": 1.97, "r": -10 },
|
||||||
|
{ "label": "k40", "x": 0.347, "y": 2.954, "r": 10 },
|
||||||
|
{ "label": "k41", "x": 1.332, "y": 3.128, "r": 10 },
|
||||||
|
{ "label": "k42", "x": 2.335, "y": 3.198, "r": 10 },
|
||||||
|
{ "label": "k43", "x": 3.375, "y": 3.062, "r": 10 },
|
||||||
|
{ "label": "k44", "x": 4.305, "y": 3.546, "r": 10 },
|
||||||
|
{ "label": "k45", "x": 5.244, "y": 3.978, "r": 10 },
|
||||||
|
{ "label": "k46", "x": 6.229, "y": 4.151, "r": 10 },
|
||||||
|
{ "label": "k47", "x": 7.636, "y": 4.217, "r": 0 },
|
||||||
|
{ "label": "k48", "x": 8.636, "y": 4.217, "r": 0 },
|
||||||
|
{ "label": "k49", "x": 10.043, "y": 4.151, "r": -10 },
|
||||||
|
{ "label": "k50", "x": 11.027, "y": 3.978, "r": -10 },
|
||||||
|
{ "label": "k51", "x": 11.967, "y": 3.546, "r": -10 },
|
||||||
|
{ "label": "k52", "x": 12.897, "y": 3.062, "r": -10 },
|
||||||
|
{ "label": "k53", "x": 13.927, "y": 3.147, "r": -10 },
|
||||||
|
{ "label": "k54", "x": 14.939, "y": 3.128, "r": -10 },
|
||||||
|
{ "label": "k55", "x": 15.924, "y": 2.954, "r": -10 },
|
||||||
|
{ "label": "k56", "x": 0.174, "y": 3.939, "r": 10 },
|
||||||
|
{ "label": "k57", "x": 1.158, "y": 4.113, "r": 10 },
|
||||||
|
{ "label": "k58", "x": 2.161, "y": 4.183, "r": 10 },
|
||||||
|
{ "label": "k59", "x": 3.201, "y": 4.047, "r": 10 },
|
||||||
|
{ "label": "k60", "x": 4.131, "y": 4.53, "r": 10 },
|
||||||
|
{ "label": "k61", "x": 5.07, "y": 4.963, "r": 10 },
|
||||||
|
{ "label": "k62", "x": 6.055, "y": 5.136, "r": 10 },
|
||||||
|
{ "label": "k63", "x": 7.136, "y": 5.217, "r": 0 },
|
||||||
|
{ "label": "k64", "x": 8.136, "y": 5.217, "r": 0 },
|
||||||
|
{ "label": "k65", "x": 9.136, "y": 5.217, "r": 0 },
|
||||||
|
{ "label": "k66", "x": 10.216, "y": 5.136, "r": -10 },
|
||||||
|
{ "label": "k67", "x": 11.201, "y": 4.963, "r": -10 },
|
||||||
|
{ "label": "k68", "x": 12.14, "y": 4.53, "r": -10 },
|
||||||
|
{ "label": "k69", "x": 13.07, "y": 4.047, "r": -10 },
|
||||||
|
{ "label": "k70", "x": 14.101, "y": 4.131, "r": -10 },
|
||||||
|
{ "label": "k71", "x": 15.113, "y": 4.113, "r": -10 },
|
||||||
|
{ "label": "k72", "x": 16.098, "y": 3.939, "r": -10 },
|
||||||
|
{ "label": "k73", "x": 0.0, "y": 4.924, "r": 10 },
|
||||||
|
{ "label": "k74", "x": 0.985, "y": 5.098, "r": 10 },
|
||||||
|
{ "label": "k75", "x": 1.988, "y": 5.168, "r": 10 },
|
||||||
|
{ "label": "k76", "x": 3.027, "y": 5.031, "r": 10 },
|
||||||
|
{ "label": "k77", "x": 3.957, "y": 5.515, "r": 10 },
|
||||||
|
{ "label": "k78", "x": 4.897, "y": 5.947, "r": 10 },
|
||||||
|
{ "label": "k79", "x": 5.881, "y": 6.121, "r": 10 },
|
||||||
|
{ "label": "k80", "x": 7.136, "y": 6.217, "r": 0 },
|
||||||
|
{ "label": "k81", "x": 8.136, "y": 6.217, "r": 0 },
|
||||||
|
{ "label": "k82", "x": 9.136, "y": 6.217, "r": 0 },
|
||||||
|
{ "label": "k83", "x": 10.39, "y": 6.121, "r": -10 },
|
||||||
|
{ "label": "k84", "x": 11.375, "y": 5.947, "r": -10 },
|
||||||
|
{ "label": "k85", "x": 12.314, "y": 5.515, "r": -10 },
|
||||||
|
{ "label": "k86", "x": 13.244, "y": 5.031, "r": -10 },
|
||||||
|
{ "label": "k87", "x": 14.274, "y": 5.116, "r": -10 },
|
||||||
|
{ "label": "k88", "x": 15.287, "y": 5.098, "r": -10 },
|
||||||
|
{ "label": "k89", "x": 16.271, "y": 4.924, "r": -10 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Paul Ewing
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
enum bloomer_layers {
|
||||||
|
DEFAULT,
|
||||||
|
FN,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define RGB_N RGB_MOD // Rotate to next RGB mode
|
||||||
|
#define RGB_P RGB_RMOD // Rotate to next RGB mode
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[DEFAULT] = LAYOUT(
|
||||||
|
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_EQL, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_PSCR, KC_PAUS, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
|
||||||
|
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_PGUP, KC_SLCK, KC_NLCK, KC_HOME, 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_PGDN, KC_CAPS, KC_UP, KC_INS, KC_END, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_GRV, MO(FN), KC_BSPC, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_ENT, KC_SPC, KC_LBRC, KC_RBRC, KC_RALT, KC_RGUI, KC_RCTL
|
||||||
|
),
|
||||||
|
|
||||||
|
[FN] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, RGB_TOG, RGB_M_P, _______, _______, KC_GRV, KC_LBRC, KC_RBRC, _______, _______,
|
||||||
|
_______, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, RGB_P, RGB_N, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______,
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# CozyKeys Bloomer v3 Default Keymap
|
||||||
|
|
||||||
|
## Default Layer
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
## Function Layer
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
# CozyKeys Bloomer v3
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
For more information on the Bloomer and how to build/flash the firmware, see the [readme.md](../readme.md) in the parent directory.
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = caterina
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Paul Ewing
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include "v3.h"
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Paul Ewing
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT( \
|
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, \
|
||||||
|
k12, k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23, \
|
||||||
|
k24, k25, k26, k27, k28, k29, k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, \
|
||||||
|
k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, \
|
||||||
|
k56, k57, k58, k59, k60, k61, k62, k63, k64, k65, k66, k67, k68, k69, k70, k71, k72, \
|
||||||
|
k73, k74, k75, k76, k77, k78, k79, k80, k81, k82, k83, k84, k85, k86, k87, k88, k89 \
|
||||||
|
) \
|
||||||
|
{ /* c00 c01 c02 c03 c04 c05 c06 c07 c08 c09 c10 c11 c12 c13 c14 */ \
|
||||||
|
/* r0 */ { k00, k01, k02, k03, k04, k05, k31, k63, k32, k06, k07, k08, k09, k10, k11 }, \
|
||||||
|
/* r1 */ { k12, k13, k14, k15, k16, k17, k47, k80, k48, k18, k19, k20, k21, k22, k23 }, \
|
||||||
|
/* r2 */ { k24, k25, k26, k27, k28, k29, k30, k64, k33, k34, k35, k36, k37, k38, k39 }, \
|
||||||
|
/* r3 */ { k40, k41, k42, k43, k44, k45, k46, k81, k49, k50, k51, k52, k53, k54, k55 }, \
|
||||||
|
/* r4 */ { k56, k57, k58, k59, k60, k61, k62, k65, k66, k67, k68, k69, k70, k71, k72 }, \
|
||||||
|
/* r5 */ { k73, k74, k75, k76, k77, k78, k79, k82, k83, k84, k85, k86, k87, k88, k89 } \
|
||||||
|
}
|
||||||
@@ -25,7 +25,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \
|
L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \
|
||||||
L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \
|
L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \
|
||||||
L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \
|
L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \
|
||||||
L30, L31, L32, L33, R30, R31, R32, R33 \
|
L30, R33, \
|
||||||
|
L31, L32, L33, R30, R31, R32 \
|
||||||
) \
|
) \
|
||||||
{ \
|
{ \
|
||||||
{ L00, L01, L02, L03, L04 }, \
|
{ L00, L01, L02, L03, L04 }, \
|
||||||
|
|||||||
@@ -0,0 +1,59 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "DracuLad",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "MangoIV",
|
||||||
|
"width": 13,
|
||||||
|
"height": 5.5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"L00", "x":0, "y":1},
|
||||||
|
{"label":"L01", "x":1, "y":0.35},
|
||||||
|
{"label":"L02", "x":2, "y":0},
|
||||||
|
{"label":"L03", "x":3, "y":0.35},
|
||||||
|
{"label":"L04", "x":4, "y":0.5},
|
||||||
|
|
||||||
|
{"label":"R00", "x":8, "y":0.5},
|
||||||
|
{"label":"R01", "x":9, "y":0.35},
|
||||||
|
{"label":"R02", "x":10, "y":0},
|
||||||
|
{"label":"R03", "x":11, "y":0.35},
|
||||||
|
{"label":"R04", "x":12, "y":1},
|
||||||
|
|
||||||
|
{"label":"L10", "x":0, "y":2},
|
||||||
|
{"label":"L11", "x":1, "y":1.35},
|
||||||
|
{"label":"L12", "x":2, "y":1},
|
||||||
|
{"label":"L13", "x":3, "y":1.35},
|
||||||
|
{"label":"L14", "x":4, "y":1.5},
|
||||||
|
|
||||||
|
{"label":"R10", "x":8, "y":1.5},
|
||||||
|
{"label":"R11", "x":9, "y":1.35},
|
||||||
|
{"label":"R12", "x":10, "y":1},
|
||||||
|
{"label":"R13", "x":11, "y":1.35},
|
||||||
|
{"label":"R14", "x":12, "y":2},
|
||||||
|
|
||||||
|
{"label":"L20", "x":0, "y":3},
|
||||||
|
{"label":"L21", "x":1, "y":2.35},
|
||||||
|
{"label":"L22", "x":2, "y":2},
|
||||||
|
{"label":"L23", "x":3, "y":2.35},
|
||||||
|
{"label":"L24", "x":4, "y":2.5},
|
||||||
|
|
||||||
|
{"label":"R20", "x":8, "y":2.5},
|
||||||
|
{"label":"R21", "x":9, "y":2.35},
|
||||||
|
{"label":"R22", "x":10, "y":2},
|
||||||
|
{"label":"R23", "x":11, "y":2.35},
|
||||||
|
{"label":"R24", "x":12, "y":3},
|
||||||
|
|
||||||
|
{"label":"L30", "x":4.25, "y":3.5},
|
||||||
|
{"label":"R33", "x":7.75, "y":3.5},
|
||||||
|
|
||||||
|
{"label":"L31", "x":3, "y":4.5},
|
||||||
|
{"label":"L32", "x":4, "y":4.5},
|
||||||
|
{"label":"L33", "x":5, "y":4.5},
|
||||||
|
|
||||||
|
{"label":"R30", "x":7, "y":4.5},
|
||||||
|
{"label":"R31", "x":8, "y":4.5},
|
||||||
|
{"label":"R32", "x":9, "y":4.5}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -30,35 +30,40 @@ enum layer_number {
|
|||||||
char wpm_as_str[8];
|
char wpm_as_str[8];
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_BASE] = LAYOUT(
|
[_BASE] = LAYOUT(
|
||||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||||
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K , KC_L , KC_SCLN,
|
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
|
||||||
LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
|
LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
|
||||||
KC_MUTE, KC_LCTL, LALT_T(KC_BSPC), LT(_MUS, KC_SPC), LT(_NUM,KC_DEL), LT(_SYMB, KC_ENT), KC_CAPS, TG(_ADJ)
|
KC_MUTE, TG(_ADJ),
|
||||||
),
|
KC_LCTL, LALT_T(KC_BSPC), LT(_MUS,KC_SPC), LT(_NUM,KC_DEL), LT(_SYMB,KC_ENT), KC_CAPS
|
||||||
[_NUM] = LAYOUT(
|
),
|
||||||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
|
[_NUM] = LAYOUT(
|
||||||
KC_TAB, XXXXXXX, KC_VOLD, KC_VOLU, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP , KC_RIGHT , KC_QUOT,
|
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
|
||||||
KC_LSFT, XXXXXXX, XXXXXXX, KC_MUTE, RESET, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_RSFT,
|
KC_TAB, XXXXXXX, KC_VOLD, KC_VOLU, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_QUOT,
|
||||||
XXXXXXX, XXXXXXX, KC_LALT, XXXXXXX, _______, KC_ENT, KC_NO, KC_NO
|
KC_LSFT, XXXXXXX, XXXXXXX, KC_MUTE, RESET, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_RSFT,
|
||||||
),
|
XXXXXXX, KC_NO,
|
||||||
[_SYMB] = LAYOUT(
|
XXXXXXX, KC_LALT, XXXXXXX, _______, KC_ENT, KC_NO
|
||||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, XXXXXXX, KC_EQL, KC_MINS,
|
),
|
||||||
XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, XXXXXXX , KC_GRV , KC_BSLS,
|
[_SYMB] = LAYOUT(
|
||||||
KC_LSFT, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RSFT,
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, XXXXXXX, KC_EQL, KC_MINS,
|
||||||
XXXXXXX, KC_LALT, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_NO, KC_NO
|
XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, XXXXXXX, KC_GRV, KC_BSLS,
|
||||||
|
KC_LSFT, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RSFT,
|
||||||
|
XXXXXXX, KC_NO,
|
||||||
|
KC_LALT, XXXXXXX, XXXXXXX, XXXXXXX, _______, KC_NO
|
||||||
),
|
),
|
||||||
[_MUS] = LAYOUT(
|
[_MUS] = LAYOUT(
|
||||||
KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
KC_LALT, KC_BTN3, KC_BTN2, KC_BTN1 , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX , XXXXXXX,
|
KC_LALT, KC_BTN3, KC_BTN2, KC_BTN1, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
XXXXXXX, XXXXXXX,
|
||||||
),
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||||
|
),
|
||||||
[_ADJ] = LAYOUT(
|
[_ADJ] = LAYOUT(
|
||||||
RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUI, RGB_SAI , RGB_VAI , RGB_TOG,
|
EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG,
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, _______,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, _______,
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______
|
XXXXXXX, _______,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -42,35 +42,40 @@ enum custom_keycodes {
|
|||||||
char wpm_as_str[8];
|
char wpm_as_str[8];
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_BASE] = LAYOUT(
|
[_BASE] = LAYOUT(
|
||||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||||
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K , KC_L , KC_SCLN,
|
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
|
||||||
LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
|
LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH),
|
||||||
KC_MUTE, KC_LCTL, LALT_T(KC_BSPC), LT(_MUS, KC_SPC), KC_NO, LT(_NUM,KC_ENT), LT(_SYMB, KC_DEL), TG(_ADJ)
|
KC_MUTE, TG(_ADJ),
|
||||||
),
|
KC_LCTL, LALT_T(KC_BSPC), LT(_MUS,KC_SPC), KC_NO, LT(_NUM,KC_ENT), LT(_SYMB,KC_DEL)
|
||||||
[_NUM] = LAYOUT(
|
|
||||||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
|
|
||||||
KC_TAB, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP , KC_RIGHT , KC_QUOT,
|
|
||||||
KC_LSFT, XXXXXXX, KC_MPRV, KC_MNXT, RESET, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_RSFT,
|
|
||||||
XXXXXXX, KC_LCTL, KC_LALT, XXXXXXX, KC_NO, _______, KC_ENT, KC_NO
|
|
||||||
),
|
),
|
||||||
[_SYMB] = LAYOUT(
|
[_NUM] = LAYOUT(
|
||||||
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, XXXXXXX, KC_EQL, KC_MINS,
|
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
|
||||||
XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, XXXXXXX , KC_GRV , KC_BSLS,
|
KC_TAB, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_QUOT,
|
||||||
KC_LSFT, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RSFT,
|
KC_LSFT, XXXXXXX, KC_MPRV, KC_MNXT, RESET, KC_HOME, KC_END, KC_PGUP, KC_PGDN, KC_RSFT,
|
||||||
XXXXXXX, KC_LALT, XXXXXXX, XXXXXXX, XXXXXXX, KC_NO, _______, KC_NO
|
XXXXXXX, KC_NO,
|
||||||
|
KC_LCTL, KC_LALT, XXXXXXX, KC_NO, _______, KC_ENT
|
||||||
|
),
|
||||||
|
[_SYMB] = LAYOUT(
|
||||||
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, XXXXXXX, XXXXXXX, XXXXXXX, KC_EQL, KC_MINS,
|
||||||
|
XXXXXXX, KC_F5, KC_F6, KC_F7, KC_F8, KC_LBRC, KC_RBRC, XXXXXXX, KC_GRV, KC_BSLS,
|
||||||
|
KC_LSFT, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RSFT,
|
||||||
|
XXXXXXX, KC_NO,
|
||||||
|
KC_LALT, XXXXXXX, XXXXXXX, XXXXXXX, KC_NO, _______
|
||||||
),
|
),
|
||||||
[_MUS] = LAYOUT(
|
[_MUS] = LAYOUT(
|
||||||
KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
KC_LCTL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
KC_LALT, KC_BTN3, KC_BTN2, KC_BTN1 , BALL_SCR, XXXXXXX, XXXXXXX, XXXXXXX , XXXXXXX , XXXXXXX,
|
KC_LALT, KC_BTN3, KC_BTN2, KC_BTN1, BALL_SCR, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
KC_LSFT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||||
),
|
),
|
||||||
[_ADJ] = LAYOUT(
|
[_ADJ] = LAYOUT(
|
||||||
RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BALL_HUI, BALL_WHT, BALL_DEC, XXXXXXX, XXXXXXX,
|
RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, BALL_HUI, BALL_WHT, BALL_DEC, XXXXXXX, XXXXXXX,
|
||||||
EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUI, RGB_SAI , RGB_VAI , RGB_TOG,
|
EEP_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_TOG,
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, _______,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, _______,
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______
|
XXXXXXX, _______,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -3,31 +3,29 @@
|
|||||||

|

|
||||||
|
|
||||||
*A 34-36 key split keyboard*
|
*A 34-36 key split keyboard*
|
||||||
- 36 keys, two of them can be replaced by rotary encoders making it support 34-36 keys and 2-4 encoders.
|
- 36 keys, two of them can be replaced by rotary encoders making it support 34-36 keys and 2-4 encoders.
|
||||||
- bright RGB Underglow with ws2812b LEDs
|
- bright RGB Underglow with WS2812B LEDs
|
||||||
- one ssd1306 OLED per side
|
- one SSD1306 OLED per side
|
||||||
- aggressive pinky stagger similar to the kyria but with an alternative thumb cluster to raise comfort for large hands
|
- aggressive pinky stagger similar to the Kyria but with an alternative thumb cluster to raise comfort for large hands
|
||||||
- support for mx and choc switches
|
- support for MX and Choc switches
|
||||||
|
|
||||||
* keyboard Maintainer: [MangoIV](https://github.com/MangoIV)
|
* Keyboard Maintainer: [MangoIV](https://github.com/MangoIV)
|
||||||
* Hardware Supported: [DracuLad PCBs and cases](https://github.com/MangoIV/dracuLad), [the pimoroni trackball](https://shop.pimoroni.com/products/trackball-breakout)
|
* Hardware Supported: [DracuLad PCBs and cases](https://github.com/MangoIV/dracuLad), [the Pimoroni trackball](https://shop.pimoroni.com/products/trackball-breakout)
|
||||||
* Hardware availability: [check my github](https://github.com/MangoIV)
|
* Hardware Availability: [MangoIV's GitHub](https://github.com/MangoIV/dracuLad)
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build env):
|
Make example for this keyboard (after setting up your build env):
|
||||||
|
|
||||||
make draculad:default
|
make draculad:default
|
||||||
|
|
||||||
or for the version using the pimoroni trackball
|
or for the version using the Pimoroni trackball:
|
||||||
|
|
||||||
make draculad:pimoroni
|
make draculad:pimoroni
|
||||||
|
|
||||||
Flashing example for dfu and catarina respectively (replace default with the name of your keymap)
|
|
||||||
|
|
||||||
make draculad:default:dfu
|
|
||||||
|
|
||||||
make draculad:default:flash
|
|
||||||
|
|
||||||
|
|
||||||
When flashing the first time using handedness by eeprom, use the [qmk guide for that topic](https://docs.qmk.fm/#/feature_split_keyboard?id=handedness-by-eeprom)
|
Flashing example for DFU and Caterina respectively (replace `default` with the name of your keymap):
|
||||||
|
|
||||||
|
make draculad:default:dfu
|
||||||
|
make draculad:default:flash
|
||||||
|
|
||||||
|
When flashing the first time using handedness by EEPROM, use the [QMK guide for that topic](https://docs.qmk.fm/#/feature_split_keyboard?id=handedness-by-eeprom).
|
||||||
|
|
||||||
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).
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 DongXing
|
||||||
|
|
||||||
|
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 0x464C // "FL"
|
||||||
|
#define PRODUCT_ID 0x0006
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER Fox Lab
|
||||||
|
#define PRODUCT Time 80 Reforged
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 6
|
||||||
|
#define MATRIX_COLS 17
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*
|
||||||
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define MATRIX_ROW_PINS { D1, D0, B3, B0, B2, B1 }
|
||||||
|
#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D4, D6, D2, D3, D5 }
|
||||||
|
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define BACKLIGHT_PIN B7
|
||||||
|
#define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
|
#define LED_CAPS_LOCK_PIN E6
|
||||||
|
#define LED_PIN_ON_STATE 0
|
||||||
|
|
||||||
|
#define RGB_DI_PIN E2
|
||||||
|
|
||||||
|
#ifdef RGB_DI_PIN
|
||||||
|
#define RGBLED_NUM 5
|
||||||
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
|
#define RGBLIGHT_LIMIT_VAL 200 /* The maximum brightness level */
|
||||||
|
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/* Copyright 2021 DongXing
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include "hotswap.h"
|
||||||
|
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
/* Copyright 2021 DongXing
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT( \
|
||||||
|
K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3E, K1E, K1F, K1G, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
|
||||||
|
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \
|
||||||
|
K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \
|
||||||
|
) { \
|
||||||
|
{ K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E, KC_NO, KC_NO }, \
|
||||||
|
{ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \
|
||||||
|
{ K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \
|
||||||
|
}
|
||||||
@@ -0,0 +1,103 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Time RE Hotswap",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"width": 18.25,
|
||||||
|
"height": 6.5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"K00 (D1,F0)", "x":0, "y":0},
|
||||||
|
{"label":"K02 (D1,F4)", "x":2, "y":0},
|
||||||
|
{"label":"K03 (D1,F5)", "x":3, "y":0},
|
||||||
|
{"label":"K04 (D1,F6)", "x":4, "y":0},
|
||||||
|
{"label":"K05 (D1,F7)", "x":5, "y":0},
|
||||||
|
{"label":"K06 (D1,C7)", "x":6.5, "y":0},
|
||||||
|
{"label":"K07 (D1,C6)", "x":7.5, "y":0},
|
||||||
|
{"label":"K08 (D1,B6)", "x":8.5, "y":0},
|
||||||
|
{"label":"K09 (D1,B5)", "x":9.5, "y":0},
|
||||||
|
{"label":"K0A (D1,B4)", "x":11, "y":0},
|
||||||
|
{"label":"K0B (D1,D7)", "x":12, "y":0},
|
||||||
|
{"label":"K0C (D1,D4)", "x":13, "y":0},
|
||||||
|
{"label":"K0D (D1,D6)", "x":14, "y":0},
|
||||||
|
{"label":"K0E (D1,D2)", "x":15.25, "y":0},
|
||||||
|
{"label":"K0F (D1,D3)", "x":16.25, "y":0},
|
||||||
|
{"label":"K0G (D1,D5)", "x":17.25, "y":0},
|
||||||
|
{"label":"K10 (D0,F0)", "x":0, "y":1.5},
|
||||||
|
{"label":"K11 (D0,F1)", "x":1, "y":1.5},
|
||||||
|
{"label":"K12 (D0,F4)", "x":2, "y":1.5},
|
||||||
|
{"label":"K13 (D0,F5)", "x":3, "y":1.5},
|
||||||
|
{"label":"K14 (D0,F6)", "x":4, "y":1.5},
|
||||||
|
{"label":"K15 (D0,F7)", "x":5, "y":1.5},
|
||||||
|
{"label":"K16 (D0,C7)", "x":6, "y":1.5},
|
||||||
|
{"label":"K17 (D0,C6)", "x":7, "y":1.5},
|
||||||
|
{"label":"K18 (D0,B6)", "x":8, "y":1.5},
|
||||||
|
{"label":"K19 (D0,B5)", "x":9, "y":1.5},
|
||||||
|
{"label":"K1A (D0,B4)", "x":10, "y":1.5},
|
||||||
|
{"label":"K1B (D0,D7)", "x":11, "y":1.5},
|
||||||
|
{"label":"K1C (D0,D4)", "x":12, "y":1.5},
|
||||||
|
{"label":"K1D (D0,D6)", "x":13, "y":1.5},
|
||||||
|
{"label":"K3E (B0,D2)", "x":14, "y":1.5},
|
||||||
|
{"label":"K1E (D0,D2)", "x":15.25, "y":1.5},
|
||||||
|
{"label":"K1F (D0,D3)", "x":16.25, "y":1.5},
|
||||||
|
{"label":"K1G (D0,D5)", "x":17.25, "y":1.5},
|
||||||
|
{"label":"K20 (B3,F0)", "x":0, "y":2.5, "w":1.5},
|
||||||
|
{"label":"K21 (B3,F1)", "x":1.5, "y":2.5},
|
||||||
|
{"label":"K22 (B3,F4)", "x":2.5, "y":2.5},
|
||||||
|
{"label":"K23 (B3,F5)", "x":3.5, "y":2.5},
|
||||||
|
{"label":"K24 (B3,F6)", "x":4.5, "y":2.5},
|
||||||
|
{"label":"K25 (B3,F7)", "x":5.5, "y":2.5},
|
||||||
|
{"label":"K26 (B3,C7)", "x":6.5, "y":2.5},
|
||||||
|
{"label":"K27 (B3,C6)", "x":7.5, "y":2.5},
|
||||||
|
{"label":"K28 (B3,B6)", "x":8.5, "y":2.5},
|
||||||
|
{"label":"K29 (B3,B5)", "x":9.5, "y":2.5},
|
||||||
|
{"label":"K2A (B3,B4)", "x":10.5, "y":2.5},
|
||||||
|
{"label":"K2B (B3,D7)", "x":11.5, "y":2.5},
|
||||||
|
{"label":"K2C (B3,D4)", "x":12.5, "y":2.5},
|
||||||
|
{"label":"K2D (B3,D6)", "x":13.5, "y":2.5, "w":1.5},
|
||||||
|
{"label":"K2E (B3,D2)", "x":15.25, "y":2.5},
|
||||||
|
{"label":"K2F (B3,D3)", "x":16.25, "y":2.5},
|
||||||
|
{"label":"K2G (B3,D5)", "x":17.25, "y":2.5},
|
||||||
|
{"label":"K30 (B0,F0)", "x":0, "y":3.5, "w":1.75},
|
||||||
|
{"label":"K31 (B0,F1)", "x":1.75, "y":3.5},
|
||||||
|
{"label":"K32 (B0,F4)", "x":2.75, "y":3.5},
|
||||||
|
{"label":"K33 (B0,F5)", "x":3.75, "y":3.5},
|
||||||
|
{"label":"K34 (B0,F6)", "x":4.75, "y":3.5},
|
||||||
|
{"label":"K35 (B0,F7)", "x":5.75, "y":3.5},
|
||||||
|
{"label":"K36 (B0,C7)", "x":6.75, "y":3.5},
|
||||||
|
{"label":"K37 (B0,C6)", "x":7.75, "y":3.5},
|
||||||
|
{"label":"K38 (B0,B6)", "x":8.75, "y":3.5},
|
||||||
|
{"label":"K39 (B0,B5)", "x":9.75, "y":3.5},
|
||||||
|
{"label":"K3A (B0,B4)", "x":10.75, "y":3.5},
|
||||||
|
{"label":"K3B (B0,D7)", "x":11.75, "y":3.5},
|
||||||
|
{"label":"K3D (B0,D6)", "x":12.75, "y":3.5, "w":2.25},
|
||||||
|
{"label":"K40 (B2,F0)", "x":0, "y":4.5, "w":1.25},
|
||||||
|
{"label":"K41 (B2,F1)", "x":1.25, "y":4.5},
|
||||||
|
{"label":"K42 (B2,F4)", "x":2.25, "y":4.5},
|
||||||
|
{"label":"K43 (B2,F5)", "x":3.25, "y":4.5},
|
||||||
|
{"label":"K44 (B2,F6)", "x":4.25, "y":4.5},
|
||||||
|
{"label":"K45 (B2,F7)", "x":5.25, "y":4.5},
|
||||||
|
{"label":"K46 (B2,C7)", "x":6.25, "y":4.5},
|
||||||
|
{"label":"K47 (B2,C6)", "x":7.25, "y":4.5},
|
||||||
|
{"label":"K48 (B2,B6)", "x":8.25, "y":4.5},
|
||||||
|
{"label":"K49 (B2,B5)", "x":9.25, "y":4.5},
|
||||||
|
{"label":"K4A (B2,B4)", "x":10.25, "y":4.5},
|
||||||
|
{"label":"K4B (B2,D7)", "x":11.25, "y":4.5},
|
||||||
|
{"label":"K4C (B2,D4)", "x":12.25, "y":4.5, "w":1.75},
|
||||||
|
{"label":"K4D (B2,D6)", "x":14, "y":4.5},
|
||||||
|
{"label":"K4F (B2,D3)", "x":16.25, "y":4.5},
|
||||||
|
{"label":"K50 (B1,F0)", "x":0, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K51 (B1,F1)", "x":1.25, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K52 (B1,F4)", "x":2.5, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K56 (B1,C7)", "x":3.75, "y":5.5, "w":6.25},
|
||||||
|
{"label":"K5A (B1,B4)", "x":10, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K5B (B1,D7)", "x":11.25, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K5C (B1,D4)", "x":12.5, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K5D (B1,D6)", "x":13.75, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K5E (B1,D2)", "x":15.25, "y":5.5},
|
||||||
|
{"label":"K5F (B1,D3)", "x":16.25, "y":5.5},
|
||||||
|
{"label":"K5G (B1,D5)", "x":17.25, "y":5.5}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
/* Copyright 2021 matrixzj <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 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_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, KC_UP,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), _______, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
/* Copyright 2021 matrixzj <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 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_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, KC_UP,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), _______, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[2] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[3] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
# Foxlab Time 80 Reforged Hotswap
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Time 80 Reforged was the second design of Fox Lab back in 2017. It has also become an iconic keyboard design of Fox Lab. Time80RE kept most of the original weight design. The clock has become thinner now and has a tempered glass cover. The front height of the keyboard has been greatly reduced for optimizing for comfort. The ratio between the top and bottom cases has been adjusted for a cleaner side view.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: QMK
|
||||||
|
* Hardware Supported: Time 80 Reforged Hotswap PCB
|
||||||
|
* Hardware Availability: [Group Buy](https://geekhack.org/index.php?topic=108410.msg2952330)
|
||||||
|
|
||||||
|
This version is for the hotswap variant with the layouts below available:
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make foxlab/time_re/hotswap:default
|
||||||
|
|
||||||
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
@@ -0,0 +1,64 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 DongXing
|
||||||
|
|
||||||
|
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 0x464C // "FL"
|
||||||
|
#define PRODUCT_ID 0x0006
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER Fox Lab
|
||||||
|
#define PRODUCT Time 80 Reforged
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 6
|
||||||
|
#define MATRIX_COLS 17
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*
|
||||||
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define MATRIX_ROW_PINS { D1, D0, B3, B0, B2, B1 }
|
||||||
|
#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7, C6, B6, B5, B4, D7, D4, D6, D2, D3, D5 }
|
||||||
|
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define BACKLIGHT_PIN B7
|
||||||
|
#define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
|
#define LED_CAPS_LOCK_PIN E6
|
||||||
|
#define LED_PIN_ON_STATE 0
|
||||||
|
|
||||||
|
#define RGB_DI_PIN E2
|
||||||
|
|
||||||
|
#ifdef RGB_DI_PIN
|
||||||
|
#define RGBLED_NUM 5
|
||||||
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
|
#define RGBLIGHT_LIMIT_VAL 200 /* The maximum brightness level */
|
||||||
|
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,103 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Time RE Universal",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"width": 18.25,
|
||||||
|
"height": 6.5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"K00 (D1,F0)", "x":0, "y":0},
|
||||||
|
{"label":"K02 (D1,F4)", "x":2, "y":0},
|
||||||
|
{"label":"K03 (D1,F5)", "x":3, "y":0},
|
||||||
|
{"label":"K04 (D1,F6)", "x":4, "y":0},
|
||||||
|
{"label":"K05 (D1,F7)", "x":5, "y":0},
|
||||||
|
{"label":"K06 (D1,C7)", "x":6.5, "y":0},
|
||||||
|
{"label":"K07 (D1,C6)", "x":7.5, "y":0},
|
||||||
|
{"label":"K08 (D1,B6)", "x":8.5, "y":0},
|
||||||
|
{"label":"K09 (D1,B5)", "x":9.5, "y":0},
|
||||||
|
{"label":"K0A (D1,B4)", "x":11, "y":0},
|
||||||
|
{"label":"K0B (D1,D7)", "x":12, "y":0},
|
||||||
|
{"label":"K0C (D1,D4)", "x":13, "y":0},
|
||||||
|
{"label":"K0D (D1,D6)", "x":14, "y":0},
|
||||||
|
{"label":"K0E (D1,D2)", "x":15.25, "y":0},
|
||||||
|
{"label":"K0F (D1,D3)", "x":16.25, "y":0},
|
||||||
|
{"label":"K0G (D1,D5)", "x":17.25, "y":0},
|
||||||
|
{"label":"K10 (D0,F0)", "x":0, "y":1.5},
|
||||||
|
{"label":"K11 (D0,F1)", "x":1, "y":1.5},
|
||||||
|
{"label":"K12 (D0,F4)", "x":2, "y":1.5},
|
||||||
|
{"label":"K13 (D0,F5)", "x":3, "y":1.5},
|
||||||
|
{"label":"K14 (D0,F6)", "x":4, "y":1.5},
|
||||||
|
{"label":"K15 (D0,F7)", "x":5, "y":1.5},
|
||||||
|
{"label":"K16 (D0,C7)", "x":6, "y":1.5},
|
||||||
|
{"label":"K17 (D0,C6)", "x":7, "y":1.5},
|
||||||
|
{"label":"K18 (D0,B6)", "x":8, "y":1.5},
|
||||||
|
{"label":"K19 (D0,B5)", "x":9, "y":1.5},
|
||||||
|
{"label":"K1A (D0,B4)", "x":10, "y":1.5},
|
||||||
|
{"label":"K1B (D0,D7)", "x":11, "y":1.5},
|
||||||
|
{"label":"K1C (D0,D4)", "x":12, "y":1.5},
|
||||||
|
{"label":"K1D (D0,D6)", "x":13, "y":1.5},
|
||||||
|
{"label":"K3E (B0,D2)", "x":14, "y":1.5},
|
||||||
|
{"label":"K1E (D0,D2)", "x":15.25, "y":1.5},
|
||||||
|
{"label":"K1F (D0,D3)", "x":16.25, "y":1.5},
|
||||||
|
{"label":"K1G (D0,D5)", "x":17.25, "y":1.5},
|
||||||
|
{"label":"K20 (B3,F0)", "x":0, "y":2.5, "w":1.5},
|
||||||
|
{"label":"K21 (B3,F1)", "x":1.5, "y":2.5},
|
||||||
|
{"label":"K22 (B3,F4)", "x":2.5, "y":2.5},
|
||||||
|
{"label":"K23 (B3,F5)", "x":3.5, "y":2.5},
|
||||||
|
{"label":"K24 (B3,F6)", "x":4.5, "y":2.5},
|
||||||
|
{"label":"K25 (B3,F7)", "x":5.5, "y":2.5},
|
||||||
|
{"label":"K26 (B3,C7)", "x":6.5, "y":2.5},
|
||||||
|
{"label":"K27 (B3,C6)", "x":7.5, "y":2.5},
|
||||||
|
{"label":"K28 (B3,B6)", "x":8.5, "y":2.5},
|
||||||
|
{"label":"K29 (B3,B5)", "x":9.5, "y":2.5},
|
||||||
|
{"label":"K2A (B3,B4)", "x":10.5, "y":2.5},
|
||||||
|
{"label":"K2B (B3,D7)", "x":11.5, "y":2.5},
|
||||||
|
{"label":"K2C (B3,D4)", "x":12.5, "y":2.5},
|
||||||
|
{"label":"K2D (B3,D6)", "x":13.5, "y":2.5, "w":1.5},
|
||||||
|
{"label":"K2E (B3,D2)", "x":15.25, "y":2.5},
|
||||||
|
{"label":"K2F (B3,D3)", "x":16.25, "y":2.5},
|
||||||
|
{"label":"K2G (B3,D5)", "x":17.25, "y":2.5},
|
||||||
|
{"label":"K30 (B0,F0)", "x":0, "y":3.5, "w":1.75},
|
||||||
|
{"label":"K31 (B0,F1)", "x":1.75, "y":3.5},
|
||||||
|
{"label":"K32 (B0,F4)", "x":2.75, "y":3.5},
|
||||||
|
{"label":"K33 (B0,F5)", "x":3.75, "y":3.5},
|
||||||
|
{"label":"K34 (B0,F6)", "x":4.75, "y":3.5},
|
||||||
|
{"label":"K35 (B0,F7)", "x":5.75, "y":3.5},
|
||||||
|
{"label":"K36 (B0,C7)", "x":6.75, "y":3.5},
|
||||||
|
{"label":"K37 (B0,C6)", "x":7.75, "y":3.5},
|
||||||
|
{"label":"K38 (B0,B6)", "x":8.75, "y":3.5},
|
||||||
|
{"label":"K39 (B0,B5)", "x":9.75, "y":3.5},
|
||||||
|
{"label":"K3A (B0,B4)", "x":10.75, "y":3.5},
|
||||||
|
{"label":"K3B (B0,D7)", "x":11.75, "y":3.5},
|
||||||
|
{"label":"K3D (B0,D6)", "x":12.75, "y":3.5, "w":2.25},
|
||||||
|
{"label":"K40 (B2,F0)", "x":0, "y":4.5, "w":1.25},
|
||||||
|
{"label":"K41 (B2,F1)", "x":1.25, "y":4.5},
|
||||||
|
{"label":"K42 (B2,F4)", "x":2.25, "y":4.5},
|
||||||
|
{"label":"K43 (B2,F5)", "x":3.25, "y":4.5},
|
||||||
|
{"label":"K44 (B2,F6)", "x":4.25, "y":4.5},
|
||||||
|
{"label":"K45 (B2,F7)", "x":5.25, "y":4.5},
|
||||||
|
{"label":"K46 (B2,C7)", "x":6.25, "y":4.5},
|
||||||
|
{"label":"K47 (B2,C6)", "x":7.25, "y":4.5},
|
||||||
|
{"label":"K48 (B2,B6)", "x":8.25, "y":4.5},
|
||||||
|
{"label":"K49 (B2,B5)", "x":9.25, "y":4.5},
|
||||||
|
{"label":"K4A (B2,B4)", "x":10.25, "y":4.5},
|
||||||
|
{"label":"K4B (B2,D7)", "x":11.25, "y":4.5},
|
||||||
|
{"label":"K4C (B2,D4)", "x":12.25, "y":4.5, "w":1.75},
|
||||||
|
{"label":"K4D (B2,D6)", "x":14, "y":4.5},
|
||||||
|
{"label":"K4F (B2,D3)", "x":16.25, "y":4.5},
|
||||||
|
{"label":"K50 (B1,F0)", "x":0, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K51 (B1,F1)", "x":1.25, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K52 (B1,F4)", "x":2.5, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K56 (B1,C7)", "x":3.75, "y":5.5, "w":6.25},
|
||||||
|
{"label":"K5A (B1,B4)", "x":10, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K5B (B1,D7)", "x":11.25, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K5C (B1,D4)", "x":12.5, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K5D (B1,D6)", "x":13.75, "y":5.5, "w":1.25},
|
||||||
|
{"label":"K5E (B1,D2)", "x":15.25, "y":5.5},
|
||||||
|
{"label":"K5F (B1,D3)", "x":16.25, "y":5.5},
|
||||||
|
{"label":"K5G (B1,D5)", "x":17.25, "y":5.5}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
/* Copyright 2021 matrixzj <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 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_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, KC_UP,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
/* Copyright 2021 matrixzj <[email protected]>
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, 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_SPC, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, _______, KC_UP,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, RGB_TOG, RGB_MOD, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[2] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[3] = LAYOUT(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
# Foxlab Time 80 Reforged Universal
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Time 80 Reforged was the second design of Fox Lab back in 2017. It has also become an iconic keyboard design of Fox Lab. Time80RE kept most of the original weight design. The clock has become thinner now and has a tempered glass cover. The front height of the keyboard has been greatly reduced for optimizing for comfort. The ratio between the top and bottom cases has been adjusted for a cleaner side view.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: QMK
|
||||||
|
* Hardware Supported: Time 80 Reforged Universal PCB
|
||||||
|
* Hardware Availability: [Group Buy](https://geekhack.org/index.php?topic=108410.msg2952330)
|
||||||
|
|
||||||
|
This version is for the universal variant with the layouts below available:
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make foxlab/time_re/universal:default
|
||||||
|
|
||||||
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/* Copyright 2021 DongXing
|
||||||
|
*
|
||||||
|
* 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 "universal.h"
|
||||||
|
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
/* Copyright 2021 DongXing
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT( \
|
||||||
|
K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3E, K1E, K1F, K1G, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
|
||||||
|
K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4F, \
|
||||||
|
K50, K51, K52, K56, K5A, K5B, K5C, K5D, K5E, K5F, K5G \
|
||||||
|
) { \
|
||||||
|
{ K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, K3E, KC_NO, KC_NO }, \
|
||||||
|
{ K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, KC_NO, K4F, KC_NO }, \
|
||||||
|
{ K50, K51, K52, KC_NO, KC_NO, KC_NO, K56, KC_NO, KC_NO, KC_NO, K5A, K5B, K5C, K5D, K5E, K5F, K5G }, \
|
||||||
|
}
|
||||||
@@ -15,8 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "noroadsleft.h"
|
#include "noroadsleft.h"
|
||||||
//#include "version.h"
|
|
||||||
#include "sendstring_dvorak.h"
|
|
||||||
|
|
||||||
#define LAYOUT_75_ansi_wkl( \
|
#define LAYOUT_75_ansi_wkl( \
|
||||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
|
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
|
||||||
@@ -35,20 +33,13 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
enum layer_names {
|
enum layer_names {
|
||||||
_QW,
|
|
||||||
_DV,
|
_DV,
|
||||||
|
_QW,
|
||||||
_Q2,
|
_Q2,
|
||||||
_FN,
|
_FN,
|
||||||
_SY
|
_SY
|
||||||
};
|
};
|
||||||
|
|
||||||
enum custom_keycodes {
|
|
||||||
GO_Q2 = KEYMAP_SAFE_RANGE,
|
|
||||||
Q2_ENT
|
|
||||||
};
|
|
||||||
|
|
||||||
unsigned char q2InputMode = 0;
|
|
||||||
|
|
||||||
// Tap Dance declarations
|
// Tap Dance declarations
|
||||||
enum tap_dances {
|
enum tap_dances {
|
||||||
LAG,
|
LAG,
|
||||||
@@ -65,14 +56,6 @@ qk_tap_dance_action_t tap_dance_actions[] = {
|
|||||||
#define FN_CAPS LT(_FN,KC_CAPS)
|
#define FN_CAPS LT(_FN,KC_CAPS)
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_QW] = LAYOUT_75_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, _______, _______, MO(_SY),
|
|
||||||
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_HOME,
|
|
||||||
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_PGUP,
|
|
||||||
FN_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_PGDN,
|
|
||||||
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_END,
|
|
||||||
KC_LCTL, TD(LAG), KC_SPC, TD(RAG), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
|
||||||
),
|
|
||||||
[_DV] = LAYOUT_75_ansi_wkl(
|
[_DV] = LAYOUT_75_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, _______, _______, MO(_SY),
|
KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, MO(_SY),
|
||||||
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME,
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC, KC_HOME,
|
||||||
@@ -81,11 +64,19 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, KC_END,
|
KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_UP, KC_END,
|
||||||
KC_LCTL, TD(LAG), KC_SPC, TD(RAG), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
KC_LCTL, TD(LAG), KC_SPC, TD(RAG), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
),
|
),
|
||||||
|
[_QW] = LAYOUT_75_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, _______, _______, MO(_SY),
|
||||||
|
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_HOME,
|
||||||
|
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_PGUP,
|
||||||
|
FN_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_PGDN,
|
||||||
|
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_END,
|
||||||
|
KC_LCTL, TD(LAG), KC_SPC, TD(RAG), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
[_Q2] = LAYOUT_75_ansi_wkl(
|
[_Q2] = LAYOUT_75_ansi_wkl(
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
KC_GRV, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, Q2_ENT, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, KC_LALT, _______, KC_RALT, _______, _______, _______, _______
|
_______, KC_LALT, _______, KC_RALT, _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
@@ -98,7 +89,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
_______, _______, _______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
[_SY] = LAYOUT_75_ansi_wkl(
|
[_SY] = LAYOUT_75_ansi_wkl(
|
||||||
_______, TO(_QW), TO(_DV), _______, GO_Q2, _______, _______, _______, RESET, EEP_RST, DEBUG, _______, VRSN, _______, _______, _______,
|
_______, TO(_DV), TO(_QW), _______, TG(_Q2), _______, _______, _______, RESET, EEP_RST, DEBUG, _______, VRSN, _______, _______, _______,
|
||||||
_______, _______, M_MDSWP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______,
|
_______, _______, M_MDSWP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DEL, _______,
|
||||||
_______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
@@ -111,62 +102,3 @@ bool led_update_user(led_t led_state) {
|
|||||||
writePin(B2, !led_state.caps_lock);
|
writePin(B2, !led_state.caps_lock);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
|
|
||||||
switch (keycode) {
|
|
||||||
case GO_Q2:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
layer_move(_QW);
|
|
||||||
layer_on(_Q2);
|
|
||||||
};
|
|
||||||
return false;
|
|
||||||
case Q2_ENT:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
if (q2InputMode == 0) {
|
|
||||||
tap_code(KC_ENT);
|
|
||||||
q2InputMode = 1;
|
|
||||||
layer_on(_DV);
|
|
||||||
//layer_on(_Q2);
|
|
||||||
} else if (q2InputMode == 1) {
|
|
||||||
tap_code(KC_ENT);
|
|
||||||
q2InputMode = 0;
|
|
||||||
layer_off(_DV);
|
|
||||||
} else {
|
|
||||||
tap_code(KC_ENT);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return false;
|
|
||||||
case KC_ESC:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
if (q2InputMode > 0) {
|
|
||||||
tap_code(KC_ESC);
|
|
||||||
q2InputMode = 0;
|
|
||||||
layer_off(_DV);
|
|
||||||
} else {
|
|
||||||
tap_code(KC_ESC);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return false;
|
|
||||||
case KC_GRV:
|
|
||||||
if (IS_LAYER_ON(_Q2) == true) {
|
|
||||||
if (record->event.pressed) {
|
|
||||||
if (q2InputMode == 0) {
|
|
||||||
tap_code(KC_GRV);
|
|
||||||
q2InputMode = 2;
|
|
||||||
layer_on(_DV);
|
|
||||||
} else if (q2InputMode == 1) {
|
|
||||||
tap_code(KC_GRV);
|
|
||||||
q2InputMode = 2;
|
|
||||||
} else {
|
|
||||||
tap_code(KC_GRV);
|
|
||||||
q2InputMode = 0;
|
|
||||||
layer_off(_DV);
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return true;
|
|
||||||
default:
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -15,27 +15,22 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "noroadsleft.h"
|
#include "noroadsleft.h"
|
||||||
#include "sendstring_dvorak.h"
|
|
||||||
//#include "sendstring_colemak.h"
|
|
||||||
#include "print.h"
|
|
||||||
|
|
||||||
|
|
||||||
/**********************
|
// LAYER DEFINITIONS
|
||||||
** LAYER DEFINITIONS **
|
|
||||||
**********************/
|
|
||||||
enum layer_names {
|
enum layer_names {
|
||||||
// BASE LAYERS
|
// BASE LAYERS
|
||||||
_QW, // QWERTY
|
_DV,
|
||||||
_DV, // Dvorak
|
_QW,
|
||||||
_CM, // Colemak
|
_CM,
|
||||||
// QUAKE 2 OVERLAY
|
// QUAKE 2 OVERLAY
|
||||||
_Q2, // Quake 2
|
_Q2,
|
||||||
// FUNCTION LAYER
|
// FUNCTION LAYER
|
||||||
_FN, // Function
|
_FN,
|
||||||
// OTHER LAYERS
|
// OTHER LAYERS
|
||||||
_NP, // Numpad
|
_NP,
|
||||||
_MA, // Macros
|
_MA,
|
||||||
_SY, // System
|
_SY,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -44,97 +39,11 @@ enum layer_names {
|
|||||||
#define CTL_GRV MT(MOD_LCTL, KC_GRV) // Left Control when held, Grave accent when tapped
|
#define CTL_GRV MT(MOD_LCTL, KC_GRV) // Left Control when held, Grave accent when tapped
|
||||||
|
|
||||||
|
|
||||||
// MACRO DEFINITIONS
|
|
||||||
enum custom_keycodes {
|
|
||||||
GO_Q2 = KEYMAP_SAFE_RANGE,
|
|
||||||
Q2_ENT
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/*******************
|
|
||||||
** MODIFIER MASKS **
|
|
||||||
*******************/
|
|
||||||
unsigned char q2InputMode = 0;
|
|
||||||
|
|
||||||
|
|
||||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
|
|
||||||
switch(keycode) {
|
|
||||||
// these are our macros!
|
|
||||||
case GO_Q2:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
//default_layer_set(_QW);
|
|
||||||
layer_move(_QW); // TO(_QW);
|
|
||||||
layer_on(_Q2);
|
|
||||||
//layer_off(_SY);
|
|
||||||
};
|
|
||||||
return false;
|
|
||||||
case Q2_ENT:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
if (q2InputMode == 0) {
|
|
||||||
tap_code(KC_ENT);
|
|
||||||
q2InputMode = 1;
|
|
||||||
layer_on(_DV);
|
|
||||||
//layer_on(_Q2);
|
|
||||||
} else if (q2InputMode == 1) {
|
|
||||||
tap_code(KC_ENT);
|
|
||||||
q2InputMode = 0;
|
|
||||||
layer_off(_DV);
|
|
||||||
} else {
|
|
||||||
tap_code(KC_ENT);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return false;
|
|
||||||
case KC_ESC:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
if (q2InputMode > 0) {
|
|
||||||
tap_code(KC_ESC);
|
|
||||||
q2InputMode = 0;
|
|
||||||
layer_off(_DV);
|
|
||||||
} else {
|
|
||||||
tap_code(KC_ESC);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return false;
|
|
||||||
case KC_GRV:
|
|
||||||
if (IS_LAYER_ON(_Q2) == true) {
|
|
||||||
if (record->event.pressed) {
|
|
||||||
if (q2InputMode == 0) {
|
|
||||||
tap_code(KC_GRV);
|
|
||||||
q2InputMode = 2;
|
|
||||||
layer_on(_DV);
|
|
||||||
} else if (q2InputMode == 1) {
|
|
||||||
tap_code(KC_GRV);
|
|
||||||
q2InputMode = 2;
|
|
||||||
} else {
|
|
||||||
tap_code(KC_GRV);
|
|
||||||
q2InputMode = 0;
|
|
||||||
layer_off(_DV);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
return false;
|
|
||||||
} // switch()
|
|
||||||
return true;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// KEYMAPS
|
// KEYMAPS
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/****************
|
// BASE LAYERS
|
||||||
** BASE LAYERS **
|
|
||||||
****************/
|
|
||||||
|
|
||||||
/* QWERTY */
|
|
||||||
[_QW] = LAYOUT_60_ansi(
|
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
|
||||||
FN_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,
|
|
||||||
CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FN), KC_RCTL
|
|
||||||
),
|
|
||||||
|
|
||||||
/* Dvorak */
|
|
||||||
[_DV] = LAYOUT_60_ansi(
|
[_DV] = LAYOUT_60_ansi(
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_LBRC, KC_RBRC, KC_BSPC,
|
||||||
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS,
|
KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH, KC_EQL, KC_BSLS,
|
||||||
@@ -143,7 +52,14 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FN), KC_RCTL
|
CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FN), KC_RCTL
|
||||||
),
|
),
|
||||||
|
|
||||||
/* Colemak */
|
[_QW] = LAYOUT_60_ansi(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||||
|
FN_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,
|
||||||
|
CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FN), KC_RCTL
|
||||||
|
),
|
||||||
|
|
||||||
[_CM] = LAYOUT_60_ansi(
|
[_CM] = LAYOUT_60_ansi(
|
||||||
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_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||||
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS,
|
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||||
@@ -152,24 +68,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FN), KC_RCTL
|
CTL_GRV, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_MA), MO(_FN), KC_RCTL
|
||||||
),
|
),
|
||||||
|
|
||||||
/*********************
|
// QUAKE 2 OVERLAYS
|
||||||
** QUAKE 2 OVERLAYS **
|
|
||||||
*********************/
|
|
||||||
|
|
||||||
/* Quake 2 */
|
|
||||||
[_Q2] = LAYOUT_60_ansi(
|
[_Q2] = LAYOUT_60_ansi(
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, Q2_ENT,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
KC_GRV, _______, _______, _______, _______, _______, _______, _______
|
KC_GRV, _______, _______, _______, _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
|
|
||||||
/********************
|
// FUNCTION LAYER
|
||||||
** FUNCTION LAYERS **
|
|
||||||
********************/
|
|
||||||
|
|
||||||
/* Fn layer */
|
|
||||||
[_FN] = LAYOUT_60_ansi(
|
[_FN] = LAYOUT_60_ansi(
|
||||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
|
||||||
_______, KC_CALC, KC_APP, _______, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS,
|
_______, KC_CALC, KC_APP, _______, _______, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS,
|
||||||
@@ -178,11 +88,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
_______, _______, _______, TG(_NP), _______, _______, _______, _______
|
_______, _______, _______, TG(_NP), _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
|
|
||||||
/*****************
|
// OTHER LAYERS
|
||||||
** OTHER LAYERS **
|
|
||||||
*****************/
|
|
||||||
|
|
||||||
/* Numpad layer */
|
|
||||||
[_NP] = LAYOUT_60_ansi(
|
[_NP] = LAYOUT_60_ansi(
|
||||||
_______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, KC_E, KC_F, _______, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PSLS, KC_PEQL, _______,
|
_______, _______, _______, _______, KC_E, KC_F, _______, KC_P4, KC_P5, KC_P6, KC_PAST, KC_PSLS, KC_PEQL, _______,
|
||||||
@@ -191,7 +98,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
_______, _______, _______, TG(_NP), _______, _______, _______, _______
|
_______, _______, _______, TG(_NP), _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
|
|
||||||
/* Macro layer */
|
|
||||||
[_MA] = LAYOUT_60_ansi(
|
[_MA] = LAYOUT_60_ansi(
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DM_REC1, DM_REC2, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, DM_REC1, DM_REC2, _______,
|
||||||
_______, _______, _______, G_PUSH, _______, _______, _______, _______, _______, _______, _______, DM_PLY1, DM_PLY2, DM_RSTP,
|
_______, _______, _______, G_PUSH, _______, _______, _______, _______, _______, _______, _______, DM_PLY1, DM_PLY2, DM_RSTP,
|
||||||
@@ -200,9 +106,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
_______, _______, _______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
|
|
||||||
/* System layer */
|
|
||||||
[_SY] = LAYOUT_60_ansi(
|
[_SY] = LAYOUT_60_ansi(
|
||||||
TG(_SY), TO(_QW), TO(_DV), TO(_CM), GO_Q2, XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, DEBUG, XXXXXXX, VRSN, XXXXXXX,
|
TG(_SY), TO(_QW), TO(_DV), TO(_CM), TG(_Q2), XXXXXXX, XXXXXXX, XXXXXXX, RESET, XXXXXXX, DEBUG, XXXXXXX, VRSN, XXXXXXX,
|
||||||
XXXXXXX, XXXXXXX, M_MDSWP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, M_MDSWP, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_TOGG, BL_INC, BL_BRTG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, BL_DEC, BL_TOGG, BL_INC, BL_BRTG, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# @noroadsleft's KC60 keymap
|
# @noroadsleft's KC60 keymap
|
||||||
|
|
||||||
### Last updated: April 26, 2021 13:33 (-0700)
|
### Last updated: May 3, 2021 16:42 (-0700)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -24,9 +24,9 @@ Descriptions of the physical locations of keys will use the key's function in a
|
|||||||
## Outline
|
## Outline
|
||||||
|
|
||||||
- [Base Layers](#base-layers)
|
- [Base Layers](#base-layers)
|
||||||
- Layer 0: QWERTY `_QW`
|
- Layer 0: Dvorak `_DV`
|
||||||
- Layer 1: Hardware Dvorak `_DV`
|
- Layer 1: QWERTY `_QW`
|
||||||
- Layer 2: Hardware Colemak `_CM`
|
- Layer 2: Colemak `_CM`
|
||||||
- [Quake 2 Layer](#quake-2-layer)
|
- [Quake 2 Layer](#quake-2-layer)
|
||||||
- Layer 3: Quake 2 `_Q2`
|
- Layer 3: Quake 2 `_Q2`
|
||||||
- [Function Layer](#function-layer)
|
- [Function Layer](#function-layer)
|
||||||
@@ -41,38 +41,36 @@ Descriptions of the physical locations of keys will use the key's function in a
|
|||||||
|
|
||||||
## Base Layers
|
## Base Layers
|
||||||
|
|
||||||
### Layer 0: QWERTY - `_QW`
|
My base layers are pretty standard for a 60%, with the following changes:
|
||||||
|
|
||||||
Standard QWERTY layout, with four QMK features:
|
- The `Menu` key has been replaced by `MO(_FN)`, which moves to my Function layer when held.
|
||||||
|
|
||||||
- The `Menu` key has been replaced by `MO(_FW)`, which moves to my Windows Fn layer when held.
|
|
||||||
- The Right `GUI` key has been replaced with a `MO(_MA)` key, which moves to the Macro layer when held.
|
- The Right `GUI` key has been replaced with a `MO(_MA)` key, which moves to the Macro layer when held.
|
||||||
- The `Caps Lock` key has been replaced with a dual function `LT()` key, which opens the Windows Fn layer when held, and is `Caps Lock` when tapped
|
- The `Caps Lock` key has been replaced with a dual function `LT()` key, which opens the Function layer when held, and is `Caps Lock` when tapped.
|
||||||
- The Left `Control` key has been replaced with a `MT(MOD_CTRL, KC_GRV)` key, which is <code>` ~</code> when tapped and `Ctrl` when held.
|
- The Left `Control` key has been replaced with a `MT(MOD_CTRL, KC_GRV)` key, which is `Ctrl` when held and <code>` ~</code> when tapped.
|
||||||
|
|
||||||

|
### Layer 0: Dvorak - `_DV`
|
||||||
|
|
||||||
|
A hardware-based Dvorak Simplified layout. In this layer, I can leave the host system in QWERTY, plug my keyboard in, and still type in Dvorak.
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
----
|
### Layer 1: QWERTY - `_QW`
|
||||||
|
|
||||||
### Layer 1: Hardware Dvorak - `_DV`
|
|
||||||
|
|
||||||
- Accessed by holding either `Fn` and tapping `/?` key, then tapping `2@`.
|
- Accessed by holding either `Fn` and tapping `/?` key, then tapping `2@`.
|
||||||
|
|
||||||
A hardware-based Dvorak Simplified layout. At my weekend job, I use a shared computer that runs MacOS Sierra, in US QWERTY layout. In this layer, I can leave the system in QWERTY, plug my keyboard in, and still type in Dvorak.
|
For when other people need to use my keyboard. :)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
### Layer 2: Hardware Colemak `_CM`
|
### Layer 2: Hardware Colemak `_CM`
|
||||||
|
|
||||||
- Accessed by holding either `Fn` and tapping `/?` key, then tapping `3#`.
|
- Accessed by holding either `Fn` and tapping `/?` key, then tapping `3#`.
|
||||||
|
|
||||||
A hardware-based Colemak layout. Been thinking of trying it, so it's here.
|
A hardware-based Colemak layout. Been thinking of trying it, so it's here.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
||||||
----
|
----
|
||||||
@@ -83,11 +81,7 @@ A hardware-based Colemak layout. Been thinking of trying it, so it's here.
|
|||||||
|
|
||||||
- Accessed by holding either `Fn` key and tapping the `/?` key, then tapping `4$`
|
- Accessed by holding either `Fn` key and tapping the `/?` key, then tapping `4$`
|
||||||
|
|
||||||
These layers were born out of the confusion I have had trying to use the in-game chat and the console in [Quake 2](https://en.wikipedia.org/wiki/Quake_II). When Quake 2 came out, alternate keyboard layouts weren't really a thing. As a result, all in-game text input is hard-locked to US QWERTY, regardless of what the operating system is using for its input method.
|
I used to have some macro craziness here. I've now switched to leaving my main system in QWERTY and having the Dvorak stuff happen on the keyboard, and setting my in-game key assignments to the Dvorak mapping (`.OEU` instead of `ESDF`).
|
||||||
|
|
||||||
I have solved this by writing a custom QMK macro. The keycode in the System layer that enables these layers, [`GO_Q2`](./keymap.c#L205), is a [macro](./keymap.c#L63-L70) that sets the default layer to the QWERTY layer, then turns the Quake 2 layer `_Q2` on. The result is a partially-overwritten QWERTY layer, that changes the dual-function Left Control/Grave key to a standard Left Control, and the Enter key into a special Enter key specific to Quake 2.
|
|
||||||
|
|
||||||
When I hit the `Enter` key (bound in-game to text chat), the [macro keycode](./keymap.c#L71-L86) I've created sends the keycode for `Enter`, then follows with flipping an internal boolean variable and enabling the Hardware Dvorak layer. Now the game is in text chat mode, and my keyboard is in Dvorak. When I hit `Enter` again, another `Enter` key is sent, which sends the message, then the macro flips the boolean back to false and disables the Hardware Dvorak layer, which brings me back to the standard QWERTY+Quake 2 setup. Hitting `Escape` instead runs a [macro](./keymap.c#L87-L97) that cancels the sending of the message, and undoes the layers.
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
@@ -96,7 +90,7 @@ When I hit the `Enter` key (bound in-game to text chat), the [macro keycode](./k
|
|||||||
|
|
||||||
## Function Layer
|
## Function Layer
|
||||||
|
|
||||||
### Layer 4: Fn layer - `_FN`
|
### Layer 4: Function layer - `_FN`
|
||||||
|
|
||||||
- Accessed by holding either `Fn` key from any base layer
|
- Accessed by holding either `Fn` key from any base layer
|
||||||
|
|
||||||
@@ -118,8 +112,6 @@ Puts a Numpad on the right-hand side of the keyboard. A through F included for h
|
|||||||

|

|
||||||
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
### Layer 6: Macro layer - `_MA`
|
### Layer 6: Macro layer - `_MA`
|
||||||
|
|
||||||
- Accessed by holding the right-side `Win` key
|
- Accessed by holding the right-side `Win` key
|
||||||
@@ -131,8 +123,6 @@ For macro documentation, see [my userspace readme](../../../../users/noroadsleft
|
|||||||

|

|
||||||
|
|
||||||
|
|
||||||
----
|
|
||||||
|
|
||||||
### Layer 7: System layer - `_SY`
|
### Layer 7: System layer - `_SY`
|
||||||
|
|
||||||
- Accessed by holding either `Fn` key and tapping the `/?` key
|
- Accessed by holding either `Fn` key and tapping the `/?` key
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ MCU = atmega32u4
|
|||||||
# QMK DFU qmk-dfu
|
# QMK DFU qmk-dfu
|
||||||
# ATmega32A bootloadHID
|
# ATmega32A bootloadHID
|
||||||
# ATmega328P USBasp
|
# ATmega328P USBasp
|
||||||
BOOTLOADER = atmel-dfu
|
BOOTLOADER = caterina
|
||||||
|
|
||||||
# Build Options
|
# Build Options
|
||||||
# change yes to no to disable
|
# change yes to no to disable
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ from . import config_h
|
|||||||
from . import dfu_header
|
from . import dfu_header
|
||||||
from . import docs
|
from . import docs
|
||||||
from . import info_json
|
from . import info_json
|
||||||
|
from . import keyboard_h
|
||||||
from . import layouts
|
from . import layouts
|
||||||
from . import rgb_breathe_table
|
from . import rgb_breathe_table
|
||||||
from . import rules_mk
|
from . import rules_mk
|
||||||
Executable
+60
@@ -0,0 +1,60 @@
|
|||||||
|
"""Used by the make system to generate keyboard.h from info.json.
|
||||||
|
"""
|
||||||
|
from milc import cli
|
||||||
|
|
||||||
|
from qmk.decorators import automagic_keyboard, automagic_keymap
|
||||||
|
from qmk.info import info_json
|
||||||
|
from qmk.keyboard import keyboard_completer, keyboard_folder
|
||||||
|
from qmk.path import normpath
|
||||||
|
|
||||||
|
|
||||||
|
def would_populate_layout_h(keyboard):
|
||||||
|
"""Detect if a given keyboard is doing data driven layouts
|
||||||
|
"""
|
||||||
|
# Build the info.json file
|
||||||
|
kb_info_json = info_json(keyboard)
|
||||||
|
|
||||||
|
for layout_name in kb_info_json['layouts']:
|
||||||
|
if kb_info_json['layouts'][layout_name]['c_macro']:
|
||||||
|
continue
|
||||||
|
|
||||||
|
if 'matrix' not in kb_info_json['layouts'][layout_name]['layout'][0]:
|
||||||
|
cli.log.debug('%s/%s: No matrix data!', keyboard, layout_name)
|
||||||
|
continue
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
@cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to')
|
||||||
|
@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages")
|
||||||
|
@cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, required=True, help='Keyboard to generate keyboard.h for.')
|
||||||
|
@cli.subcommand('Used by the make system to generate keyboard.h from info.json', hidden=True)
|
||||||
|
@automagic_keyboard
|
||||||
|
@automagic_keymap
|
||||||
|
def generate_keyboard_h(cli):
|
||||||
|
"""Generates the keyboard.h file.
|
||||||
|
"""
|
||||||
|
has_layout_h = would_populate_layout_h(cli.config.generate_keyboard_h.keyboard)
|
||||||
|
|
||||||
|
# Build the layouts.h file.
|
||||||
|
keyboard_h_lines = ['/* This file was generated by `qmk generate-keyboard-h`. Do not edit or copy.' ' */', '', '#pragma once', '#include "quantum.h"']
|
||||||
|
|
||||||
|
if not has_layout_h:
|
||||||
|
keyboard_h_lines.append('#pragma error("<keyboard>.h is only optional for data driven keyboards - kb.h == bad times")')
|
||||||
|
|
||||||
|
# Show the results
|
||||||
|
keyboard_h = '\n'.join(keyboard_h_lines) + '\n'
|
||||||
|
|
||||||
|
if cli.args.output:
|
||||||
|
cli.args.output.parent.mkdir(parents=True, exist_ok=True)
|
||||||
|
if cli.args.output.exists():
|
||||||
|
cli.args.output.replace(cli.args.output.parent / (cli.args.output.name + '.bak'))
|
||||||
|
cli.args.output.write_text(keyboard_h)
|
||||||
|
|
||||||
|
if not cli.args.quiet:
|
||||||
|
cli.log.info('Wrote keyboard_h to %s.', cli.args.output)
|
||||||
|
|
||||||
|
else:
|
||||||
|
print(keyboard_h)
|
||||||
@@ -1 +1,2 @@
|
|||||||
|
from . import keyboard
|
||||||
from . import keymap
|
from . import keymap
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
"""This script automates the creation of keyboards.
|
||||||
|
"""
|
||||||
|
from milc import cli
|
||||||
|
|
||||||
|
|
||||||
|
@cli.subcommand('Creates a new keyboard')
|
||||||
|
def new_keyboard(cli):
|
||||||
|
"""Creates a new keyboard
|
||||||
|
"""
|
||||||
|
# TODO: replace this bodge to the existing script
|
||||||
|
cli.run(['util/new_keyboard.sh'], capture_output=False)
|
||||||
+3
-1
@@ -160,6 +160,8 @@ define EXEC_AVRDUDE
|
|||||||
list_devices() { \
|
list_devices() { \
|
||||||
if $(GREP) -q -s icrosoft /proc/version; then \
|
if $(GREP) -q -s icrosoft /proc/version; then \
|
||||||
wmic.exe path Win32_SerialPort get DeviceID 2>/dev/null | LANG=C perl -pne 's/COM(\d+)/COM.($$1-1)/e' | sed 's!COM!/dev/ttyS!' | xargs echo -n | sort; \
|
wmic.exe path Win32_SerialPort get DeviceID 2>/dev/null | LANG=C perl -pne 's/COM(\d+)/COM.($$1-1)/e' | sed 's!COM!/dev/ttyS!' | xargs echo -n | sort; \
|
||||||
|
elif [ "`uname`" = "FreeBSD" ]; then \
|
||||||
|
ls /dev/tty* | grep -v '\.lock$$' | grep -v '\.init$$'; \
|
||||||
else \
|
else \
|
||||||
ls /dev/tty*; \
|
ls /dev/tty*; \
|
||||||
fi; \
|
fi; \
|
||||||
@@ -169,7 +171,7 @@ define EXEC_AVRDUDE
|
|||||||
TMP1=`mktemp`; \
|
TMP1=`mktemp`; \
|
||||||
TMP2=`mktemp`; \
|
TMP2=`mktemp`; \
|
||||||
list_devices > $$TMP1; \
|
list_devices > $$TMP1; \
|
||||||
while [ -z $$USB ]; do \
|
while [ -z "$$USB" ]; do \
|
||||||
sleep 0.5; \
|
sleep 0.5; \
|
||||||
printf "."; \
|
printf "."; \
|
||||||
list_devices > $$TMP2; \
|
list_devices > $$TMP2; \
|
||||||
|
|||||||
@@ -80,7 +80,21 @@ enum consumer_usages {
|
|||||||
AL_ASSISTANT = 0x1CB,
|
AL_ASSISTANT = 0x1CB,
|
||||||
AL_KEYBOARD_LAYOUT = 0x1AE,
|
AL_KEYBOARD_LAYOUT = 0x1AE,
|
||||||
// 15.16 Generic GUI Application Controls
|
// 15.16 Generic GUI Application Controls
|
||||||
|
AC_NEW = 0x201,
|
||||||
|
AC_OPEN = 0x202,
|
||||||
|
AC_CLOSE = 0x203,
|
||||||
|
AC_EXIT = 0x204,
|
||||||
|
AC_MAXIMIZE = 0x205,
|
||||||
AC_MINIMIZE = 0x206,
|
AC_MINIMIZE = 0x206,
|
||||||
|
AC_SAVE = 0x207,
|
||||||
|
AC_PRINT = 0x208,
|
||||||
|
AC_PROPERTIES = 0x209,
|
||||||
|
AC_UNDO = 0x21A,
|
||||||
|
AC_COPY = 0x21B,
|
||||||
|
AC_CUT = 0x21C,
|
||||||
|
AC_PASTE = 0x21D,
|
||||||
|
AC_SELECT_ALL = 0x21E,
|
||||||
|
AC_FIND = 0x21F,
|
||||||
AC_SEARCH = 0x221,
|
AC_SEARCH = 0x221,
|
||||||
AC_HOME = 0x223,
|
AC_HOME = 0x223,
|
||||||
AC_BACK = 0x224,
|
AC_BACK = 0x224,
|
||||||
@@ -96,9 +110,12 @@ enum consumer_usages {
|
|||||||
*/
|
*/
|
||||||
enum desktop_usages {
|
enum desktop_usages {
|
||||||
// 4.5.1 System Controls - Power Controls
|
// 4.5.1 System Controls - Power Controls
|
||||||
SYSTEM_POWER_DOWN = 0x81,
|
SYSTEM_POWER_DOWN = 0x81,
|
||||||
SYSTEM_SLEEP = 0x82,
|
SYSTEM_SLEEP = 0x82,
|
||||||
SYSTEM_WAKE_UP = 0x83
|
SYSTEM_WAKE_UP = 0x83,
|
||||||
|
SYSTEM_RESTART = 0x8F,
|
||||||
|
// 4.10 System Display Controls
|
||||||
|
SYSTEM_DISPLAY_TOGGLE_INT_EXT = 0xB5
|
||||||
};
|
};
|
||||||
|
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ Some frequently used Git commands.
|
|||||||
| [`G_FTCH`](./noroadsleft.c#L43-L52) | `git fetch upstream ` | `git pull upstream ` |
|
| [`G_FTCH`](./noroadsleft.c#L43-L52) | `git fetch upstream ` | `git pull upstream ` |
|
||||||
| [`G_BRCH`](./noroadsleft.c#L53-L62) | `master` | `$(git branch-name)` |
|
| [`G_BRCH`](./noroadsleft.c#L53-L62) | `master` | `$(git branch-name)` |
|
||||||
|
|
||||||
`$(git branch-name)` is an alias for `git rev-parse --abbrev-ref HEAD`, which normally return the name of the current branch.
|
`$(git branch-name)` is an alias for `git rev-parse --abbrev-ref HEAD`, which normally returns the name of the current branch.
|
||||||
|
|
||||||
### "Macro Mode" Macros and Customized Keycodes
|
### "Macro Mode" Macros and Customized Keycodes
|
||||||
|
|
||||||
@@ -76,6 +76,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
## Footnotes
|
## Footnotes
|
||||||
|
|
||||||
- 1: [^](#macro-mode-macros-and-customized-keycodes) The `M_MDSWP` keycode is used in my keymaps in the following locations:
|
- 1: [^](#macro-mode-macros-and-customized-keycodes) The `M_MDSWP` keycode is used in my keymaps in the following locations:
|
||||||
- [KC60](../../keyboards/kc60/keymaps/noroadsleft/keymap.c#L206)
|
- [KC60](../../keyboards/kc60/keymaps/noroadsleft/keymap.c#L111)
|
||||||
- [KBDfans KBD75 rev1](../../keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c#L102)
|
- [KBDfans KBD75 rev1](../../keyboards/kbdfans/kbd75/keymaps/noroadsleft/keymap.c#L93)
|
||||||
- [CoseyFannitutti Discipline](../../keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c#L67)
|
- [CoseyFannitutti Discipline](../../keyboards/coseyfannitutti/discipline/keymaps/noroadsleft/keymap.c#L66)
|
||||||
Reference in new issue
Block a user