Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e646211919 | ||
|
|
ccdb432f71 | ||
|
|
491b83aa32 | ||
|
|
fcce9f2a4f | ||
|
|
9088df04c3 | ||
|
|
ae2c2358ec | ||
|
|
a617c8b80a | ||
|
|
b1c5a53a68 | ||
|
|
e6e4ec6267 | ||
|
|
a73e0a7b13 | ||
|
|
2e5cecd704 | ||
|
|
d45da3f0fb | ||
|
|
fc9fb2c775 | ||
|
|
b69e7431aa | ||
|
|
b5bcd5b0a1 | ||
|
|
145d89ab91 | ||
|
|
44a0aa924c | ||
|
|
1b002b7dcc | ||
|
|
d4bc77ac94 | ||
|
|
e08203f16a | ||
|
|
4a47ee937d | ||
|
|
cda1792ece | ||
|
|
a08c7087be | ||
|
|
dfd795e48e | ||
|
|
4a8f540949 | ||
|
|
270bf7a87a | ||
|
|
79c8f035cc | ||
|
|
5d7f2823c9 | ||
|
|
95a7c22824 | ||
|
|
58abdfc834 | ||
|
|
78a3f43c08 | ||
|
|
8158473464 | ||
|
|
336c8d3efe | ||
|
|
a400681ccf | ||
|
|
e9c3f71e74 | ||
|
|
92cca84651 | ||
|
|
8e905a7a5c | ||
|
|
8c17a822a8 | ||
|
|
5766b9bfb7 | ||
|
|
fbe782534a | ||
|
|
665af4fa8d | ||
|
|
5b8d2b5cde | ||
|
|
b564ba13ee | ||
|
|
c79bc7c909 | ||
|
|
2b260bd846 | ||
|
|
ca1aa56c7f | ||
|
|
afc629210c | ||
|
|
ec1a6f6b8b | ||
|
|
ddc2766537 | ||
|
|
dbca44ae8d | ||
|
|
81cac8eec6 | ||
|
|
c1ba35363d | ||
|
|
3591312fa3 | ||
|
|
42ac7c0541 | ||
|
|
8c526703f8 | ||
|
|
c6698cfce3 | ||
|
|
8f6867ce95 | ||
|
|
16e52980c4 | ||
|
|
ec78f8bca2 | ||
|
|
4f880801ec | ||
|
|
9d523499af | ||
|
|
388a4ae817 | ||
|
|
3486870ee4 | ||
|
|
7ea1b97785 | ||
|
|
815c17b726 | ||
|
|
b887a1b995 | ||
|
|
1256915583 | ||
|
|
35ee990bd0 | ||
|
|
17933a884a | ||
|
|
6ab0593f44 | ||
|
|
9941cf0051 | ||
|
|
8b0a996d5d | ||
|
|
f439bfd543 | ||
|
|
46b8230468 | ||
|
|
8e30ec1eee | ||
|
|
1105f2eb47 | ||
|
|
5ee5280fa1 | ||
|
|
10905a6500 | ||
|
|
44a8ad265c | ||
|
|
8bc8eadaf9 | ||
|
|
7e698c71cd | ||
|
|
046429fa87 | ||
|
|
4b55b7f852 | ||
|
|
58f9321a77 | ||
|
|
5b6780f999 | ||
|
|
07ae72ea6b | ||
|
|
876f861715 | ||
|
|
26e64f4fd3 | ||
|
|
ca0e7e7bd9 | ||
|
|
b127180c0c |
No files matched your search
@@ -252,11 +252,20 @@ define PARSE_RULE
|
|||||||
else
|
else
|
||||||
$$(info make: *** No rule to make target '$1'. Stop.)
|
$$(info make: *** No rule to make target '$1'. Stop.)
|
||||||
$$(info |)
|
$$(info |)
|
||||||
$$(info | QMK's make format recently changed to use folder locations and colons:)
|
$$(info | QMK's make format is:)
|
||||||
$$(info | make project_folder:keymap[:target])
|
$$(info | make keyboard_folder:keymap_folder[:target])
|
||||||
$$(info | Examples:)
|
$$(info |)
|
||||||
$$(info | make dz60:default)
|
$$(info | Where `keyboard_folder` is the path to the keyboard relative to)
|
||||||
$$(info | make planck/rev6:default:flash)
|
$$(info | `qmk_firmware/keyboards/`, and `keymap_folder` is the name of the)
|
||||||
|
$$(info | keymap folder under that board's `keymaps/` directory.)
|
||||||
|
$$(info |)
|
||||||
|
$$(info | Examples:)
|
||||||
|
$$(info | keyboards/dz60, keyboards/dz60/keymaps/default)
|
||||||
|
$$(info | -> make dz60:default)
|
||||||
|
$$(info | -> qmk compile -kb dz60 -km default)
|
||||||
|
$$(info | keyboards/planck/rev6, keyboards/planck/keymaps/default)
|
||||||
|
$$(info | -> make planck/rev6:default:flash)
|
||||||
|
$$(info | -> qmk flash -kb planck/rev6 -km default)
|
||||||
$$(info |)
|
$$(info |)
|
||||||
endif
|
endif
|
||||||
endef
|
endef
|
||||||
|
|||||||
+11
-2
@@ -24,7 +24,6 @@ GTEST_INTERNAL_INC :=\
|
|||||||
|
|
||||||
$(GTEST_OUTPUT)_SRC :=\
|
$(GTEST_OUTPUT)_SRC :=\
|
||||||
googletest/src/gtest-all.cc\
|
googletest/src/gtest-all.cc\
|
||||||
googletest/src/gtest_main.cc\
|
|
||||||
googlemock/src/gmock-all.cc
|
googlemock/src/gmock-all.cc
|
||||||
|
|
||||||
$(GTEST_OUTPUT)_DEFS :=
|
$(GTEST_OUTPUT)_DEFS :=
|
||||||
@@ -35,7 +34,8 @@ CREATE_MAP := no
|
|||||||
|
|
||||||
VPATH +=\
|
VPATH +=\
|
||||||
$(LIB_PATH)/googletest\
|
$(LIB_PATH)/googletest\
|
||||||
$(LIB_PATH)/googlemock
|
$(LIB_PATH)/googlemock\
|
||||||
|
$(LIB_PATH)/printf
|
||||||
|
|
||||||
all: elf
|
all: elf
|
||||||
|
|
||||||
@@ -43,6 +43,10 @@ VPATH += $(COMMON_VPATH)
|
|||||||
PLATFORM:=TEST
|
PLATFORM:=TEST
|
||||||
PLATFORM_KEY:=test
|
PLATFORM_KEY:=test
|
||||||
|
|
||||||
|
ifeq ($(strip $(DEBUG)), 1)
|
||||||
|
CONSOLE_ENABLE = yes
|
||||||
|
endif
|
||||||
|
|
||||||
ifneq ($(filter $(FULL_TESTS),$(TEST)),)
|
ifneq ($(filter $(FULL_TESTS),$(TEST)),)
|
||||||
include tests/$(TEST)/rules.mk
|
include tests/$(TEST)/rules.mk
|
||||||
endif
|
endif
|
||||||
@@ -55,6 +59,11 @@ ifneq ($(filter $(FULL_TESTS),$(TEST)),)
|
|||||||
include build_full_test.mk
|
include build_full_test.mk
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
$(TEST)_SRC += \
|
||||||
|
tests/test_common/main.c \
|
||||||
|
$(LIB_PATH)/printf/printf.c \
|
||||||
|
$(COMMON_DIR)/printf.c
|
||||||
|
|
||||||
$(TEST_OBJ)/$(TEST)_SRC := $($(TEST)_SRC)
|
$(TEST_OBJ)/$(TEST)_SRC := $($(TEST)_SRC)
|
||||||
$(TEST_OBJ)/$(TEST)_INC := $($(TEST)_INC) $(VPATH) $(GTEST_INC)
|
$(TEST_OBJ)/$(TEST)_INC := $($(TEST)_INC) $(VPATH) $(GTEST_INC)
|
||||||
$(TEST_OBJ)/$(TEST)_DEFS := $($(TEST)_DEFS)
|
$(TEST_OBJ)/$(TEST)_DEFS := $($(TEST)_DEFS)
|
||||||
|
|||||||
+1
-1
@@ -28,7 +28,7 @@ For compatible platforms, [QMK Toolbox](https://github.com/qmk/qmk_toolbox) can
|
|||||||
|
|
||||||
Prefer a terminal based solution? [hid_listen](https://www.pjrc.com/teensy/hid_listen.html), provided by PJRC, can also be used to display debug messages. Prebuilt binaries for Windows,Linux,and MacOS are available.
|
Prefer a terminal based solution? [hid_listen](https://www.pjrc.com/teensy/hid_listen.html), provided by PJRC, can also be used to display debug messages. Prebuilt binaries for Windows,Linux,and MacOS are available.
|
||||||
|
|
||||||
## Sending Your Own Debug Messages
|
## Sending Your Own Debug Messages :id=debug-api
|
||||||
|
|
||||||
Sometimes it's useful to print debug messages from within your [custom code](custom_quantum_functions.md). Doing so is pretty simple. Start by including `print.h` at the top of your file:
|
Sometimes it's useful to print debug messages from within your [custom code](custom_quantum_functions.md). Doing so is pretty simple. Start by including `print.h` at the top of your file:
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
# LED Indicators
|
# LED Indicators
|
||||||
|
|
||||||
|
?> Currently, this feature is not supported for split keyboards
|
||||||
|
|
||||||
QMK provides methods to read 5 of the LEDs defined in the HID spec:
|
QMK provides methods to read 5 of the LEDs defined in the HID spec:
|
||||||
|
|
||||||
* Num Lock
|
* Num Lock
|
||||||
|
|||||||
@@ -490,6 +490,8 @@ void ql_finished(qk_tap_dance_state_t *state, void *user_data) {
|
|||||||
layer_on(_MY_LAYER);
|
layer_on(_MY_LAYER);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ You can control the behavior of one shot keys by defining these in `config.h`:
|
|||||||
* `OSL(layer)` - momentary switch to *layer*.
|
* `OSL(layer)` - momentary switch to *layer*.
|
||||||
* `OS_ON` - Turns on One Shot keys.
|
* `OS_ON` - Turns on One Shot keys.
|
||||||
* `OS_OFF` - Turns off One Shot keys. OSM act as regular mod keys, OSL act like `MO`.
|
* `OS_OFF` - Turns off One Shot keys. OSM act as regular mod keys, OSL act like `MO`.
|
||||||
* `ON_TOGG` - Toggles the one shot key status.
|
* `OS_TOGG` - Toggles the one shot key status.
|
||||||
|
|
||||||
Sometimes, you want to activate a one-shot key as part of a macro or tap dance routine.
|
Sometimes, you want to activate a one-shot key as part of a macro or tap dance routine.
|
||||||
|
|
||||||
|
|||||||
@@ -36,12 +36,20 @@ Note how there's several different tests, each mocking out a separate part. Also
|
|||||||
|
|
||||||
## Running the Tests
|
## Running the Tests
|
||||||
|
|
||||||
To run all the tests in the codebase, type `make test`. You can also run test matching a substring by typing `make test:matchingsubstring` Note that the tests are always compiled with the native compiler of your platform, so they are also run like any other program on your computer.
|
To run all the tests in the codebase, type `make test:all`. You can also run test matching a substring by typing `make test:matchingsubstring` Note that the tests are always compiled with the native compiler of your platform, so they are also run like any other program on your computer.
|
||||||
|
|
||||||
## Debugging the Tests
|
## Debugging the Tests
|
||||||
|
|
||||||
If there are problems with the tests, you can find the executable in the `./build/test` folder. You should be able to run those with GDB or a similar debugger.
|
If there are problems with the tests, you can find the executable in the `./build/test` folder. You should be able to run those with GDB or a similar debugger.
|
||||||
|
|
||||||
|
To forward any [debug messages](unit_testing.md#debug-api) to `stderr`, the tests can run with `DEBUG=1`. For example
|
||||||
|
|
||||||
|
```console
|
||||||
|
make test:all DEBUG=1
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternatively, add `CONSOLE_ENABLE=yes` to the tests `rules.mk`.
|
||||||
|
|
||||||
## Full Integration Tests
|
## Full Integration Tests
|
||||||
|
|
||||||
It's not yet possible to do a full integration test, where you would compile the whole firmware and define a keymap that you are going to test. However there are plans for doing that, because writing tests that way would probably be easier, at least for people that are not used to unit testing.
|
It's not yet possible to do a full integration test, where you would compile the whole firmware and define a keymap that you are going to test. However there are plans for doing that, because writing tests that way would probably be easier, at least for people that are not used to unit testing.
|
||||||
|
|||||||
@@ -20,13 +20,6 @@ void eeconfig_init_kb(void) {
|
|||||||
#ifdef BACKLIGHT_ENABLE
|
#ifdef BACKLIGHT_ENABLE
|
||||||
backlight_enable();
|
backlight_enable();
|
||||||
backlight_level(5);
|
backlight_level(5);
|
||||||
#endif
|
|
||||||
#ifdef RGBLIGHT_ENABLE
|
|
||||||
rgblight_enable();
|
|
||||||
rgblight_sethsv(0, 255, 255);
|
|
||||||
#ifdef RGBLIGHT_ANIMATIONS
|
|
||||||
rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2);
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
eeconfig_update_kb(0);
|
eeconfig_update_kb(0);
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
* The second converts the arguments into a two-dimensional array which
|
* The second converts the arguments into a two-dimensional array which
|
||||||
* represents the switch matrix.
|
* represents the switch matrix.
|
||||||
*/
|
*/
|
||||||
|
// clang-format off
|
||||||
#define LAYOUT( \
|
#define LAYOUT( \
|
||||||
KA1, KA2, KA3, \
|
KA1, KA2, KA3, \
|
||||||
KB1, KB2, KB3, \
|
KB1, KB2, KB3, \
|
||||||
@@ -36,3 +37,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
{ KB1, KB2, KB3 }, \
|
{ KB1, KB2, KB3 }, \
|
||||||
{ KC1, KC2, KC3 } \
|
{ KC1, KC2, KC3 } \
|
||||||
}
|
}
|
||||||
|
// clang-format on
|
||||||
@@ -17,6 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include "config_common.h"
|
#include "config_common.h"
|
||||||
|
// clang-format off
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0xCB00
|
#define VENDOR_ID 0xCB00
|
||||||
@@ -47,19 +48,26 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#define RGB_DI_PIN D3
|
#define RGB_DI_PIN D3
|
||||||
#ifdef RGB_DI_PIN
|
#ifdef RGB_DI_PIN
|
||||||
#define RGBLED_NUM 5
|
#define RGBLED_NUM 4
|
||||||
#define RGBLIGHT_HUE_STEP 8
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
#define RGBLIGHT_SAT_STEP 8
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
#define RGBLIGHT_VAL_STEP 8
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
|
#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
|
||||||
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||||
// #define RGBLIGHT_ANIMATIONS
|
#define RGBLIGHT_ANIMATIONS /* comment this and uncomment the lines below to save space */
|
||||||
#define RGBLIGHT_EFFECT_BREATHING
|
// #define RGBLIGHT_EFFECT_BREATHING
|
||||||
#define RGBLIGHT_EFFECT_SNAKE
|
// #define RGBLIGHT_EFFECT_SNAKE
|
||||||
#define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||||
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||||
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||||
|
/* default setup after eeprom reset */
|
||||||
|
#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_EFFECT_BREATHING + 2
|
||||||
|
#define RGBLIGHT_DEFAULT_HUE 152
|
||||||
|
#define RGBLIGHT_DEFAULT_SAT 232
|
||||||
|
#define RGBLIGHT_DEFAULT_VAR 255
|
||||||
|
#define RGBLIGHT_DEFAULT_SPD 2
|
||||||
#endif
|
#endif
|
||||||
|
// clang-format on
|
||||||
|
|
||||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
#define DEBOUNCE 5
|
#define DEBOUNCE 5
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ 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 "progmem.h"
|
#include "progmem.h"
|
||||||
|
// clang-format off
|
||||||
static const unsigned char font[] PROGMEM = {
|
static const unsigned char font[] PROGMEM = {
|
||||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
|
0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
|
||||||
@@ -274,3 +274,4 @@ static const unsigned char font[] PROGMEM = {
|
|||||||
0x07, 0x07, 0x0F, 0x0F, 0x1E, 0x3E,
|
0x07, 0x07, 0x0F, 0x0F, 0x1E, 0x3E,
|
||||||
0x3C, 0x7C, 0x70, 0xC0, 0x80, 0x00,
|
0x3C, 0x7C, 0x70, 0xC0, 0x80, 0x00,
|
||||||
};
|
};
|
||||||
|
// clang-format on
|
||||||
@@ -0,0 +1,185 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 0xCB - Conor Burns
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
// clang-format off
|
||||||
|
enum layer_names {
|
||||||
|
_HOME,
|
||||||
|
_MISC,
|
||||||
|
_RGB,
|
||||||
|
_BLED
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_HOME] = LAYOUT(
|
||||||
|
KC_MPRV, KC_MNXT, KC_MPLY,
|
||||||
|
KC_PGUP, KC_PGDN, TO(3),
|
||||||
|
KC_HOME, KC_END, TO(1)
|
||||||
|
),
|
||||||
|
[_MISC] = LAYOUT(
|
||||||
|
_______, _______, _______,
|
||||||
|
_______, _______, TO(0),
|
||||||
|
_______, _______, TO(2)
|
||||||
|
),
|
||||||
|
[_RGB] = LAYOUT(
|
||||||
|
RGB_HUI, RGB_HUD, RGB_MOD,
|
||||||
|
RGB_SAI, RGB_SAD, TO(1),
|
||||||
|
RGB_SPI, RGB_SPD, TO(3)
|
||||||
|
),
|
||||||
|
[_BLED] = LAYOUT(
|
||||||
|
BL_STEP, BL_BRTG, BL_TOGG,
|
||||||
|
BL_ON, BL_OFF, TO(2),
|
||||||
|
BL_INC, BL_DEC, TO(0)
|
||||||
|
)
|
||||||
|
};
|
||||||
|
// clang-format on
|
||||||
|
|
||||||
|
/* rotary encoder (SW3) - add more else if blocks for more granular layer control */
|
||||||
|
#ifdef ENCODER_ENABLE
|
||||||
|
bool encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
if (IS_LAYER_ON(_RGB)) {
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
if (clockwise) {
|
||||||
|
rgblight_increase_val();
|
||||||
|
} else {
|
||||||
|
rgblight_decrease_val();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
} else if (IS_LAYER_ON(_BLED)) {
|
||||||
|
if (clockwise) {
|
||||||
|
backlight_increase();
|
||||||
|
} else {
|
||||||
|
backlight_decrease();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_VOLU);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_VOLD);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* oled stuff :) */
|
||||||
|
#ifdef OLED_DRIVER_ENABLE
|
||||||
|
uint16_t startup_timer;
|
||||||
|
|
||||||
|
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||||
|
startup_timer = timer_read();
|
||||||
|
return rotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void render_logo(void) {
|
||||||
|
static const char PROGMEM raw_logo[] = {
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0, 0, 0, 0, 0, 1, 2, 4, 2, 1, 1, 1, 1, 1, 1,255, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 1, 1, 1, 1, 1, 1, 2, 4, 2, 1, 0, 0, 0, 0, 0, 0,128, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0, 0, 0, 0, 0, 0,128,192,192,224,224,112,120, 56, 63, 28, 14, 14, 14,254, 14, 14, 30, 28, 63, 56,120,112,224,224,192,128, 0, 0, 0, 0, 0, 0, 0, 2, 5,248, 5, 2, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,160, 19,162, 66, 66, 66, 66, 66, 66, 66,255,255,255, 0, 0, 0,252,254,254,192,192,192,192,255, 0, 0, 0, 62, 62, 60, 60, 0, 0, 1,255,255,255, 66, 66, 66, 66, 66, 66, 66,162, 19,160, 64, 0,
|
||||||
|
0, 0, 0,128, 64, 64, 64,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,192, 64, 64,192,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 64,192, 0, 0, 0, 0, 0,128,192, 64, 64,192,128, 0, 0,128,192, 64, 64,192,128, 0, 0, 64, 64, 64, 64, 64,192, 0, 0, 0, 0, 0,249, 8, 8, 8, 8, 8, 8, 8, 8,127,255,255,192,128,128, 15, 31, 31, 1, 1, 1, 1,255, 0, 0, 0, 30, 30, 14, 14,128,192,192,255,255,127, 8, 8, 8, 8, 8, 8, 8, 8,249, 0, 0, 0,
|
||||||
|
0, 0, 31, 49, 64, 78, 64, 49, 31, 0, 0, 97, 22, 8, 22, 97, 0, 0, 31, 49, 96, 64, 64, 96, 32, 0, 0,127, 68, 68,100, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 64,127, 64, 64, 0, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 32,100, 68, 68,110, 59, 0, 0, 0, 0, 0,126, 3, 1, 0, 0, 0, 8, 20, 35, 20, 8, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 3, 7, 7, 15,254, 30, 28, 28, 28,255, 28, 28, 28, 30,254, 15, 7, 3, 3, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 4, 10, 17, 10, 4, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 40, 68, 40, 16, 16, 16, 16, 16, 16, 31, 0, 0, 16, 40, 71, 40, 16, 0, 0, 31, 16, 16, 16, 16, 16, 16, 40, 68, 40, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
};
|
||||||
|
oled_write_raw_P(raw_logo, sizeof(raw_logo));
|
||||||
|
}
|
||||||
|
static void render_logo_font(void) {
|
||||||
|
static const char PROGMEM qmk_logo[] = {
|
||||||
|
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xCB, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xCB, 0x9C, 0x9D, 0xCB, 0xCB,
|
||||||
|
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xCB, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xBB, 0xBC, 0xBD, 0xBE, 0xCB,
|
||||||
|
0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xCB, 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xDB, 0xDC, 0xDD, 0xDE, 0xCB,
|
||||||
|
0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xCB, 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, 0x00
|
||||||
|
};
|
||||||
|
|
||||||
|
oled_write_P(qmk_logo, false);
|
||||||
|
}
|
||||||
|
/* Shows the name of the current layer and locks for the host (CAPS etc.) */
|
||||||
|
static void render_info(void) {
|
||||||
|
oled_write_P(PSTR("Layer: "), false);
|
||||||
|
|
||||||
|
switch (get_highest_layer(layer_state)) {
|
||||||
|
case _HOME:
|
||||||
|
oled_write_ln_P(PSTR("HOME"), false);
|
||||||
|
break;
|
||||||
|
case _MISC:
|
||||||
|
oled_write_ln_P(PSTR("MISC"), false);
|
||||||
|
break;
|
||||||
|
case _RGB:
|
||||||
|
oled_write_ln_P(PSTR("RGB"), false);
|
||||||
|
break;
|
||||||
|
case _BLED:
|
||||||
|
oled_write_ln_P(PSTR("Backlight"), false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
oled_write_ln_P(PSTR("Undefined"), false);
|
||||||
|
}
|
||||||
|
led_t led_state = host_keyboard_led_state();
|
||||||
|
oled_write_P(led_state.num_lock ? PSTR("NUM ") : PSTR(" "), false);
|
||||||
|
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
|
||||||
|
oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
|
||||||
|
}
|
||||||
|
static void render_rgbled_status(bool) {
|
||||||
|
char string[4];
|
||||||
|
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) {
|
||||||
|
uint16_t m = rgblight_get_mode();
|
||||||
|
string[3] = '\0';
|
||||||
|
string[2] = '0' + m % 10;
|
||||||
|
string[1] = ( m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' ';
|
||||||
|
string[0] = m / 10 ? '0' + m / 10 : ' ';
|
||||||
|
oled_write_P(PSTR("Conf:"), false);
|
||||||
|
oled_write(string, false);
|
||||||
|
uint16_t h = rgblight_get_hue()/RGBLIGHT_HUE_STEP;
|
||||||
|
string[3] = '\0';
|
||||||
|
string[2] = '0' + h % 10;
|
||||||
|
string[1] = ( h /= 10) % 10 ? '0' + (h) % 10 : (h / 10) % 10 ? '0' : ' ';
|
||||||
|
string[0] = h / 10 ? '0' + h / 10 : ' ';
|
||||||
|
oled_write_P(PSTR(","), false);
|
||||||
|
oled_write(string, false);
|
||||||
|
uint16_t s = rgblight_get_sat()/RGBLIGHT_SAT_STEP;
|
||||||
|
string[3] = '\0';
|
||||||
|
string[2] = '0' + s % 10;
|
||||||
|
string[1] = ( s /= 10) % 10 ? '0' + (s) % 10 : (s / 10) % 10 ? '0' : ' ';
|
||||||
|
string[0] = s / 10 ? '0' + s / 10 : ' ';
|
||||||
|
oled_write_P(PSTR(","), false);
|
||||||
|
oled_write(string, false);
|
||||||
|
uint16_t v = rgblight_get_val()/RGBLIGHT_VAL_STEP;
|
||||||
|
string[3] = '\0';
|
||||||
|
string[2] = '0' + v % 10;
|
||||||
|
string[1] = ( v /= 10) % 10 ? '0' + (v) % 10 : (v / 10) % 10 ? '0' : ' ';
|
||||||
|
string[0] = v / 10 ? '0' + v / 10 : ' ';
|
||||||
|
oled_write_P(PSTR(","), false);
|
||||||
|
oled_write(string, false);
|
||||||
|
oled_write_ln_P(PSTR("\n MOD HUE SAT VAR"), false);
|
||||||
|
} else {
|
||||||
|
oled_write_ln_P(PSTR("\n"), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void oled_task_user(void) {
|
||||||
|
static bool finished_timer = false;
|
||||||
|
if (!finished_timer && (timer_elapsed(startup_timer) < 1000)) {
|
||||||
|
render_logo();
|
||||||
|
} else {
|
||||||
|
if (!finished_timer) {
|
||||||
|
oled_clear();
|
||||||
|
finished_timer = true;
|
||||||
|
}
|
||||||
|
render_info();
|
||||||
|
render_rgbled_status(true);
|
||||||
|
render_logo_font();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -15,8 +15,7 @@ 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 QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
#include <stdio.h>
|
// clang-format off
|
||||||
|
|
||||||
enum layer_names {
|
enum layer_names {
|
||||||
_HOME,
|
_HOME,
|
||||||
_MISC,
|
_MISC,
|
||||||
@@ -46,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
BL_INC, BL_DEC, TO(0)
|
BL_INC, BL_DEC, TO(0)
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
// clang-format on
|
||||||
|
|
||||||
/* rotary encoder (SW3) - add more else if blocks for more granular layer control */
|
/* rotary encoder (SW3) - add more else if blocks for more granular layer control */
|
||||||
#ifdef ENCODER_ENABLE
|
#ifdef ENCODER_ENABLE
|
||||||
@@ -100,10 +99,10 @@ static void render_logo(void) {
|
|||||||
}
|
}
|
||||||
static void render_logo_font(void) {
|
static void render_logo_font(void) {
|
||||||
static const char PROGMEM qmk_logo[] = {
|
static const char PROGMEM qmk_logo[] = {
|
||||||
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xCB, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9,
|
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4,
|
||||||
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xCB, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9,
|
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4,
|
||||||
0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xCB, 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5,
|
0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0,
|
||||||
0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xCB, 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0x00
|
0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
oled_write_P(qmk_logo, false);
|
oled_write_P(qmk_logo, false);
|
||||||
@@ -133,24 +132,41 @@ static void render_info(void) {
|
|||||||
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
|
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
|
||||||
oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
|
oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
|
||||||
}
|
}
|
||||||
static void render_rgbled_status(bool full) {
|
static void render_rgbled_status(bool) {
|
||||||
#ifdef RGBLIGHT_ENABLE
|
char string[4];
|
||||||
char buf[30];
|
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) {
|
||||||
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) {
|
uint16_t m = rgblight_get_mode();
|
||||||
if (full) {
|
string[3] = '\0';
|
||||||
snprintf(buf, sizeof(buf), "RGB mode %2d: %d,%d,%d \n",
|
string[2] = '0' + m % 10;
|
||||||
rgblight_get_mode(),
|
string[1] = ( m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' ';
|
||||||
rgblight_get_hue()/RGBLIGHT_HUE_STEP,
|
string[0] = m / 10 ? '0' + m / 10 : ' ';
|
||||||
rgblight_get_sat()/RGBLIGHT_SAT_STEP,
|
oled_write_P(PSTR("Conf:"), false);
|
||||||
rgblight_get_val()/RGBLIGHT_VAL_STEP);
|
oled_write(string, false);
|
||||||
} else {
|
uint16_t h = rgblight_get_hue()/RGBLIGHT_HUE_STEP;
|
||||||
snprintf(buf, sizeof(buf), "[%2d] ", rgblight_get_mode());
|
string[3] = '\0';
|
||||||
}
|
string[2] = '0' + h % 10;
|
||||||
oled_write(buf, false);
|
string[1] = ( h /= 10) % 10 ? '0' + (h) % 10 : (h / 10) % 10 ? '0' : ' ';
|
||||||
} else {
|
string[0] = h / 10 ? '0' + h / 10 : ' ';
|
||||||
oled_write_ln_P(PSTR("\n"), false);
|
oled_write_P(PSTR(","), false);
|
||||||
}
|
oled_write(string, false);
|
||||||
#endif
|
uint16_t s = rgblight_get_sat()/RGBLIGHT_SAT_STEP;
|
||||||
|
string[3] = '\0';
|
||||||
|
string[2] = '0' + s % 10;
|
||||||
|
string[1] = ( s /= 10) % 10 ? '0' + (s) % 10 : (s / 10) % 10 ? '0' : ' ';
|
||||||
|
string[0] = s / 10 ? '0' + s / 10 : ' ';
|
||||||
|
oled_write_P(PSTR(","), false);
|
||||||
|
oled_write(string, false);
|
||||||
|
uint16_t v = rgblight_get_val()/RGBLIGHT_VAL_STEP;
|
||||||
|
string[3] = '\0';
|
||||||
|
string[2] = '0' + v % 10;
|
||||||
|
string[1] = ( v /= 10) % 10 ? '0' + (v) % 10 : (v / 10) % 10 ? '0' : ' ';
|
||||||
|
string[0] = v / 10 ? '0' + v / 10 : ' ';
|
||||||
|
oled_write_P(PSTR(","), false);
|
||||||
|
oled_write(string, false);
|
||||||
|
oled_write_ln_P(PSTR("\n MOD HUE SAT VAR"), false);
|
||||||
|
} else {
|
||||||
|
oled_write_ln_P(PSTR("\n"), false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
void oled_task_user(void) {
|
void oled_task_user(void) {
|
||||||
static bool finished_timer = false;
|
static bool finished_timer = false;
|
||||||
|
|||||||
@@ -15,8 +15,7 @@ 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 QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
#include <stdio.h>
|
// clang-format off
|
||||||
|
|
||||||
enum layer_names {
|
enum layer_names {
|
||||||
_HOME,
|
_HOME,
|
||||||
_MISC,
|
_MISC,
|
||||||
@@ -46,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
BL_INC, BL_DEC, TO(0)
|
BL_INC, BL_DEC, TO(0)
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
// clang-format on
|
||||||
|
|
||||||
/* rotary encoder (SW3) - add more else if blocks for more granular layer control */
|
/* rotary encoder (SW3) - add more else if blocks for more granular layer control */
|
||||||
#ifdef ENCODER_ENABLE
|
#ifdef ENCODER_ENABLE
|
||||||
@@ -100,10 +99,10 @@ static void render_logo(void) {
|
|||||||
}
|
}
|
||||||
static void render_logo_font(void) {
|
static void render_logo_font(void) {
|
||||||
static const char PROGMEM qmk_logo[] = {
|
static const char PROGMEM qmk_logo[] = {
|
||||||
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xCB, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9,
|
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4,
|
||||||
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xCB, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9,
|
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4,
|
||||||
0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xCB, 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5,
|
0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0,
|
||||||
0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xCB, 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0x00
|
0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
oled_write_P(qmk_logo, false);
|
oled_write_P(qmk_logo, false);
|
||||||
@@ -133,24 +132,41 @@ static void render_info(void) {
|
|||||||
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
|
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
|
||||||
oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
|
oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
|
||||||
}
|
}
|
||||||
static void render_rgbled_status(bool full) {
|
static void render_rgbled_status(bool) {
|
||||||
#ifdef RGBLIGHT_ENABLE
|
char string[4];
|
||||||
char buf[30];
|
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) {
|
||||||
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) {
|
uint16_t m = rgblight_get_mode();
|
||||||
if (full) {
|
string[3] = '\0';
|
||||||
snprintf(buf, sizeof(buf), "RGB mode %2d: %d,%d,%d \n",
|
string[2] = '0' + m % 10;
|
||||||
rgblight_get_mode(),
|
string[1] = ( m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' ';
|
||||||
rgblight_get_hue()/RGBLIGHT_HUE_STEP,
|
string[0] = m / 10 ? '0' + m / 10 : ' ';
|
||||||
rgblight_get_sat()/RGBLIGHT_SAT_STEP,
|
oled_write_P(PSTR("Conf:"), false);
|
||||||
rgblight_get_val()/RGBLIGHT_VAL_STEP);
|
oled_write(string, false);
|
||||||
} else {
|
uint16_t h = rgblight_get_hue()/RGBLIGHT_HUE_STEP;
|
||||||
snprintf(buf, sizeof(buf), "[%2d] ", rgblight_get_mode());
|
string[3] = '\0';
|
||||||
}
|
string[2] = '0' + h % 10;
|
||||||
oled_write(buf, false);
|
string[1] = ( h /= 10) % 10 ? '0' + (h) % 10 : (h / 10) % 10 ? '0' : ' ';
|
||||||
} else {
|
string[0] = h / 10 ? '0' + h / 10 : ' ';
|
||||||
oled_write_ln_P(PSTR("\n"), false);
|
oled_write_P(PSTR(","), false);
|
||||||
}
|
oled_write(string, false);
|
||||||
#endif
|
uint16_t s = rgblight_get_sat()/RGBLIGHT_SAT_STEP;
|
||||||
|
string[3] = '\0';
|
||||||
|
string[2] = '0' + s % 10;
|
||||||
|
string[1] = ( s /= 10) % 10 ? '0' + (s) % 10 : (s / 10) % 10 ? '0' : ' ';
|
||||||
|
string[0] = s / 10 ? '0' + s / 10 : ' ';
|
||||||
|
oled_write_P(PSTR(","), false);
|
||||||
|
oled_write(string, false);
|
||||||
|
uint16_t v = rgblight_get_val()/RGBLIGHT_VAL_STEP;
|
||||||
|
string[3] = '\0';
|
||||||
|
string[2] = '0' + v % 10;
|
||||||
|
string[1] = ( v /= 10) % 10 ? '0' + (v) % 10 : (v / 10) % 10 ? '0' : ' ';
|
||||||
|
string[0] = v / 10 ? '0' + v / 10 : ' ';
|
||||||
|
oled_write_P(PSTR(","), false);
|
||||||
|
oled_write(string, false);
|
||||||
|
oled_write_ln_P(PSTR("\n MOD HUE SAT VAR"), false);
|
||||||
|
} else {
|
||||||
|
oled_write_ln_P(PSTR("\n"), false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
void oled_task_user(void) {
|
void oled_task_user(void) {
|
||||||
static bool finished_timer = false;
|
static bool finished_timer = false;
|
||||||
|
|||||||
@@ -15,8 +15,7 @@ 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 QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
#include <stdio.h>
|
// clang-format off
|
||||||
|
|
||||||
enum layer_names {
|
enum layer_names {
|
||||||
_HOME,
|
_HOME,
|
||||||
_MISC,
|
_MISC,
|
||||||
@@ -46,7 +45,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
BL_INC, BL_DEC, TO(0)
|
BL_INC, BL_DEC, TO(0)
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
// clang-format on
|
||||||
|
|
||||||
/* rotary encoder (SW3) - add more else if blocks for more granular layer control */
|
/* rotary encoder (SW3) - add more else if blocks for more granular layer control */
|
||||||
#ifdef ENCODER_ENABLE
|
#ifdef ENCODER_ENABLE
|
||||||
@@ -100,10 +99,10 @@ static void render_logo(void) {
|
|||||||
}
|
}
|
||||||
static void render_logo_font(void) {
|
static void render_logo_font(void) {
|
||||||
static const char PROGMEM qmk_logo[] = {
|
static const char PROGMEM qmk_logo[] = {
|
||||||
0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xCB, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9,
|
0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xC0, 0xC1, 0xC2, 0xC3, 0xC4,
|
||||||
0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xCB, 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9,
|
0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xE0, 0xE1, 0xE2, 0xE3, 0xE4,
|
||||||
0xCC, 0xCD, 0xCE, 0xCF, 0xD0, 0xCB, 0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5,
|
0x88, 0x89, 0x8A, 0x8B, 0x8A, 0x8B, 0x8C, 0x8D, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, 0xD0,
|
||||||
0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0xCB, 0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0x00
|
0xA8, 0xA9, 0xAA, 0xAB, 0xAA, 0xAB, 0xAC, 0xAD, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xEC, 0xED, 0xEE, 0xEF, 0xF0, 0x00
|
||||||
};
|
};
|
||||||
|
|
||||||
oled_write_P(qmk_logo, false);
|
oled_write_P(qmk_logo, false);
|
||||||
@@ -133,24 +132,41 @@ static void render_info(void) {
|
|||||||
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
|
oled_write_P(led_state.caps_lock ? PSTR("CAP ") : PSTR(" "), false);
|
||||||
oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
|
oled_write_ln_P(led_state.scroll_lock ? PSTR("SCR ") : PSTR(" "), false);
|
||||||
}
|
}
|
||||||
static void render_rgbled_status(bool full) {
|
static void render_rgbled_status(void) {
|
||||||
#ifdef RGBLIGHT_ENABLE
|
char string[4];
|
||||||
char buf[30];
|
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) {
|
||||||
if (RGBLIGHT_MODES > 1 && rgblight_is_enabled() && get_highest_layer(layer_state) == _RGB) {
|
uint16_t m = rgblight_get_mode();
|
||||||
if (full) {
|
string[3] = '\0';
|
||||||
snprintf(buf, sizeof(buf), "RGB mode %2d: %d,%d,%d \n",
|
string[2] = '0' + m % 10;
|
||||||
rgblight_get_mode(),
|
string[1] = ( m /= 10) % 10 ? '0' + (m) % 10 : (m / 10) % 10 ? '0' : ' ';
|
||||||
rgblight_get_hue()/RGBLIGHT_HUE_STEP,
|
string[0] = m / 10 ? '0' + m / 10 : ' ';
|
||||||
rgblight_get_sat()/RGBLIGHT_SAT_STEP,
|
oled_write_P(PSTR("Conf:"), false);
|
||||||
rgblight_get_val()/RGBLIGHT_VAL_STEP);
|
oled_write(string, false);
|
||||||
} else {
|
uint16_t h = rgblight_get_hue()/RGBLIGHT_HUE_STEP;
|
||||||
snprintf(buf, sizeof(buf), "[%2d] ", rgblight_get_mode());
|
string[3] = '\0';
|
||||||
}
|
string[2] = '0' + h % 10;
|
||||||
oled_write(buf, false);
|
string[1] = ( h /= 10) % 10 ? '0' + (h) % 10 : (h / 10) % 10 ? '0' : ' ';
|
||||||
} else {
|
string[0] = h / 10 ? '0' + h / 10 : ' ';
|
||||||
oled_write_ln_P(PSTR("\n"), false);
|
oled_write_P(PSTR(","), false);
|
||||||
}
|
oled_write(string, false);
|
||||||
#endif
|
uint16_t s = rgblight_get_sat()/RGBLIGHT_SAT_STEP;
|
||||||
|
string[3] = '\0';
|
||||||
|
string[2] = '0' + s % 10;
|
||||||
|
string[1] = ( s /= 10) % 10 ? '0' + (s) % 10 : (s / 10) % 10 ? '0' : ' ';
|
||||||
|
string[0] = s / 10 ? '0' + s / 10 : ' ';
|
||||||
|
oled_write_P(PSTR(","), false);
|
||||||
|
oled_write(string, false);
|
||||||
|
uint16_t v = rgblight_get_val()/RGBLIGHT_VAL_STEP;
|
||||||
|
string[3] = '\0';
|
||||||
|
string[2] = '0' + v % 10;
|
||||||
|
string[1] = ( v /= 10) % 10 ? '0' + (v) % 10 : (v / 10) % 10 ? '0' : ' ';
|
||||||
|
string[0] = v / 10 ? '0' + v / 10 : ' ';
|
||||||
|
oled_write_P(PSTR(","), false);
|
||||||
|
oled_write(string, false);
|
||||||
|
oled_write_ln_P(PSTR("\n MOD HUE SAT VAR"), false);
|
||||||
|
} else {
|
||||||
|
oled_write_ln_P(PSTR("\n"), false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
void oled_task_user(void) {
|
void oled_task_user(void) {
|
||||||
static bool finished_timer = false;
|
static bool finished_timer = false;
|
||||||
@@ -162,7 +178,7 @@ void oled_task_user(void) {
|
|||||||
finished_timer = true;
|
finished_timer = true;
|
||||||
}
|
}
|
||||||
render_info();
|
render_info();
|
||||||
render_rgbled_status(true);
|
render_rgbled_status();
|
||||||
render_logo_font();
|
render_logo_font();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,16 +3,16 @@
|
|||||||
Macro keypad
|
Macro keypad
|
||||||
|
|
||||||
* Keyboard Maintainer: [Conor Burns](https://github.com/conor-burns)
|
* Keyboard Maintainer: [Conor Burns](https://github.com/conor-burns)
|
||||||
* Hardware Supported: https://github.com/conor-burns/0xcb-1337
|
* Hardware Supported: https://github.com/0xcb-dev/0xcb-1337
|
||||||
* Hardware Availability: Soon on tindie or order your own parts - the hardware in the repo is Open Source :D
|
* Hardware Availability: On [tindie](https://www.tindie.com/products/0xcb/0xcb-1337-a-customizable-macro-keyboard-with-qmk/) or order your own parts - the hardware in the repo is Open Source :D
|
||||||
* PCB renders :)
|
* PCB renders :)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
More Pictures [here](https://0xcb.dev/1337/)
|
||||||
To go to bootloader press row 0 col 0 key (top left) while plugging in the board.
|
To go to bootloader press row 0 col 0 key (top left) while plugging in the board. (Or press the reset button on V2.0 and v3.0)
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "40percent.club 4x4",
|
"keyboard_name": "40percent.club 5x5",
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"height": 4,
|
"height": 4,
|
||||||
|
|||||||
@@ -32,3 +32,5 @@ AUDIO_ENABLE = no # Audio output on port C6
|
|||||||
|
|
||||||
# Enable generic behavior for split boards
|
# Enable generic behavior for split boards
|
||||||
SPLIT_KEYBOARD = yes
|
SPLIT_KEYBOARD = yes
|
||||||
|
|
||||||
|
LAYOUTS = ortho_2x3 ortho_2x6
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
"width": 3,
|
"width": 3,
|
||||||
"height": 3,
|
"height": 3,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_ortho_3x3": {
|
||||||
"layout": [
|
"layout": [
|
||||||
{"x":0, "y":0},
|
{"x":0, "y":0},
|
||||||
{"x":1, "y":0},
|
{"x":1, "y":0},
|
||||||
|
|||||||
@@ -40,8 +40,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
// #define MATRIX_ROW_PINS { B0 } // B0 equivalents the ground pin
|
|
||||||
// #define MATRIX_COL_PINS { E6, D7, C6, D4 }
|
|
||||||
#define DIRECT_PINS { \
|
#define DIRECT_PINS { \
|
||||||
{ D4, C6, D7 }, \
|
{ D4, C6, D7 }, \
|
||||||
{ E6, B4, B5 } \
|
{ E6, B4, B5 } \
|
||||||
@@ -56,6 +54,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define BACKLIGHT_LEVELS 6
|
#define BACKLIGHT_LEVELS 6
|
||||||
#define BACKLIGHT_PINS { F4, F5 } // Top Row, Bottom Row
|
#define BACKLIGHT_PINS { F4, F5 } // Top Row, Bottom Row
|
||||||
|
|
||||||
|
/* LED Indicators */
|
||||||
|
#define LED_PIN_ON_STATE 0
|
||||||
|
#define LED_CAPS_LOCK_PIN B0 // RX Led
|
||||||
|
#define LED_NUM_LOCK_PIN D5 // TX Led
|
||||||
|
|
||||||
// #define RGB_DI_PIN B1 // PB1 on expansion connector
|
// #define RGB_DI_PIN B1 // PB1 on expansion connector
|
||||||
// #ifdef RGB_DI_PIN
|
// #ifdef RGB_DI_PIN
|
||||||
// #define RGBLED_NUM 16
|
// #define RGBLED_NUM 16
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "sixpack",
|
"keyboard_name": "Six Pack",
|
||||||
"url": "https://www.40percent.club/2017/05/six-pack-11.html",
|
"url": "https://www.40percent.club/2017/05/six-pack-11.html",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"width": 3,
|
"width": 3,
|
||||||
|
|||||||
@@ -33,9 +33,5 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
KC_TRNS, KC_TRNS, KC_TRNS),
|
KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
[3] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS,
|
[3] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS),
|
KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
[4] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS),
|
|
||||||
[5] = LAYOUT_ortho_2x3(KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS),
|
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -20,3 +20,5 @@ BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
|||||||
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
AUDIO_ENABLE = no # Audio output
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
|
||||||
|
LAYOUTS = ortho_2x3
|
||||||
+16
-27
@@ -1,28 +1,17 @@
|
|||||||
|
/* Copyright 2017 Ryan Mitchell (@newtmitch)
|
||||||
|
*
|
||||||
|
* 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 "acr60.h"
|
#include "acr60.h"
|
||||||
#include "led.h"
|
|
||||||
|
|
||||||
void matrix_init_kb(void) {
|
|
||||||
// Keyboard start-up code goes here
|
|
||||||
// Runs once when the firmware starts up
|
|
||||||
matrix_init_user();
|
|
||||||
led_init_ports();
|
|
||||||
};
|
|
||||||
|
|
||||||
void matrix_scan_kb(void) {
|
|
||||||
// Looping keyboard code goes here
|
|
||||||
// This runs every cycle (a lot)
|
|
||||||
matrix_scan_user();
|
|
||||||
};
|
|
||||||
|
|
||||||
void led_init_ports(void) {
|
|
||||||
// Set caps lock LED pin as output
|
|
||||||
DDRB |= (1 << 2);
|
|
||||||
// Default to off
|
|
||||||
PORTB |= (1 << 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
void led_set_kb(uint8_t usb_led) {
|
|
||||||
// Code for caps lock LED as reported by the OS
|
|
||||||
// Set this per keymap, instead of globally
|
|
||||||
led_set_user(usb_led);
|
|
||||||
}
|
|
||||||
+95
-80
@@ -1,76 +1,93 @@
|
|||||||
#ifndef ARC60_H
|
/* Copyright 2017 Ryan Mitchell (@newtmitch)
|
||||||
#define ARC60_H
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* 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"
|
#include "quantum.h"
|
||||||
|
|
||||||
#define LAYOUT( \
|
#define ___ KC_NO
|
||||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
|
|
||||||
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
|
#define LAYOUT_all( \
|
||||||
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||||
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \
|
K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||||
K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \
|
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
|
||||||
|
K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E \
|
||||||
) { \
|
) { \
|
||||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||||
{ K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
|
{ K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||||
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \
|
{ K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \
|
||||||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
|
||||||
{ K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \
|
{ K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, K4C, K4D, K4E } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||||
|
K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||||
|
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
|
||||||
|
K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||||
|
{ K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||||
|
{ K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \
|
||||||
|
{ K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, K4C, K4D, K4E } \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define LAYOUT_hhkb( \
|
#define LAYOUT_hhkb( \
|
||||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||||
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
|
K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||||
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
|
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
|
||||||
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
|
||||||
K401, K403, K406, K411, K413 \
|
K41, K43, K46, K4B, K4D \
|
||||||
) { \
|
) { \
|
||||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||||
{ K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
|
{ K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||||
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \
|
{ K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \
|
||||||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \
|
||||||
{ KC_NO, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, KC_NO, K411, KC_NO, K413, KC_NO } \
|
{ ___, K41, ___, K43, ___, ___, K46, ___, ___, ___, ___, K4B, ___, K4D, ___ } \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define LAYOUT_true_hhkb( \
|
#define LAYOUT_true_hhkb( \
|
||||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||||
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
|
K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||||
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
|
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
|
||||||
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
|
||||||
K401, K403, K406, K410, K411 \
|
K41, K43, K46, K4A, K4B \
|
||||||
) { \
|
) { \
|
||||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||||
{ K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
|
{ K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||||
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \
|
{ K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \
|
||||||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \
|
||||||
{ KC_NO, K401, KC_NO, K403, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, KC_NO, KC_NO, KC_NO } \
|
{ ___, K41, ___, K43, ___, ___, K46, ___, ___, ___, K4A, K4B, ___, ___, ___ } \
|
||||||
}
|
|
||||||
|
|
||||||
#define LAYOUT_2_shifts( \
|
|
||||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
|
|
||||||
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
|
|
||||||
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
|
|
||||||
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, \
|
|
||||||
K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \
|
|
||||||
) { \
|
|
||||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
|
|
||||||
{ K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
|
|
||||||
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \
|
|
||||||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314 }, \
|
|
||||||
{ K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#define LAYOUT_directional( \
|
#define LAYOUT_directional( \
|
||||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
|
||||||
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
|
K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||||
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
|
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
|
||||||
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, K3D, K3E, \
|
||||||
K400, K401, K403, K404, K406, K408, K410, K411, K412, K413, K414 \
|
K40, K41, K43, K44, K46, K48, K4A, K4B, K4C, K4D, K4E \
|
||||||
) { \
|
) { \
|
||||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
|
||||||
{ K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
|
{ K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||||
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \
|
{ K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \
|
||||||
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, KC_NO, K312, K313, K314 }, \
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, ___, K3C, K3D, K3E }, \
|
||||||
{ K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, K412, K413, K414 } \
|
{ K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, K4C, K4D, K4E } \
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Mitch's keymap, "MitchSplit":
|
/* Mitch's keymap, "MitchSplit":
|
||||||
@@ -78,30 +95,28 @@
|
|||||||
* Split shift is 2.75u + 1.25u + 2.25u (total of 6.25u). Might not work with other orientations.
|
* Split shift is 2.75u + 1.25u + 2.25u (total of 6.25u). Might not work with other orientations.
|
||||||
*/
|
*/
|
||||||
/*
|
/*
|
||||||
* ,-----------------------------------------------------------------------------------------.
|
* ,-----------------------------------------------------------.
|
||||||
* |K000 |K001 |K002 |K003 |K004 |K005 |K006 |K007 |K008 |K009 |K010 |K011 |K012 | K014 |
|
* |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0A |0B |0C |0E |
|
||||||
* |-----------------------------------------------------------------------------------------+
|
* |-----------------------------------------------------------|
|
||||||
* | K100 |K102 |K103 |K104 |K105 |K106 |K107 |K108 |K109 |K110 |K111 |K112 |K113 | K114 |
|
* |10 |12 |13 |14 |15 |16 |17 |18 |19 |1A |1B |1C |1D |1E |
|
||||||
* |-----------------------------------------------------------------------------------------+
|
* |-----------------------------------------------------------|
|
||||||
* | K200 |K202 |K203 |K204 |K205 |K206 |K207 |K208 |K209 |K210 |K211 |K212 | K213 |
|
* |20 |22 |23 |24 |25 |26 |27 |28 |29 |2A |2B |2C |2D |
|
||||||
* |-----------------------------------------------------------------------------------------+
|
* |-----------------------------------------------------------|
|
||||||
* | K300 |K302 |K303 |K304 |K305 |K306 |K307 |K308 |K309 |K310 |K311 | K313 |K314 |
|
* |30 |32 |33 |34 |35 |36 |37 |38 |39 |3A |3B |3D |3E |
|
||||||
* |-----------------------------------------------------------------------------------------+
|
* |-----------------------------------------------------------|
|
||||||
* | K400 | K401 | K403 | K404 | K406 | K408 | K410 | K411 | K413 | K414 |
|
* |40 |41 |43 |44 |46 |48 |4A |4B |4D |4E |
|
||||||
* `-----------------------------------------------------------------------------------------'
|
* `-----------------------------------------------------------'
|
||||||
*/
|
*/
|
||||||
#define LAYOUT_mitchsplit( \
|
#define LAYOUT_mitchsplit( \
|
||||||
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K014, \
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \
|
||||||
K100, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
|
K10, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
|
||||||
K200, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, \
|
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
|
||||||
K300, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K313, K314, \
|
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K3E, \
|
||||||
K400, K401, K403, K404, K406, K408, K410, K411, K413, K414 \
|
K40, K41, K43, K44, K46, K48, K4A, K4B, K4D, K4E \
|
||||||
) { \
|
) { \
|
||||||
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, KC_NO, K014 }, \
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, ___, K0E }, \
|
||||||
{ K100, KC_NO, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
|
{ K10, ___, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
|
||||||
{ K200, KC_NO, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO }, \
|
{ K20, ___, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, ___ }, \
|
||||||
{ K300, KC_NO, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, KC_NO, K313, K314 }, \
|
{ K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, K3E }, \
|
||||||
{ K400, K401, KC_NO, K403, K404, KC_NO, K406, KC_NO, K408, KC_NO, K410, K411, KC_NO, K413, K414 } \
|
{ K40, K41, ___, K43, K44, ___, K46, ___, K48, ___, K4A, K4B, ___, K4D, K4E } \
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -1,5 +1,20 @@
|
|||||||
#ifndef CONFIG_H
|
/* Copyright 2017 Ryan Mitchell (@newtmitch)
|
||||||
#define CONFIG_H
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* 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"
|
#include "config_common.h"
|
||||||
|
|
||||||
@@ -22,6 +37,9 @@
|
|||||||
/* COL2ROW or ROW2COL */
|
/* COL2ROW or ROW2COL */
|
||||||
#define DIODE_DIRECTION COL2ROW
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define LED_CAPS_LOCK_PIN B2
|
||||||
|
#define LED_PIN_ON_STATE 0
|
||||||
|
|
||||||
/* number of backlight levels */
|
/* number of backlight levels */
|
||||||
#define BACKLIGHT_PIN B6
|
#define BACKLIGHT_PIN B6
|
||||||
#define BACKLIGHT_LEVELS 5
|
#define BACKLIGHT_LEVELS 5
|
||||||
@@ -41,5 +59,3 @@
|
|||||||
#define RGBLIGHT_HUE_STEP 8
|
#define RGBLIGHT_HUE_STEP 8
|
||||||
#define RGBLIGHT_SAT_STEP 8
|
#define RGBLIGHT_SAT_STEP 8
|
||||||
#define RGBLIGHT_VAL_STEP 8
|
#define RGBLIGHT_VAL_STEP 8
|
||||||
|
|
||||||
#endif
|
|
||||||
+444
-29
@@ -1,33 +1,448 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "ACR60",
|
"keyboard_name": "ACR60",
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"width": 15,
|
"width": 15,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
"layouts": {
|
"layout_aliases": {
|
||||||
"LAYOUT": {
|
"LAYOUT_2_shifts": "LAYOUT_all"
|
||||||
"key_count": 67,
|
|
||||||
"layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K102", "x":1.5, "y":1}, {"label":"K103", "x":2.5, "y":1}, {"label":"K104", "x":3.5, "y":1}, {"label":"K105", "x":4.5, "y":1}, {"label":"K106", "x":5.5, "y":1}, {"label":"K107", "x":6.5, "y":1}, {"label":"K108", "x":7.5, "y":1}, {"label":"K109", "x":8.5, "y":1}, {"label":"K110", "x":9.5, "y":1}, {"label":"K111", "x":10.5, "y":1}, {"label":"K112", "x":11.5, "y":1}, {"label":"K113", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K202", "x":1.75, "y":2}, {"label":"K203", "x":2.75, "y":2}, {"label":"K204", "x":3.75, "y":2}, {"label":"K205", "x":4.75, "y":2}, {"label":"K206", "x":5.75, "y":2}, {"label":"K207", "x":6.75, "y":2}, {"label":"K208", "x":7.75, "y":2}, {"label":"K209", "x":8.75, "y":2}, {"label":"K210", "x":9.75, "y":2}, {"label":"K211", "x":10.75, "y":2}, {"label":"K212", "x":11.75, "y":2}, {"label":"K213", "x":12.75, "y":2, "w":2.25}, {"label":"K300", "x":0, "y":3, "w":1.25}, {"label":"K301", "x":1.25, "y":3}, {"label":"K302", "x":2.25, "y":3}, {"label":"K303", "x":3.25, "y":3}, {"label":"K304", "x":4.25, "y":3}, {"label":"K305", "x":5.25, "y":3}, {"label":"K306", "x":6.25, "y":3}, {"label":"K307", "x":7.25, "y":3}, {"label":"K308", "x":8.25, "y":3}, {"label":"K309", "x":9.25, "y":3}, {"label":"K310", "x":10.25, "y":3}, {"label":"K311", "x":11.25, "y":3}, {"label":"K313", "x":12.25, "y":3, "w":1.75}, {"label":"K314", "x":14, "y":3}, {"label":"K400", "x":0, "y":4, "w":1.25}, {"label":"K401", "x":1.25, "y":4, "w":1.25}, {"label":"K403", "x":2.5, "y":4, "w":1.25}, {"label":"K404", "x":3.75, "y":4, "w":2.25}, {"label":"K406", "x":6, "y":4, "w":1.25}, {"label":"K408", "x":7.25, "y":4, "w":2.75}, {"label":"K410", "x":10, "y":4}, {"label":"K411", "x":11, "y":4}, {"label":"K412", "x":12, "y":4}, {"label":"K413", "x":13, "y":4}, {"label":"K414", "x":14, "y":4}]
|
|
||||||
},
|
},
|
||||||
"LAYOUT_hhkb": {
|
"layouts": {
|
||||||
"key_count": 61,
|
"LAYOUT_all": {
|
||||||
"layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K102", "x":1.5, "y":1}, {"label":"K103", "x":2.5, "y":1}, {"label":"K104", "x":3.5, "y":1}, {"label":"K105", "x":4.5, "y":1}, {"label":"K106", "x":5.5, "y":1}, {"label":"K107", "x":6.5, "y":1}, {"label":"K108", "x":7.5, "y":1}, {"label":"K109", "x":8.5, "y":1}, {"label":"K110", "x":9.5, "y":1}, {"label":"K111", "x":10.5, "y":1}, {"label":"K112", "x":11.5, "y":1}, {"label":"K113", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K202", "x":1.75, "y":2}, {"label":"K203", "x":2.75, "y":2}, {"label":"K204", "x":3.75, "y":2}, {"label":"K205", "x":4.75, "y":2}, {"label":"K206", "x":5.75, "y":2}, {"label":"K207", "x":6.75, "y":2}, {"label":"K208", "x":7.75, "y":2}, {"label":"K209", "x":8.75, "y":2}, {"label":"K210", "x":9.75, "y":2}, {"label":"K211", "x":10.75, "y":2}, {"label":"K212", "x":11.75, "y":2}, {"label":"K213", "x":12.75, "y":2, "w":2.25}, {"label":"K300", "x":0, "y":3, "w":1.25}, {"label":"K301", "x":1.25, "y":3}, {"label":"K302", "x":2.25, "y":3}, {"label":"K303", "x":3.25, "y":3}, {"label":"K304", "x":4.25, "y":3}, {"label":"K305", "x":5.25, "y":3}, {"label":"K306", "x":6.25, "y":3}, {"label":"K307", "x":7.25, "y":3}, {"label":"K308", "x":8.25, "y":3}, {"label":"K309", "x":9.25, "y":3}, {"label":"K310", "x":10.25, "y":3}, {"label":"K311", "x":11.25, "y":3}, {"label":"K313", "x":12.25, "y":3, "w":1.75}, {"label":"K314", "x":14, "y":3}, {"label":"K401", "x":1.5, "y":4}, {"label":"K403", "x":2.5, "y":4, "w":1.5}, {"label":"K406", "x":4, "y":4, "w":7}, {"label":"K411", "x":11, "y":4, "w":1.5}, {"label":"K413", "x":12.5, "y":4}]
|
"layout": [
|
||||||
},
|
{"label":"K00", "x":0, "y":0},
|
||||||
"LAYOUT_true_hhkb": {
|
{"label":"K01", "x":1, "y":0},
|
||||||
"key_count": 61,
|
{"label":"K02", "x":2, "y":0},
|
||||||
"layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K102", "x":1.5, "y":1}, {"label":"K103", "x":2.5, "y":1}, {"label":"K104", "x":3.5, "y":1}, {"label":"K105", "x":4.5, "y":1}, {"label":"K106", "x":5.5, "y":1}, {"label":"K107", "x":6.5, "y":1}, {"label":"K108", "x":7.5, "y":1}, {"label":"K109", "x":8.5, "y":1}, {"label":"K110", "x":9.5, "y":1}, {"label":"K111", "x":10.5, "y":1}, {"label":"K112", "x":11.5, "y":1}, {"label":"K113", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K202", "x":1.75, "y":2}, {"label":"K203", "x":2.75, "y":2}, {"label":"K204", "x":3.75, "y":2}, {"label":"K205", "x":4.75, "y":2}, {"label":"K206", "x":5.75, "y":2}, {"label":"K207", "x":6.75, "y":2}, {"label":"K208", "x":7.75, "y":2}, {"label":"K209", "x":8.75, "y":2}, {"label":"K210", "x":9.75, "y":2}, {"label":"K211", "x":10.75, "y":2}, {"label":"K212", "x":11.75, "y":2}, {"label":"K213", "x":12.75, "y":2, "w":2.25}, {"label":"K300", "x":0, "y":3, "w":1.25}, {"label":"K301", "x":1.25, "y":3}, {"label":"K302", "x":2.25, "y":3}, {"label":"K303", "x":3.25, "y":3}, {"label":"K304", "x":4.25, "y":3}, {"label":"K305", "x":5.25, "y":3}, {"label":"K306", "x":6.25, "y":3}, {"label":"K307", "x":7.25, "y":3}, {"label":"K308", "x":8.25, "y":3}, {"label":"K309", "x":9.25, "y":3}, {"label":"K310", "x":10.25, "y":3}, {"label":"K311", "x":11.25, "y":3}, {"label":"K313", "x":12.25, "y":3, "w":1.75}, {"label":"K314", "x":14, "y":3}, {"label":"K401", "x":1.5, "y":4}, {"label":"K403", "x":2.5, "y":4, "w":1.5}, {"label":"K406", "x":4, "y":4, "w":6}, {"label":"K410", "x":10, "y":4, "w":1.5}, {"label":"K411", "x":11.5, "y":4}]
|
{"label":"K03", "x":3, "y":0},
|
||||||
},
|
{"label":"K04", "x":4, "y":0},
|
||||||
"LAYOUT_2_shifts": {
|
{"label":"K05", "x":5, "y":0},
|
||||||
"key_count": 68,
|
{"label":"K06", "x":6, "y":0},
|
||||||
"layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K102", "x":1.5, "y":1}, {"label":"K103", "x":2.5, "y":1}, {"label":"K104", "x":3.5, "y":1}, {"label":"K105", "x":4.5, "y":1}, {"label":"K106", "x":5.5, "y":1}, {"label":"K107", "x":6.5, "y":1}, {"label":"K108", "x":7.5, "y":1}, {"label":"K109", "x":8.5, "y":1}, {"label":"K110", "x":9.5, "y":1}, {"label":"K111", "x":10.5, "y":1}, {"label":"K112", "x":11.5, "y":1}, {"label":"K113", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K202", "x":1.75, "y":2}, {"label":"K203", "x":2.75, "y":2}, {"label":"K204", "x":3.75, "y":2}, {"label":"K205", "x":4.75, "y":2}, {"label":"K206", "x":5.75, "y":2}, {"label":"K207", "x":6.75, "y":2}, {"label":"K208", "x":7.75, "y":2}, {"label":"K209", "x":8.75, "y":2}, {"label":"K210", "x":9.75, "y":2}, {"label":"K211", "x":10.75, "y":2}, {"label":"K212", "x":11.75, "y":2}, {"label":"K213", "x":12.75, "y":2, "w":2.25}, {"label":"K300", "x":0, "y":3}, {"label":"K301", "x":1, "y":3}, {"label":"K302", "x":2, "y":3}, {"label":"K303", "x":3, "y":3}, {"label":"K304", "x":4, "y":3}, {"label":"K305", "x":5, "y":3}, {"label":"K306", "x":6, "y":3}, {"label":"K307", "x":7, "y":3}, {"label":"K308", "x":8, "y":3}, {"label":"K309", "x":9, "y":3}, {"label":"K310", "x":10, "y":3}, {"label":"K311", "x":11, "y":3}, {"label":"K312", "x":12, "y":3}, {"label":"K313", "x":13, "y":3}, {"label":"K314", "x":14, "y":3}, {"label":"K400", "x":0, "y":4, "w":1.25}, {"label":"K401", "x":1.25, "y":4, "w":1.25}, {"label":"K403", "x":2.5, "y":4, "w":1.25}, {"label":"K404", "x":3.75, "y":4, "w":2.25}, {"label":"K406", "x":6, "y":4, "w":1.25}, {"label":"K408", "x":7.25, "y":4, "w":2.75}, {"label":"K410", "x":10, "y":4}, {"label":"K411", "x":11, "y":4}, {"label":"K412", "x":12, "y":4}, {"label":"K413", "x":13, "y":4}, {"label":"K414", "x":14, "y":4}]
|
{"label":"K07", "x":7, "y":0},
|
||||||
},
|
{"label":"K08", "x":8, "y":0},
|
||||||
"LAYOUT_directional": {
|
{"label":"K09", "x":9, "y":0},
|
||||||
"key_count": 67,
|
{"label":"K0A", "x":10, "y":0},
|
||||||
"layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K102", "x":1.5, "y":1}, {"label":"K103", "x":2.5, "y":1}, {"label":"K104", "x":3.5, "y":1}, {"label":"K105", "x":4.5, "y":1}, {"label":"K106", "x":5.5, "y":1}, {"label":"K107", "x":6.5, "y":1}, {"label":"K108", "x":7.5, "y":1}, {"label":"K109", "x":8.5, "y":1}, {"label":"K110", "x":9.5, "y":1}, {"label":"K111", "x":10.5, "y":1}, {"label":"K112", "x":11.5, "y":1}, {"label":"K113", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K202", "x":1.75, "y":2}, {"label":"K203", "x":2.75, "y":2}, {"label":"K204", "x":3.75, "y":2}, {"label":"K205", "x":4.75, "y":2}, {"label":"K206", "x":5.75, "y":2}, {"label":"K207", "x":6.75, "y":2}, {"label":"K208", "x":7.75, "y":2}, {"label":"K209", "x":8.75, "y":2}, {"label":"K210", "x":9.75, "y":2}, {"label":"K211", "x":10.75, "y":2}, {"label":"K212", "x":11.75, "y":2}, {"label":"K213", "x":12.75, "y":2, "w":2.25}, {"label":"K300", "x":0, "y":3, "w":1.25}, {"label":"K301", "x":1.25, "y":3}, {"label":"K302", "x":2.25, "y":3}, {"label":"K303", "x":3.25, "y":3}, {"label":"K304", "x":4.25, "y":3}, {"label":"K305", "x":5.25, "y":3}, {"label":"K306", "x":6.25, "y":3}, {"label":"K307", "x":7.25, "y":3}, {"label":"K308", "x":8.25, "y":3}, {"label":"K309", "x":9.25, "y":3}, {"label":"K310", "x":10.25, "y":3}, {"label":"K312", "x":11.25, "y":3, "w":1.75}, {"label":"K313", "x":13, "y":3}, {"label":"K314", "x":14, "y":3}, {"label":"K400", "x":0, "y":4, "w":1.25}, {"label":"K401", "x":1.25, "y":4, "w":1.25}, {"label":"K403", "x":2.5, "y":4, "w":1.25}, {"label":"K404", "x":3.75, "y":4, "w":2.25}, {"label":"K406", "x":6, "y":4, "w":1.25}, {"label":"K408", "x":7.25, "y":4, "w":2.75}, {"label":"K410", "x":10, "y":4}, {"label":"K411", "x":11, "y":4}, {"label":"K412", "x":12, "y":4}, {"label":"K413", "x":13, "y":4}, {"label":"K414", "x":14, "y":4}]
|
{"label":"K0B", "x":11, "y":0},
|
||||||
},
|
{"label":"K0C", "x":12, "y":0},
|
||||||
"LAYOUT_mitchsplit": {
|
{"label":"K0D", "x":13, "y":0},
|
||||||
"key_count": 64,
|
{"label":"K0E", "x":14, "y":0},
|
||||||
"layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K014", "x":13, "y":0, "w":2}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K102", "x":1.5, "y":1}, {"label":"K103", "x":2.5, "y":1}, {"label":"K104", "x":3.5, "y":1}, {"label":"K105", "x":4.5, "y":1}, {"label":"K106", "x":5.5, "y":1}, {"label":"K107", "x":6.5, "y":1}, {"label":"K108", "x":7.5, "y":1}, {"label":"K109", "x":8.5, "y":1}, {"label":"K110", "x":9.5, "y":1}, {"label":"K111", "x":10.5, "y":1}, {"label":"K112", "x":11.5, "y":1}, {"label":"K113", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K202", "x":1.75, "y":2}, {"label":"K203", "x":2.75, "y":2}, {"label":"K204", "x":3.75, "y":2}, {"label":"K205", "x":4.75, "y":2}, {"label":"K206", "x":5.75, "y":2}, {"label":"K207", "x":6.75, "y":2}, {"label":"K208", "x":7.75, "y":2}, {"label":"K209", "x":8.75, "y":2}, {"label":"K210", "x":9.75, "y":2}, {"label":"K211", "x":10.75, "y":2}, {"label":"K212", "x":11.75, "y":2}, {"label":"K213", "x":12.75, "y":2, "w":2.25}, {"label":"K300", "x":0, "y":3, "w":2.25}, {"label":"K302", "x":2.25, "y":3}, {"label":"K303", "x":3.25, "y":3}, {"label":"K304", "x":4.25, "y":3}, {"label":"K305", "x":5.25, "y":3}, {"label":"K306", "x":6.25, "y":3}, {"label":"K307", "x":7.25, "y":3}, {"label":"K308", "x":8.25, "y":3}, {"label":"K309", "x":9.25, "y":3}, {"label":"K310", "x":10.25, "y":3}, {"label":"K311", "x":11.25, "y":3}, {"label":"K313", "x":12.25, "y":3, "w":1.75}, {"label":"K314", "x":14, "y":3}, {"label":"K400", "x":0, "y":4, "w":1.25}, {"label":"K401", "x":1.25, "y":4, "w":1.25}, {"label":"K403", "x":2.5, "y":4, "w":1.25}, {"label":"K404", "x":3.75, "y":4, "w":2.75}, {"label":"K406", "x":6.5, "y":4, "w":1.25}, {"label":"K408", "x":7.75, "y":4, "w":2.25}, {"label":"K410", "x":10, "y":4, "w":1.25}, {"label":"K411", "x":11.25, "y":4, "w":1.25}, {"label":"K413", "x":12.5, "y":4, "w":1.25}, {"label":"K414", "x":13.75, "y":4, "w":1.25}]
|
|
||||||
|
{"label":"K10", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"K12", "x":1.5, "y":1},
|
||||||
|
{"label":"K13", "x":2.5, "y":1},
|
||||||
|
{"label":"K14", "x":3.5, "y":1},
|
||||||
|
{"label":"K15", "x":4.5, "y":1},
|
||||||
|
{"label":"K16", "x":5.5, "y":1},
|
||||||
|
{"label":"K17", "x":6.5, "y":1},
|
||||||
|
{"label":"K18", "x":7.5, "y":1},
|
||||||
|
{"label":"K19", "x":8.5, "y":1},
|
||||||
|
{"label":"K1A", "x":9.5, "y":1},
|
||||||
|
{"label":"K1B", "x":10.5, "y":1},
|
||||||
|
{"label":"K1C", "x":11.5, "y":1},
|
||||||
|
{"label":"K1D", "x":12.5, "y":1},
|
||||||
|
{"label":"K1E", "x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"label":"K20", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"K22", "x":1.75, "y":2},
|
||||||
|
{"label":"K23", "x":2.75, "y":2},
|
||||||
|
{"label":"K24", "x":3.75, "y":2},
|
||||||
|
{"label":"K25", "x":4.75, "y":2},
|
||||||
|
{"label":"K26", "x":5.75, "y":2},
|
||||||
|
{"label":"K27", "x":6.75, "y":2},
|
||||||
|
{"label":"K28", "x":7.75, "y":2},
|
||||||
|
{"label":"K29", "x":8.75, "y":2},
|
||||||
|
{"label":"K2A", "x":9.75, "y":2},
|
||||||
|
{"label":"K2B", "x":10.75, "y":2},
|
||||||
|
{"label":"K2C", "x":11.75, "y":2},
|
||||||
|
{"label":"K2D", "x":12.75, "y":2, "w":2.25},
|
||||||
|
|
||||||
|
{"label":"K30", "x":0, "y":3},
|
||||||
|
{"label":"K31", "x":1, "y":3},
|
||||||
|
{"label":"K32", "x":2, "y":3},
|
||||||
|
{"label":"K33", "x":3, "y":3},
|
||||||
|
{"label":"K34", "x":4, "y":3},
|
||||||
|
{"label":"K35", "x":5, "y":3},
|
||||||
|
{"label":"K36", "x":6, "y":3},
|
||||||
|
{"label":"K37", "x":7, "y":3},
|
||||||
|
{"label":"K38", "x":8, "y":3},
|
||||||
|
{"label":"K39", "x":9, "y":3},
|
||||||
|
{"label":"K3A", "x":10, "y":3},
|
||||||
|
{"label":"K3B", "x":11, "y":3},
|
||||||
|
{"label":"K3C", "x":12, "y":3},
|
||||||
|
{"label":"K3D", "x":13, "y":3},
|
||||||
|
{"label":"K3E", "x":14, "y":3},
|
||||||
|
|
||||||
|
{"label":"K40", "x":0, "y":4, "w":1.25},
|
||||||
|
{"label":"K41", "x":1.25, "y":4, "w":1.25},
|
||||||
|
{"label":"K43", "x":2.5, "y":4, "w":1.25},
|
||||||
|
{"label":"K44", "x":3.75, "y":4, "w":2.25},
|
||||||
|
{"label":"K46", "x":6, "y":4, "w":1.25},
|
||||||
|
{"label":"K48", "x":7.25, "y":4, "w":2.75},
|
||||||
|
{"label":"K4A", "x":10, "y":4},
|
||||||
|
{"label":"K4B", "x":11, "y":4},
|
||||||
|
{"label":"K4C", "x":12, "y":4},
|
||||||
|
{"label":"K4D", "x":13, "y":4},
|
||||||
|
{"label":"K4E", "x":14, "y":4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"K00", "x":0, "y":0},
|
||||||
|
{"label":"K01", "x":1, "y":0},
|
||||||
|
{"label":"K02", "x":2, "y":0},
|
||||||
|
{"label":"K03", "x":3, "y":0},
|
||||||
|
{"label":"K04", "x":4, "y":0},
|
||||||
|
{"label":"K05", "x":5, "y":0},
|
||||||
|
{"label":"K06", "x":6, "y":0},
|
||||||
|
{"label":"K07", "x":7, "y":0},
|
||||||
|
{"label":"K08", "x":8, "y":0},
|
||||||
|
{"label":"K09", "x":9, "y":0},
|
||||||
|
{"label":"K0A", "x":10, "y":0},
|
||||||
|
{"label":"K0B", "x":11, "y":0},
|
||||||
|
{"label":"K0C", "x":12, "y":0},
|
||||||
|
{"label":"K0D", "x":13, "y":0},
|
||||||
|
{"label":"K0E", "x":14, "y":0},
|
||||||
|
|
||||||
|
{"label":"K10", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"K12", "x":1.5, "y":1},
|
||||||
|
{"label":"K13", "x":2.5, "y":1},
|
||||||
|
{"label":"K14", "x":3.5, "y":1},
|
||||||
|
{"label":"K15", "x":4.5, "y":1},
|
||||||
|
{"label":"K16", "x":5.5, "y":1},
|
||||||
|
{"label":"K17", "x":6.5, "y":1},
|
||||||
|
{"label":"K18", "x":7.5, "y":1},
|
||||||
|
{"label":"K19", "x":8.5, "y":1},
|
||||||
|
{"label":"K1A", "x":9.5, "y":1},
|
||||||
|
{"label":"K1B", "x":10.5, "y":1},
|
||||||
|
{"label":"K1C", "x":11.5, "y":1},
|
||||||
|
{"label":"K1D", "x":12.5, "y":1},
|
||||||
|
{"label":"K1E", "x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"label":"K20", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"K22", "x":1.75, "y":2},
|
||||||
|
{"label":"K23", "x":2.75, "y":2},
|
||||||
|
{"label":"K24", "x":3.75, "y":2},
|
||||||
|
{"label":"K25", "x":4.75, "y":2},
|
||||||
|
{"label":"K26", "x":5.75, "y":2},
|
||||||
|
{"label":"K27", "x":6.75, "y":2},
|
||||||
|
{"label":"K28", "x":7.75, "y":2},
|
||||||
|
{"label":"K29", "x":8.75, "y":2},
|
||||||
|
{"label":"K2A", "x":9.75, "y":2},
|
||||||
|
{"label":"K2B", "x":10.75, "y":2},
|
||||||
|
{"label":"K2C", "x":11.75, "y":2},
|
||||||
|
{"label":"K2D", "x":12.75, "y":2, "w":2.25},
|
||||||
|
|
||||||
|
{"label":"K30", "x":0, "y":3, "w":1.25},
|
||||||
|
{"label":"K31", "x":1.25, "y":3},
|
||||||
|
{"label":"K32", "x":2.25, "y":3},
|
||||||
|
{"label":"K33", "x":3.25, "y":3},
|
||||||
|
{"label":"K34", "x":4.25, "y":3},
|
||||||
|
{"label":"K35", "x":5.25, "y":3},
|
||||||
|
{"label":"K36", "x":6.25, "y":3},
|
||||||
|
{"label":"K37", "x":7.25, "y":3},
|
||||||
|
{"label":"K38", "x":8.25, "y":3},
|
||||||
|
{"label":"K39", "x":9.25, "y":3},
|
||||||
|
{"label":"K3A", "x":10.25, "y":3},
|
||||||
|
{"label":"K3B", "x":11.25, "y":3},
|
||||||
|
{"label":"K3D", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"K3E", "x":14, "y":3},
|
||||||
|
|
||||||
|
{"label":"K40", "x":0, "y":4, "w":1.25},
|
||||||
|
{"label":"K41", "x":1.25, "y":4, "w":1.25},
|
||||||
|
{"label":"K43", "x":2.5, "y":4, "w":1.25},
|
||||||
|
{"label":"K44", "x":3.75, "y":4, "w":2.25},
|
||||||
|
{"label":"K46", "x":6, "y":4, "w":1.25},
|
||||||
|
{"label":"K48", "x":7.25, "y":4, "w":2.75},
|
||||||
|
{"label":"K4A", "x":10, "y":4},
|
||||||
|
{"label":"K4B", "x":11, "y":4},
|
||||||
|
{"label":"K4C", "x":12, "y":4},
|
||||||
|
{"label":"K4D", "x":13, "y":4},
|
||||||
|
{"label":"K4E", "x":14, "y":4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_hhkb": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"K00", "x":0, "y":0},
|
||||||
|
{"label":"K01", "x":1, "y":0},
|
||||||
|
{"label":"K02", "x":2, "y":0},
|
||||||
|
{"label":"K03", "x":3, "y":0},
|
||||||
|
{"label":"K04", "x":4, "y":0},
|
||||||
|
{"label":"K05", "x":5, "y":0},
|
||||||
|
{"label":"K06", "x":6, "y":0},
|
||||||
|
{"label":"K07", "x":7, "y":0},
|
||||||
|
{"label":"K08", "x":8, "y":0},
|
||||||
|
{"label":"K09", "x":9, "y":0},
|
||||||
|
{"label":"K0A", "x":10, "y":0},
|
||||||
|
{"label":"K0B", "x":11, "y":0},
|
||||||
|
{"label":"K0C", "x":12, "y":0},
|
||||||
|
{"label":"K0D", "x":13, "y":0},
|
||||||
|
{"label":"K0E", "x":14, "y":0},
|
||||||
|
|
||||||
|
{"label":"K10", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"K12", "x":1.5, "y":1},
|
||||||
|
{"label":"K13", "x":2.5, "y":1},
|
||||||
|
{"label":"K14", "x":3.5, "y":1},
|
||||||
|
{"label":"K15", "x":4.5, "y":1},
|
||||||
|
{"label":"K16", "x":5.5, "y":1},
|
||||||
|
{"label":"K17", "x":6.5, "y":1},
|
||||||
|
{"label":"K18", "x":7.5, "y":1},
|
||||||
|
{"label":"K19", "x":8.5, "y":1},
|
||||||
|
{"label":"K1A", "x":9.5, "y":1},
|
||||||
|
{"label":"K1B", "x":10.5, "y":1},
|
||||||
|
{"label":"K1C", "x":11.5, "y":1},
|
||||||
|
{"label":"K1D", "x":12.5, "y":1},
|
||||||
|
{"label":"K1E", "x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"label":"K20", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"K22", "x":1.75, "y":2},
|
||||||
|
{"label":"K23", "x":2.75, "y":2},
|
||||||
|
{"label":"K24", "x":3.75, "y":2},
|
||||||
|
{"label":"K25", "x":4.75, "y":2},
|
||||||
|
{"label":"K26", "x":5.75, "y":2},
|
||||||
|
{"label":"K27", "x":6.75, "y":2},
|
||||||
|
{"label":"K28", "x":7.75, "y":2},
|
||||||
|
{"label":"K29", "x":8.75, "y":2},
|
||||||
|
{"label":"K2A", "x":9.75, "y":2},
|
||||||
|
{"label":"K2B", "x":10.75, "y":2},
|
||||||
|
{"label":"K2C", "x":11.75, "y":2},
|
||||||
|
{"label":"K2D", "x":12.75, "y":2, "w":2.25},
|
||||||
|
|
||||||
|
{"label":"K30", "x":0, "y":3, "w":1.25},
|
||||||
|
{"label":"K31", "x":1.25, "y":3},
|
||||||
|
{"label":"K32", "x":2.25, "y":3},
|
||||||
|
{"label":"K33", "x":3.25, "y":3},
|
||||||
|
{"label":"K34", "x":4.25, "y":3},
|
||||||
|
{"label":"K35", "x":5.25, "y":3},
|
||||||
|
{"label":"K36", "x":6.25, "y":3},
|
||||||
|
{"label":"K37", "x":7.25, "y":3},
|
||||||
|
{"label":"K38", "x":8.25, "y":3},
|
||||||
|
{"label":"K39", "x":9.25, "y":3},
|
||||||
|
{"label":"K3A", "x":10.25, "y":3},
|
||||||
|
{"label":"K3B", "x":11.25, "y":3},
|
||||||
|
{"label":"K3D", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"K3E", "x":14, "y":3},
|
||||||
|
|
||||||
|
{"label":"K41", "x":1.5, "y":4},
|
||||||
|
{"label":"K43", "x":2.5, "y":4, "w":1.5},
|
||||||
|
{"label":"K46", "x":4, "y":4, "w":7},
|
||||||
|
{"label":"K4B", "x":11, "y":4, "w":1.5},
|
||||||
|
{"label":"K4D", "x":12.5, "y":4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_true_hhkb": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"K00", "x":0, "y":0},
|
||||||
|
{"label":"K01", "x":1, "y":0},
|
||||||
|
{"label":"K02", "x":2, "y":0},
|
||||||
|
{"label":"K03", "x":3, "y":0},
|
||||||
|
{"label":"K04", "x":4, "y":0},
|
||||||
|
{"label":"K05", "x":5, "y":0},
|
||||||
|
{"label":"K06", "x":6, "y":0},
|
||||||
|
{"label":"K07", "x":7, "y":0},
|
||||||
|
{"label":"K08", "x":8, "y":0},
|
||||||
|
{"label":"K09", "x":9, "y":0},
|
||||||
|
{"label":"K0A", "x":10, "y":0},
|
||||||
|
{"label":"K0B", "x":11, "y":0},
|
||||||
|
{"label":"K0C", "x":12, "y":0},
|
||||||
|
{"label":"K0D", "x":13, "y":0},
|
||||||
|
{"label":"K0E", "x":14, "y":0},
|
||||||
|
|
||||||
|
{"label":"K10", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"K12", "x":1.5, "y":1},
|
||||||
|
{"label":"K13", "x":2.5, "y":1},
|
||||||
|
{"label":"K14", "x":3.5, "y":1},
|
||||||
|
{"label":"K15", "x":4.5, "y":1},
|
||||||
|
{"label":"K16", "x":5.5, "y":1},
|
||||||
|
{"label":"K17", "x":6.5, "y":1},
|
||||||
|
{"label":"K18", "x":7.5, "y":1},
|
||||||
|
{"label":"K19", "x":8.5, "y":1},
|
||||||
|
{"label":"K1A", "x":9.5, "y":1},
|
||||||
|
{"label":"K1B", "x":10.5, "y":1},
|
||||||
|
{"label":"K1C", "x":11.5, "y":1},
|
||||||
|
{"label":"K1D", "x":12.5, "y":1},
|
||||||
|
{"label":"K1E", "x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"label":"K20", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"K22", "x":1.75, "y":2},
|
||||||
|
{"label":"K23", "x":2.75, "y":2},
|
||||||
|
{"label":"K24", "x":3.75, "y":2},
|
||||||
|
{"label":"K25", "x":4.75, "y":2},
|
||||||
|
{"label":"K26", "x":5.75, "y":2},
|
||||||
|
{"label":"K27", "x":6.75, "y":2},
|
||||||
|
{"label":"K28", "x":7.75, "y":2},
|
||||||
|
{"label":"K29", "x":8.75, "y":2},
|
||||||
|
{"label":"K2A", "x":9.75, "y":2},
|
||||||
|
{"label":"K2B", "x":10.75, "y":2},
|
||||||
|
{"label":"K2C", "x":11.75, "y":2},
|
||||||
|
{"label":"K2D", "x":12.75, "y":2, "w":2.25},
|
||||||
|
|
||||||
|
{"label":"K30", "x":0, "y":3, "w":1.25},
|
||||||
|
{"label":"K31", "x":1.25, "y":3},
|
||||||
|
{"label":"K32", "x":2.25, "y":3},
|
||||||
|
{"label":"K33", "x":3.25, "y":3},
|
||||||
|
{"label":"K34", "x":4.25, "y":3},
|
||||||
|
{"label":"K35", "x":5.25, "y":3},
|
||||||
|
{"label":"K36", "x":6.25, "y":3},
|
||||||
|
{"label":"K37", "x":7.25, "y":3},
|
||||||
|
{"label":"K38", "x":8.25, "y":3},
|
||||||
|
{"label":"K39", "x":9.25, "y":3},
|
||||||
|
{"label":"K3A", "x":10.25, "y":3},
|
||||||
|
{"label":"K3B", "x":11.25, "y":3},
|
||||||
|
{"label":"K3D", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"K3E", "x":14, "y":3},
|
||||||
|
|
||||||
|
{"label":"K41", "x":1.5, "y":4},
|
||||||
|
{"label":"K43", "x":2.5, "y":4, "w":1.5},
|
||||||
|
{"label":"K46", "x":4, "y":4, "w":6},
|
||||||
|
{"label":"K4A", "x":10, "y":4, "w":1.5},
|
||||||
|
{"label":"K4B", "x":11.5, "y":4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_directional": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"K00", "x":0, "y":0},
|
||||||
|
{"label":"K01", "x":1, "y":0},
|
||||||
|
{"label":"K02", "x":2, "y":0},
|
||||||
|
{"label":"K03", "x":3, "y":0},
|
||||||
|
{"label":"K04", "x":4, "y":0},
|
||||||
|
{"label":"K05", "x":5, "y":0},
|
||||||
|
{"label":"K06", "x":6, "y":0},
|
||||||
|
{"label":"K07", "x":7, "y":0},
|
||||||
|
{"label":"K08", "x":8, "y":0},
|
||||||
|
{"label":"K09", "x":9, "y":0},
|
||||||
|
{"label":"K0A", "x":10, "y":0},
|
||||||
|
{"label":"K0B", "x":11, "y":0},
|
||||||
|
{"label":"K0C", "x":12, "y":0},
|
||||||
|
{"label":"K0D", "x":13, "y":0},
|
||||||
|
{"label":"K0E", "x":14, "y":0},
|
||||||
|
|
||||||
|
{"label":"K10", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"K12", "x":1.5, "y":1},
|
||||||
|
{"label":"K13", "x":2.5, "y":1},
|
||||||
|
{"label":"K14", "x":3.5, "y":1},
|
||||||
|
{"label":"K15", "x":4.5, "y":1},
|
||||||
|
{"label":"K16", "x":5.5, "y":1},
|
||||||
|
{"label":"K17", "x":6.5, "y":1},
|
||||||
|
{"label":"K18", "x":7.5, "y":1},
|
||||||
|
{"label":"K19", "x":8.5, "y":1},
|
||||||
|
{"label":"K1A", "x":9.5, "y":1},
|
||||||
|
{"label":"K1B", "x":10.5, "y":1},
|
||||||
|
{"label":"K1C", "x":11.5, "y":1},
|
||||||
|
{"label":"K1D", "x":12.5, "y":1},
|
||||||
|
{"label":"K1E", "x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"label":"K20", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"K22", "x":1.75, "y":2},
|
||||||
|
{"label":"K23", "x":2.75, "y":2},
|
||||||
|
{"label":"K24", "x":3.75, "y":2},
|
||||||
|
{"label":"K25", "x":4.75, "y":2},
|
||||||
|
{"label":"K26", "x":5.75, "y":2},
|
||||||
|
{"label":"K27", "x":6.75, "y":2},
|
||||||
|
{"label":"K28", "x":7.75, "y":2},
|
||||||
|
{"label":"K29", "x":8.75, "y":2},
|
||||||
|
{"label":"K2A", "x":9.75, "y":2},
|
||||||
|
{"label":"K2B", "x":10.75, "y":2},
|
||||||
|
{"label":"K2C", "x":11.75, "y":2},
|
||||||
|
{"label":"K2D", "x":12.75, "y":2, "w":2.25},
|
||||||
|
|
||||||
|
{"label":"K30", "x":0, "y":3, "w":1.25},
|
||||||
|
{"label":"K31", "x":1.25, "y":3},
|
||||||
|
{"label":"K32", "x":2.25, "y":3},
|
||||||
|
{"label":"K33", "x":3.25, "y":3},
|
||||||
|
{"label":"K34", "x":4.25, "y":3},
|
||||||
|
{"label":"K35", "x":5.25, "y":3},
|
||||||
|
{"label":"K36", "x":6.25, "y":3},
|
||||||
|
{"label":"K37", "x":7.25, "y":3},
|
||||||
|
{"label":"K38", "x":8.25, "y":3},
|
||||||
|
{"label":"K39", "x":9.25, "y":3},
|
||||||
|
{"label":"K3A", "x":10.25, "y":3},
|
||||||
|
{"label":"K3C", "x":11.25, "y":3, "w":1.75},
|
||||||
|
{"label":"K3D", "x":13, "y":3},
|
||||||
|
{"label":"K3E", "x":14, "y":3},
|
||||||
|
|
||||||
|
{"label":"K40", "x":0, "y":4, "w":1.25},
|
||||||
|
{"label":"K41", "x":1.25, "y":4, "w":1.25},
|
||||||
|
{"label":"K43", "x":2.5, "y":4, "w":1.25},
|
||||||
|
{"label":"K44", "x":3.75, "y":4, "w":2.25},
|
||||||
|
{"label":"K46", "x":6, "y":4, "w":1.25},
|
||||||
|
{"label":"K48", "x":7.25, "y":4, "w":2.75},
|
||||||
|
{"label":"K4A", "x":10, "y":4},
|
||||||
|
{"label":"K4B", "x":11, "y":4},
|
||||||
|
{"label":"K4C", "x":12, "y":4},
|
||||||
|
{"label":"K4D", "x":13, "y":4},
|
||||||
|
{"label":"K4E", "x":14, "y":4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_mitchsplit": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"K00", "x":0, "y":0},
|
||||||
|
{"label":"K01", "x":1, "y":0},
|
||||||
|
{"label":"K02", "x":2, "y":0},
|
||||||
|
{"label":"K03", "x":3, "y":0},
|
||||||
|
{"label":"K04", "x":4, "y":0},
|
||||||
|
{"label":"K05", "x":5, "y":0},
|
||||||
|
{"label":"K06", "x":6, "y":0},
|
||||||
|
{"label":"K07", "x":7, "y":0},
|
||||||
|
{"label":"K08", "x":8, "y":0},
|
||||||
|
{"label":"K09", "x":9, "y":0},
|
||||||
|
{"label":"K0A", "x":10, "y":0},
|
||||||
|
{"label":"K0B", "x":11, "y":0},
|
||||||
|
{"label":"K0C", "x":12, "y":0},
|
||||||
|
{"label":"K0E", "x":13, "y":0, "w":2},
|
||||||
|
|
||||||
|
{"label":"K10", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"K12", "x":1.5, "y":1},
|
||||||
|
{"label":"K13", "x":2.5, "y":1},
|
||||||
|
{"label":"K14", "x":3.5, "y":1},
|
||||||
|
{"label":"K15", "x":4.5, "y":1},
|
||||||
|
{"label":"K16", "x":5.5, "y":1},
|
||||||
|
{"label":"K17", "x":6.5, "y":1},
|
||||||
|
{"label":"K18", "x":7.5, "y":1},
|
||||||
|
{"label":"K19", "x":8.5, "y":1},
|
||||||
|
{"label":"K1A", "x":9.5, "y":1},
|
||||||
|
{"label":"K1B", "x":10.5, "y":1},
|
||||||
|
{"label":"K1C", "x":11.5, "y":1},
|
||||||
|
{"label":"K1D", "x":12.5, "y":1},
|
||||||
|
{"label":"K1E", "x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"label":"K20", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"K22", "x":1.75, "y":2},
|
||||||
|
{"label":"K23", "x":2.75, "y":2},
|
||||||
|
{"label":"K24", "x":3.75, "y":2},
|
||||||
|
{"label":"K25", "x":4.75, "y":2},
|
||||||
|
{"label":"K26", "x":5.75, "y":2},
|
||||||
|
{"label":"K27", "x":6.75, "y":2},
|
||||||
|
{"label":"K28", "x":7.75, "y":2},
|
||||||
|
{"label":"K29", "x":8.75, "y":2},
|
||||||
|
{"label":"K2A", "x":9.75, "y":2},
|
||||||
|
{"label":"K2B", "x":10.75, "y":2},
|
||||||
|
{"label":"K2C", "x":11.75, "y":2},
|
||||||
|
{"label":"K2D", "x":12.75, "y":2, "w":2.25},
|
||||||
|
|
||||||
|
{"label":"K30", "x":0, "y":3, "w":2.25},
|
||||||
|
{"label":"K32", "x":2.25, "y":3},
|
||||||
|
{"label":"K33", "x":3.25, "y":3},
|
||||||
|
{"label":"K34", "x":4.25, "y":3},
|
||||||
|
{"label":"K35", "x":5.25, "y":3},
|
||||||
|
{"label":"K36", "x":6.25, "y":3},
|
||||||
|
{"label":"K37", "x":7.25, "y":3},
|
||||||
|
{"label":"K38", "x":8.25, "y":3},
|
||||||
|
{"label":"K39", "x":9.25, "y":3},
|
||||||
|
{"label":"K3A", "x":10.25, "y":3},
|
||||||
|
{"label":"K3B", "x":11.25, "y":3},
|
||||||
|
{"label":"K3D", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"K3E", "x":14, "y":3},
|
||||||
|
|
||||||
|
{"label":"K40", "x":0, "y":4, "w":1.25},
|
||||||
|
{"label":"K41", "x":1.25, "y":4, "w":1.25},
|
||||||
|
{"label":"K43", "x":2.5, "y":4, "w":1.25},
|
||||||
|
{"label":"K44", "x":3.75, "y":4, "w":2.75},
|
||||||
|
{"label":"K46", "x":6.5, "y":4, "w":1.25},
|
||||||
|
{"label":"K48", "x":7.75, "y":4, "w":2.25},
|
||||||
|
{"label":"K4A", "x":10, "y":4, "w":1.25},
|
||||||
|
{"label":"K4B", "x":11.25, "y":4, "w":1.25},
|
||||||
|
{"label":"K4D", "x":12.5, "y":4, "w":1.25},
|
||||||
|
{"label":"K4E", "x":13.75, "y":4, "w":1.25}
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -1,67 +1,38 @@
|
|||||||
|
/* Copyright 2017 Ryan Mitchell (@newtmitch)
|
||||||
|
* 2021 James Young for QMK (@noroadsleft)
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
#define MODS_SHIFT_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT))
|
|
||||||
|
|
||||||
enum custom_keycodes {
|
|
||||||
SFT_ESC = SAFE_RANGE
|
|
||||||
};
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/*
|
[0] = LAYOUT_all(
|
||||||
* Default keymap with standard 60% layout. Split space possible but entirely optional with this layout, as this
|
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, XXXXXXX, KC_BSPC,
|
||||||
* layout covers all three split space keys as space keycodes. This also has alt right next to the space bar
|
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,
|
||||||
* on both sides (Windows keyboard layout), no right-side system/GUI key, and momentary layer switching on
|
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,
|
||||||
* the right modifiers into the 3rd (macro) and 2nd (function/sfx) layers, respectively. This also has the grave
|
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(1),
|
||||||
* accent key set up on the 2nd layer, although on the first layer it includes grave key (tilde) when shift is held down,
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
* via the function actions code at the bottom.
|
),
|
||||||
*/
|
|
||||||
LAYOUT(
|
|
||||||
SFT_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_NO, KC_BSPC,
|
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
|
||||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
|
||||||
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_NO,
|
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(2), KC_NO, MO(1), KC_RCTL),
|
|
||||||
|
|
||||||
LAYOUT(
|
[1] = LAYOUT_all(
|
||||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_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_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,
|
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_TOGG, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
_______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, _______,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
LAYOUT(
|
|
||||||
KC_TRNS, M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8), M(9), M(10), M(11), M(12), KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
|
||||||
switch (keycode) {
|
|
||||||
case SFT_ESC:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
if (get_mods() & MODS_SHIFT_MASK) {
|
|
||||||
add_key(KC_GRV);
|
|
||||||
send_keyboard_report();
|
|
||||||
} else {
|
|
||||||
add_key(KC_ESC);
|
|
||||||
send_keyboard_report();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (get_mods() & MODS_SHIFT_MASK) {
|
|
||||||
del_key(KC_GRV);
|
|
||||||
send_keyboard_report();
|
|
||||||
} else {
|
|
||||||
del_key(KC_ESC);
|
|
||||||
send_keyboard_report();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
|
|
||||||
default:
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,18 +1,24 @@
|
|||||||
ACR60
|
# ACR60
|
||||||
=====
|
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
A customizable 60% keyboard made and sold by mechkeys.ca [More info on MECHKEYS](https://mechkeys.ca)
|
A customizable 60% keyboard made and sold by mechkeys.ca [More info on MECHKEYS](https://mechkeys.ca)
|
||||||
|
|
||||||
Keyboard Maintainer: [TurboMech](https://github.com/TurboMech)
|
* Keyboard Maintainer: [TurboMech](https://github.com/TurboMech)
|
||||||
|
* Hardware Supported: ACR60
|
||||||
Hardware Supported: ACR60
|
* Hardware Availability: [~~MECHKEYS~~](https://mechkeys.ca/products/acr60) (no longer available)
|
||||||
|
|
||||||
Hardware Availability: [MECHKEYS](https://mechkeys.ca/products/acr60)
|
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
make acr60:default
|
make acr60:default
|
||||||
|
|
||||||
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information.
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make acr60:default:flash
|
||||||
|
|
||||||
|
To reset the board into bootloader mode, do one of the following:
|
||||||
|
|
||||||
|
* Tap the Reset switch mounted on the bottom side of the PCB
|
||||||
|
* Hold Space+B while connecting the USB cable
|
||||||
|
|
||||||
|
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).`
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
/* key matrix pins */
|
/* key matrix pins */
|
||||||
#define MATRIX_ROW_PINS { B15, A14, A2, B13, B14 }
|
#define MATRIX_ROW_PINS { B15, A14, A2, B13, B14 }
|
||||||
#define MATRIX_COL_PINS { B12, H0, C15, C14, B11, B10, B2, B1, B0, A7, A6, A5, A4, A3 }
|
#define MATRIX_COL_PINS { B12, A1, H0, C15, C14, B11, B10, B2, B1, B0, A7, A6, A5, A4, A3 }
|
||||||
#define UNUSED_PINS
|
#define UNUSED_PINS
|
||||||
|
|
||||||
/* COL2ROW or ROW2COL */
|
/* COL2ROW or ROW2COL */
|
||||||
|
|||||||
@@ -2,14 +2,71 @@
|
|||||||
"keyboard_name": "allison_numpad",
|
"keyboard_name": "allison_numpad",
|
||||||
"url": "www.yiancar-designs.com",
|
"url": "www.yiancar-designs.com",
|
||||||
"maintainer": "Yiancar",
|
"maintainer": "Yiancar",
|
||||||
"width": 4,
|
"width": 4,
|
||||||
"height": 6.25,
|
"height": 6.25,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT_ortho_6x4": {
|
"LAYOUT_ortho_6x4": {
|
||||||
"layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"1,0", "x":0, "y":1.25}, {"label":"1,1", "x":1, "y":1.25}, {"label":"1,2", "x":2, "y":1.25}, {"label":"1,3", "x":3, "y":1.25}, {"label":"2,0", "x":0, "y":2.25}, {"label":"2,1", "x":1, "y":2.25}, {"label":"2,2", "x":2, "y":2.25}, {"label":"2,3", "x":3, "y":2.25}, {"label":"3,0", "x":0, "y":3.25}, {"label":"3,1", "x":1, "y":3.25}, {"label":"3,2", "x":2, "y":3.25}, {"label":"3,3", "x":3, "y":3.25}, {"label":"4,0", "x":0, "y":4.25}, {"label":"4,1", "x":1, "y":4.25}, {"label":"4,2", "x":2, "y":4.25}, {"label":"4,3", "x":3, "y":4.25}, {"label":"5,0", "x":0, "y":5.25}, {"label":"5,1", "x":1, "y":5.25}, {"label":"5,2", "x":2, "y":5.25}, {"label":"5,3", "x":3, "y":5.25}]
|
"layout": [
|
||||||
|
{"label":"0,0", "x":0, "y":0},
|
||||||
|
{"label":"0,1", "x":1, "y":0},
|
||||||
|
{"label":"0,2", "x":2, "y":0},
|
||||||
|
{"label":"0,3", "x":3, "y":0},
|
||||||
|
|
||||||
|
{"label":"1,0", "x":0, "y":1.25},
|
||||||
|
{"label":"1,1", "x":1, "y":1.25},
|
||||||
|
{"label":"1,2", "x":2, "y":1.25},
|
||||||
|
{"label":"1,3", "x":3, "y":1.25},
|
||||||
|
|
||||||
|
{"label":"2,0", "x":0, "y":2.25},
|
||||||
|
{"label":"2,1", "x":1, "y":2.25},
|
||||||
|
{"label":"2,2", "x":2, "y":2.25},
|
||||||
|
{"label":"2,3", "x":3, "y":2.25},
|
||||||
|
|
||||||
|
{"label":"3,0", "x":0, "y":3.25},
|
||||||
|
{"label":"3,1", "x":1, "y":3.25},
|
||||||
|
{"label":"3,2", "x":2, "y":3.25},
|
||||||
|
{"label":"3,3", "x":3, "y":3.25},
|
||||||
|
|
||||||
|
{"label":"4,0", "x":0, "y":4.25},
|
||||||
|
{"label":"4,1", "x":1, "y":4.25},
|
||||||
|
{"label":"4,2", "x":2, "y":4.25},
|
||||||
|
{"label":"4,3", "x":3, "y":4.25},
|
||||||
|
|
||||||
|
{"label":"5,0", "x":0, "y":5.25},
|
||||||
|
{"label":"5,1", "x":1, "y":5.25},
|
||||||
|
{"label":"5,2", "x":2, "y":5.25},
|
||||||
|
{"label":"5,3", "x":3, "y":5.25}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"LAYOUT_numpad_6x4": {
|
"LAYOUT_numpad_6x4": {
|
||||||
"layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"1,0", "x":0, "y":1.25}, {"label":"1,1", "x":1, "y":1.25}, {"label":"1,2", "x":2, "y":1.25}, {"label":"1,3", "x":3, "y":1.25}, {"label":"2,0", "x":0, "y":2.25}, {"label":"2,1", "x":1, "y":2.25}, {"label":"2,2", "x":2, "y":2.25}, {"label":"3,3", "x":3, "y":2.25, "h":2}, {"label":"3,0", "x":0, "y":3.25}, {"label":"3,1", "x":1, "y":3.25}, {"label":"3,2", "x":2, "y":3.25}, {"label":"4,0", "x":0, "y":4.25}, {"label":"4,1", "x":1, "y":4.25}, {"label":"4,2", "x":2, "y":4.25}, {"label":"5,3", "x":3, "y":4.25, "h":2}, {"label":"5,0", "x":0, "y":5.25, "w":2}, {"label":"5,2", "x":2, "y":5.25}]
|
"layout": [
|
||||||
|
{"label":"0,0", "x":0, "y":0},
|
||||||
|
{"label":"0,1", "x":1, "y":0},
|
||||||
|
{"label":"0,2", "x":2, "y":0},
|
||||||
|
{"label":"0,3", "x":3, "y":0},
|
||||||
|
|
||||||
|
{"label":"1,0", "x":0, "y":1.25},
|
||||||
|
{"label":"1,1", "x":1, "y":1.25},
|
||||||
|
{"label":"1,2", "x":2, "y":1.25},
|
||||||
|
{"label":"1,3", "x":3, "y":1.25},
|
||||||
|
|
||||||
|
{"label":"2,0", "x":0, "y":2.25},
|
||||||
|
{"label":"2,1", "x":1, "y":2.25},
|
||||||
|
{"label":"2,2", "x":2, "y":2.25},
|
||||||
|
|
||||||
|
{"label":"3,0", "x":0, "y":3.25},
|
||||||
|
{"label":"3,1", "x":1, "y":3.25},
|
||||||
|
{"label":"3,2", "x":2, "y":3.25},
|
||||||
|
{"label":"3,3", "x":3, "y":2.25, "h":2},
|
||||||
|
|
||||||
|
{"label":"4,0", "x":0, "y":4.25},
|
||||||
|
{"label":"4,1", "x":1, "y":4.25},
|
||||||
|
{"label":"4,2", "x":2, "y":4.25},
|
||||||
|
|
||||||
|
{"label":"5,0", "x":0, "y":5.25, "w":2},
|
||||||
|
{"label":"5,2", "x":2, "y":5.25},
|
||||||
|
{"label":"5,3", "x":3, "y":4.25, "h":2}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/* Copyright 2021 Lfgberg
|
||||||
|
*
|
||||||
|
* 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 "a65i.h"
|
||||||
@@ -0,0 +1,101 @@
|
|||||||
|
/* Copyright 2021 Lfgberg
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
/* This a shortcut to help you visually see your layout.
|
||||||
|
*
|
||||||
|
* The first section contains all of the arguments representing the physical
|
||||||
|
* layout of the board and position of the keys.
|
||||||
|
*
|
||||||
|
* The second converts the arguments into a two-dimensional array which
|
||||||
|
* represents the switch matrix.
|
||||||
|
*/
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
|
||||||
|
K40, K41, K42, K47, K4A, K4B, K4D, K4E, K4F \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E, K1F }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \
|
||||||
|
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_ansi( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \
|
||||||
|
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
|
||||||
|
K40, K41, K42, K47, K4A, K4B, K4D, K4E, K4F \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO, K0F }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E, K1F }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, K2F }, \
|
||||||
|
{ K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \
|
||||||
|
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_ansi_splitbs( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2F, \
|
||||||
|
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
|
||||||
|
K40, K41, K42, K47, K4A, K4B, K4D, K4E, K4F \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, K1E, K1F }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, K2F }, \
|
||||||
|
{ K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \
|
||||||
|
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_iso( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
|
||||||
|
K40, K41, K42, K47, K4A, K4B, K4D, K4E, K4F \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO, K0F }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, KC_NO, K1F }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, K2F }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \
|
||||||
|
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_iso_splitbs( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1F, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, K2F, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, K3F, \
|
||||||
|
K40, K41, K42, K47, K4A, K4B, K4D, K4E, K4F \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, KC_NO, KC_NO, K1F }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E, K2F }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, KC_NO, K3E, K3F }, \
|
||||||
|
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, K4A, K4B, KC_NO, K4D, K4E, K4F }, \
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 Lfgberg
|
||||||
|
|
||||||
|
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 0x4C47
|
||||||
|
#define PRODUCT_ID 0x0004
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER AnomalyKB
|
||||||
|
#define PRODUCT AnomalyKB A65I
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 16
|
||||||
|
|
||||||
|
#define MATRIX_ROW_PINS { B3, B2, B1, B0, B5 }
|
||||||
|
#define MATRIX_COL_PINS { D7, D6, D4, B4, B6, E6, F1, B7, C6, C7, D5, D3, D2, F0, D1, D0 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW or ROW2COL */
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* Set 0 if debouncing isn't needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "A65I",
|
||||||
|
"maintainer": "Lfgberg",
|
||||||
|
"width": 16,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_ansi": {
|
||||||
|
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Print", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgDn", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"Delete", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"mo(1)", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}]
|
||||||
|
},
|
||||||
|
"LAYOUT_ansi_splitbs": {
|
||||||
|
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Back", "x":14, "y":0}, {"label":"Print", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"PgDn", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"Delete", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"mo(1)", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}]
|
||||||
|
},
|
||||||
|
"LAYOUT_iso": {
|
||||||
|
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Print", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"PgDn", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"Delete", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"mo(1)", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}]
|
||||||
|
},
|
||||||
|
"LAYOUT_iso_splitbs": {
|
||||||
|
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"~", "x":13, "y":0}, {"label":"Back", "x":14, "y":0}, {"label":"Print", "x":15, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"PgUp", "x":15, "y":1}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"~", "x":12.75, "y":2}, {"label":"PgDn", "x":15, "y":2}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"\u2191", "x":14, "y":3}, {"label":"Delete", "x":15, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"mo(1)", "x":11.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13, "y":4}, {"label":"\u2193", "x":14, "y":4}, {"label":"\u2192", "x":15, "y":4}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
/* Copyright 2021 Lfgberg
|
||||||
|
*
|
||||||
|
* 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] = {
|
||||||
|
/* Default Layer
|
||||||
|
* ,----------------------------------------------------------------.
|
||||||
|
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|~ |Back|Home|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
|
||||||
|
* `----------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
[0] = LAYOUT_ansi_splitbs(
|
||||||
|
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_GRV, KC_BSPC, KC_PSCR,
|
||||||
|
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,
|
||||||
|
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_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_DEL,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
|
/* Layer One
|
||||||
|
* ,----------------------------------------------------------------.
|
||||||
|
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Home|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
|
||||||
|
* `----------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
[1] = LAYOUT_ansi_splitbs(
|
||||||
|
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
/* Copyright 2021 Lfgberg
|
||||||
|
*
|
||||||
|
* 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] = {
|
||||||
|
/* Default Layer
|
||||||
|
* ,----------------------------------------------------------------.
|
||||||
|
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Home|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
|
||||||
|
* `----------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
[0] = LAYOUT_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_PSCR,
|
||||||
|
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,
|
||||||
|
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_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_DEL,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
|
/* Layer One
|
||||||
|
* ,----------------------------------------------------------------.
|
||||||
|
* |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9| F0|F11|F12|Backsp |Home|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
|
||||||
|
* `----------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
[1] = LAYOUT_ansi(
|
||||||
|
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
/* Copyright 2021 Lfgberg
|
||||||
|
*
|
||||||
|
* 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] = {
|
||||||
|
/* Default Layer
|
||||||
|
* ,----------------------------------------------------------------.
|
||||||
|
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =| Delete|Home|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| E |PgUp|
|
||||||
|
* |-----------------------------------------------------| N |----|
|
||||||
|
* |Caps | A| S| D| F| G| H| J| K| L| ;|' |~ | T |PgDn|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
|
||||||
|
* `----------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
[0] = LAYOUT_iso(
|
||||||
|
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_PSCR,
|
||||||
|
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_PGUP,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN,
|
||||||
|
KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
|
/* Layer One
|
||||||
|
* ,----------------------------------------------------------------.
|
||||||
|
* |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12| Delete|Home|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| E |PgUp|
|
||||||
|
* |-----------------------------------------------------| N |----|
|
||||||
|
* |Caps | A| S| D| F| G| H| J| K| L| ;|' |~ | T |PgDn|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
|
||||||
|
* `----------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
[1] = LAYOUT_iso(
|
||||||
|
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
/* Copyright 2021 Lfgberg
|
||||||
|
*
|
||||||
|
* 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] = {
|
||||||
|
/* Default Layer
|
||||||
|
* ,----------------------------------------------------------------.
|
||||||
|
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|~ |Back|Home|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| E |PgUp|
|
||||||
|
* |-----------------------------------------------------| N |----|
|
||||||
|
* |Caps | A| S| D| F| G| H| J| K| L| ;|' |~ | T |PgDn|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
|
||||||
|
* `----------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
[0] = LAYOUT_iso_splitbs(
|
||||||
|
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_GRV, KC_BSPC, KC_PSCR,
|
||||||
|
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_PGUP,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_PGDN,
|
||||||
|
KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_DEL,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
|
/* Layer One
|
||||||
|
* ,----------------------------------------------------------------.
|
||||||
|
* |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|~ |Back|Home|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| E |PgUp|
|
||||||
|
* |-----------------------------------------------------| N |----|
|
||||||
|
* |Caps | A| S| D| F| G| H| J| K| L| ;|' |~ | T |PgDn|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
|
||||||
|
* `----------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
[1] = LAYOUT_iso_splitbs(
|
||||||
|
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
/* Copyright 2021 Lfgberg
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define DYNAMIC_KEYMAP_LAYER_COUNT 2
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
/* Copyright 2021 Lfgberg
|
||||||
|
*
|
||||||
|
* 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] = {
|
||||||
|
/* Default Layer
|
||||||
|
* ,----------------------------------------------------------------.
|
||||||
|
* |Esc| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp |Home|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
|
||||||
|
* `----------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
[0] = LAYOUT_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_PSCR,
|
||||||
|
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,
|
||||||
|
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_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_DEL,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
|
/* Layer One
|
||||||
|
* ,----------------------------------------------------------------.
|
||||||
|
* |RST| F1| F2| F3| F4| F5| F6| F7| F8| F9| F0|F11|F12|Backsp |Home|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ |PgUp|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Caps | A| S| D| F| G| H| J| K| L| ;| '|Return |PgDn|
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | Up|Del |
|
||||||
|
* |----------------------------------------------------------------|
|
||||||
|
* |Ctrl|Win |Alt | Space |Alt| FN|Ctrl|Lef|Dow|Rig |
|
||||||
|
* `----------------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
[1] = LAYOUT_ansi(
|
||||||
|
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
|
};
|
||||||
File renamed without changes.
@@ -0,0 +1,17 @@
|
|||||||
|
# a65i
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
PCB designed by Lfgberg for the AnomalyKB a65i.
|
||||||
|
|
||||||
|
To enter bootloader mode, either utilize the reset button near the MCU, or short the ESC key for bootmagic lite.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Lfgberg](https://github.com/lfgberg)
|
||||||
|
* Hardware Supported: A65I PCB
|
||||||
|
* Hardware Availability: [AnomalyKB](anomalykb.co)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make anomalykb/a65i: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 = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = yes # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
+32
-1
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
Copyright 2019 Evy Dekkers
|
Copyright 2019 Evy Dekkers
|
||||||
|
2021 James Young for QMK (@noroadsleft)
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
@@ -21,7 +22,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#define XXX KC_NO
|
#define XXX KC_NO
|
||||||
|
|
||||||
#define LAYOUT( \
|
#define LAYOUT_all( \
|
||||||
k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e, \
|
k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e, \
|
||||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
|
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
|
||||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
|
||||||
@@ -35,3 +36,33 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
{k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX}, \
|
{k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX}, \
|
||||||
{k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e} \
|
{k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e} \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_60_ansi_split_bs_rshift( \
|
||||||
|
k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e, \
|
||||||
|
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
|
||||||
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
|
||||||
|
k10, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
|
||||||
|
k00, k01, k02, k06, k0a, k0b, k0c, k0d \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{k00, k01, k02, XXX, XXX, XXX, k06, XXX, XXX, XXX, k0a, k0b, k0c, k0d, XXX}, \
|
||||||
|
{k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX}, \
|
||||||
|
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX}, \
|
||||||
|
{k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX}, \
|
||||||
|
{k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e} \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_60_hhkb( \
|
||||||
|
k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e, \
|
||||||
|
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
|
||||||
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
|
||||||
|
k10, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
|
||||||
|
k01, k02, k06, k0b, k0c \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{XXX, k01, k02, XXX, XXX, XXX, k06, XXX, XXX, XXX, XXX, k0b, k0c, XXX, XXX}, \
|
||||||
|
{k10, XXX, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX}, \
|
||||||
|
{k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX}, \
|
||||||
|
{k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX}, \
|
||||||
|
{k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e} \
|
||||||
|
}
|
||||||
@@ -49,5 +49,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
// #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))
|
// #define IS_COMMAND() (get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)))
|
||||||
|
|
||||||
/* Bootmagic Lite key configuration */
|
/* Bootmagic Lite key configuration */
|
||||||
// #define BOOTMAGIC_LITE_ROW 0
|
#define BOOTMAGIC_LITE_ROW 4
|
||||||
// #define BOOTMAGIC_LITE_COLUMN 0
|
#define BOOTMAGIC_LITE_COLUMN 0
|
||||||
+220
-8
@@ -1,12 +1,224 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "LSJ Ares",
|
"keyboard_name": "LSJ Ares",
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"width": 15,
|
"width": 15,
|
||||||
"height": 5,
|
"height": 5,
|
||||||
|
"layout_aliases": {
|
||||||
|
"LAYOUT": "LAYOUT_all"
|
||||||
|
},
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT_all": {
|
||||||
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"|", "x":13, "y":0}, {"label":"Back space", "x":14, "y":0}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"|", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"|", "x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"label":"Fn", "x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}]
|
"layout": [
|
||||||
|
{"label":"~", "x":0, "y":0},
|
||||||
|
{"label":"!", "x":1, "y":0},
|
||||||
|
{"label":"@", "x":2, "y":0},
|
||||||
|
{"label":"#", "x":3, "y":0},
|
||||||
|
{"label":"$", "x":4, "y":0},
|
||||||
|
{"label":"%", "x":5, "y":0},
|
||||||
|
{"label":"^", "x":6, "y":0},
|
||||||
|
{"label":"&", "x":7, "y":0},
|
||||||
|
{"label":"*", "x":8, "y":0},
|
||||||
|
{"label":"(", "x":9, "y":0},
|
||||||
|
{"label":")", "x":10, "y":0},
|
||||||
|
{"label":"_", "x":11, "y":0},
|
||||||
|
{"label":"+", "x":12, "y":0},
|
||||||
|
{"label":"|", "x":13, "y":0},
|
||||||
|
{"label":"Back space", "x":14, "y":0},
|
||||||
|
|
||||||
|
{"label":"Tab", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"Q", "x":1.5, "y":1},
|
||||||
|
{"label":"W", "x":2.5, "y":1},
|
||||||
|
{"label":"E", "x":3.5, "y":1},
|
||||||
|
{"label":"R", "x":4.5, "y":1},
|
||||||
|
{"label":"T", "x":5.5, "y":1},
|
||||||
|
{"label":"Y", "x":6.5, "y":1},
|
||||||
|
{"label":"U", "x":7.5, "y":1},
|
||||||
|
{"label":"I", "x":8.5, "y":1},
|
||||||
|
{"label":"O", "x":9.5, "y":1},
|
||||||
|
{"label":"P", "x":10.5, "y":1},
|
||||||
|
{"label":"{", "x":11.5, "y":1},
|
||||||
|
{"label":"}", "x":12.5, "y":1},
|
||||||
|
{"label":"|", "x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"label":"Caps Lock", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"A", "x":1.75, "y":2},
|
||||||
|
{"label":"S", "x":2.75, "y":2},
|
||||||
|
{"label":"D", "x":3.75, "y":2},
|
||||||
|
{"label":"F", "x":4.75, "y":2},
|
||||||
|
{"label":"G", "x":5.75, "y":2},
|
||||||
|
{"label":"H", "x":6.75, "y":2},
|
||||||
|
{"label":"J", "x":7.75, "y":2},
|
||||||
|
{"label":"K", "x":8.75, "y":2},
|
||||||
|
{"label":"L", "x":9.75, "y":2},
|
||||||
|
{"label":":", "x":10.75, "y":2},
|
||||||
|
{"label":"\"", "x":11.75, "y":2},
|
||||||
|
{"label":"|", "x":12.75, "y":2},
|
||||||
|
{"label":"Enter", "x":13.75, "y":2, "w":1.25},
|
||||||
|
|
||||||
|
{"label":"Shift", "x":0, "y":3, "w":1.25},
|
||||||
|
{"label":"|", "x":1.25, "y":3},
|
||||||
|
{"label":"Z", "x":2.25, "y":3},
|
||||||
|
{"label":"X", "x":3.25, "y":3},
|
||||||
|
{"label":"C", "x":4.25, "y":3},
|
||||||
|
{"label":"V", "x":5.25, "y":3},
|
||||||
|
{"label":"B", "x":6.25, "y":3},
|
||||||
|
{"label":"N", "x":7.25, "y":3},
|
||||||
|
{"label":"M", "x":8.25, "y":3},
|
||||||
|
{"label":"<", "x":9.25, "y":3},
|
||||||
|
{"label":">", "x":10.25, "y":3},
|
||||||
|
{"label":"?", "x":11.25, "y":3},
|
||||||
|
{"label":"Shift", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"Fn", "x":14, "y":3},
|
||||||
|
|
||||||
|
{"label":"Ctrl", "x":0, "y":4, "w":1.25},
|
||||||
|
{"label":"Win", "x":1.25, "y":4, "w":1.25},
|
||||||
|
{"label":"Alt", "x":2.5, "y":4, "w":1.25},
|
||||||
|
{"label":"Space", "x":3.75, "y":4, "w":6.25},
|
||||||
|
{"label":"Alt", "x":10, "y":4, "w":1.25},
|
||||||
|
{"label":"Win", "x":11.25, "y":4, "w":1.25},
|
||||||
|
{"label":"Menu", "x":12.5, "y":4, "w":1.25},
|
||||||
|
{"label":"Ctrl", "x":13.75, "y":4, "w":1.25}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_60_ansi_split_bs_rshift": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0},
|
||||||
|
{"x":14, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1, "w":1.5},
|
||||||
|
{"x":1.5, "y":1},
|
||||||
|
{"x":2.5, "y":1},
|
||||||
|
{"x":3.5, "y":1},
|
||||||
|
{"x":4.5, "y":1},
|
||||||
|
{"x":5.5, "y":1},
|
||||||
|
{"x":6.5, "y":1},
|
||||||
|
{"x":7.5, "y":1},
|
||||||
|
{"x":8.5, "y":1},
|
||||||
|
{"x":9.5, "y":1},
|
||||||
|
{"x":10.5, "y":1},
|
||||||
|
{"x":11.5, "y":1},
|
||||||
|
{"x":12.5, "y":1},
|
||||||
|
{"x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"x":0, "y":2, "w":1.75},
|
||||||
|
{"x":1.75, "y":2},
|
||||||
|
{"x":2.75, "y":2},
|
||||||
|
{"x":3.75, "y":2},
|
||||||
|
{"x":4.75, "y":2},
|
||||||
|
{"x":5.75, "y":2},
|
||||||
|
{"x":6.75, "y":2},
|
||||||
|
{"x":7.75, "y":2},
|
||||||
|
{"x":8.75, "y":2},
|
||||||
|
{"x":9.75, "y":2},
|
||||||
|
{"x":10.75, "y":2},
|
||||||
|
{"x":11.75, "y":2},
|
||||||
|
{"x":12.75, "y":2, "w":2.25},
|
||||||
|
|
||||||
|
{"x":0, "y":3, "w":2.25},
|
||||||
|
{"x":2.25, "y":3},
|
||||||
|
{"x":3.25, "y":3},
|
||||||
|
{"x":4.25, "y":3},
|
||||||
|
{"x":5.25, "y":3},
|
||||||
|
{"x":6.25, "y":3},
|
||||||
|
{"x":7.25, "y":3},
|
||||||
|
{"x":8.25, "y":3},
|
||||||
|
{"x":9.25, "y":3},
|
||||||
|
{"x":10.25, "y":3},
|
||||||
|
{"x":11.25, "y":3},
|
||||||
|
{"x":12.25, "y":3, "w":1.75},
|
||||||
|
{"x":14, "y":3},
|
||||||
|
|
||||||
|
{"x":0, "y":4, "w":1.25},
|
||||||
|
{"x":1.25, "y":4, "w":1.25},
|
||||||
|
{"x":2.5, "y":4, "w":1.25},
|
||||||
|
{"x":3.75, "y":4, "w":6.25},
|
||||||
|
{"x":10, "y":4, "w":1.25},
|
||||||
|
{"x":11.25, "y":4, "w":1.25},
|
||||||
|
{"x":12.5, "y":4, "w":1.25},
|
||||||
|
{"x":13.75, "y":4, "w":1.25}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_60_hhkb": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6, "y":0},
|
||||||
|
{"x":7, "y":0},
|
||||||
|
{"x":8, "y":0},
|
||||||
|
{"x":9, "y":0},
|
||||||
|
{"x":10, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0},
|
||||||
|
{"x":14, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1, "w":1.5},
|
||||||
|
{"x":1.5, "y":1},
|
||||||
|
{"x":2.5, "y":1},
|
||||||
|
{"x":3.5, "y":1},
|
||||||
|
{"x":4.5, "y":1},
|
||||||
|
{"x":5.5, "y":1},
|
||||||
|
{"x":6.5, "y":1},
|
||||||
|
{"x":7.5, "y":1},
|
||||||
|
{"x":8.5, "y":1},
|
||||||
|
{"x":9.5, "y":1},
|
||||||
|
{"x":10.5, "y":1},
|
||||||
|
{"x":11.5, "y":1},
|
||||||
|
{"x":12.5, "y":1},
|
||||||
|
{"x":13.5, "y":1, "w":1.5},
|
||||||
|
|
||||||
|
{"x":0, "y":2, "w":1.75},
|
||||||
|
{"x":1.75, "y":2},
|
||||||
|
{"x":2.75, "y":2},
|
||||||
|
{"x":3.75, "y":2},
|
||||||
|
{"x":4.75, "y":2},
|
||||||
|
{"x":5.75, "y":2},
|
||||||
|
{"x":6.75, "y":2},
|
||||||
|
{"x":7.75, "y":2},
|
||||||
|
{"x":8.75, "y":2},
|
||||||
|
{"x":9.75, "y":2},
|
||||||
|
{"x":10.75, "y":2},
|
||||||
|
{"x":11.75, "y":2},
|
||||||
|
{"x":12.75, "y":2, "w":2.25},
|
||||||
|
|
||||||
|
{"x":0, "y":3, "w":2.25},
|
||||||
|
{"x":2.25, "y":3},
|
||||||
|
{"x":3.25, "y":3},
|
||||||
|
{"x":4.25, "y":3},
|
||||||
|
{"x":5.25, "y":3},
|
||||||
|
{"x":6.25, "y":3},
|
||||||
|
{"x":7.25, "y":3},
|
||||||
|
{"x":8.25, "y":3},
|
||||||
|
{"x":9.25, "y":3},
|
||||||
|
{"x":10.25, "y":3},
|
||||||
|
{"x":11.25, "y":3},
|
||||||
|
{"x":12.25, "y":3, "w":1.75},
|
||||||
|
{"x":14, "y":3},
|
||||||
|
|
||||||
|
{"x":1.5, "y":4},
|
||||||
|
{"x":2.5, "y":4, "w":1.5},
|
||||||
|
{"x":4, "y":4, "w":7},
|
||||||
|
{"x":11, "y":4, "w":1.5},
|
||||||
|
{"x":12.5, "y":4}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -17,24 +17,26 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
#define _MA 0
|
enum layer_names {
|
||||||
#define _FN 1
|
_MA,
|
||||||
|
_FN,
|
||||||
#define ______ KC_TRNS
|
};
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
[_MA] = LAYOUT(
|
[_MA] = LAYOUT_all(
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, 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_BSLS, KC_BSPC,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||||
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT,
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT,
|
||||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN),
|
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(_FN),
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTRL),
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
|
||||||
[_FN] = LAYOUT(
|
),
|
||||||
RGB_MOD, BL_TOGG, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, RESET,
|
[_FN] = LAYOUT_all(
|
||||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
|
RGB_MOD, BL_TOGG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
|
||||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______, ______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
______, ______, ______, ______, ______, ______, ______, ______)
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
)
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
# lSJ Ares
|
# LSJ Ares
|
||||||
|
|
||||||
* Keyboard Maintainer: QMK Community
|
* Keyboard Maintainer: QMK Community
|
||||||
* Hardware Supported: LSJ Ares PCB
|
* Hardware Supported: LSJ Ares PCB
|
||||||
* Hardware Availability: <https://geekhack.org/index.php?topic=93146.0>
|
* Hardware Availability: [2018 Geekhack Group Buy](https://geekhack.org/index.php?topic=93146.0)
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
@@ -12,6 +12,6 @@ Flashing example for this keyboard ([after setting up the bootloadHID flashing e
|
|||||||
|
|
||||||
make ares:default:flash
|
make ares:default:flash
|
||||||
|
|
||||||
**Reset Key**: Hold down the *left control* key while plugging in the keyboard.
|
**Reset Key**: Hold down the top left key, commonly programmed as *Escape*, while plugging in the keyboard.
|
||||||
|
|
||||||
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).
|
||||||
+14
-15
@@ -2,21 +2,20 @@
|
|||||||
MCU = atmega32a
|
MCU = atmega32a
|
||||||
|
|
||||||
# Bootloader selection
|
# Bootloader selection
|
||||||
# Teensy halfkay
|
|
||||||
# Pro Micro caterina
|
|
||||||
# Atmel DFU atmel-dfu
|
|
||||||
# LUFA DFU lufa-dfu
|
|
||||||
# QMK DFU qmk-dfu
|
|
||||||
# ATmega32A bootloadHID
|
|
||||||
# ATmega328P USBasp
|
|
||||||
BOOTLOADER = bootloadHID
|
BOOTLOADER = bootloadHID
|
||||||
|
|
||||||
# build options
|
# Build Options
|
||||||
BOOTMAGIC_ENABLE = lite
|
# change yes to no to disable
|
||||||
MOUSEKEY_ENABLE = no
|
#
|
||||||
EXTRAKEY_ENABLE = yes
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
CONSOLE_ENABLE = no
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
COMMAND_ENABLE = yes
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
BACKLIGHT_ENABLE = yes
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
RGBLIGHT_ENABLE = no
|
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
|
||||||
|
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
WS2812_DRIVER = i2c
|
WS2812_DRIVER = i2c
|
||||||
|
|
||||||
|
LAYOUTS = 60_ansi_split_bs_rshift 60_hhkb
|
||||||
@@ -24,7 +24,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
/* Base */
|
/* Base */
|
||||||
[_BASE] = LAYOUT_ortho_2x3(
|
[_BASE] = LAYOUT_ortho_2x3(
|
||||||
KC_F1, KC_F2, KC_F3,
|
KC_F1, KC_F2, KC_F3,
|
||||||
KC_F4, KC_F5,KC_F6
|
KC_F4, KC_F5, KC_F6
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -20,3 +20,5 @@ BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
|||||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
AUDIO_ENABLE = no # Audio output
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
|
||||||
|
LAYOUTS = ortho_2x3
|
||||||
@@ -0,0 +1,121 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 Boardsource
|
||||||
|
|
||||||
|
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 0x4273
|
||||||
|
#define PRODUCT_ID 0x0083
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER Boardsource
|
||||||
|
#define PRODUCT Technik-S
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 4
|
||||||
|
#define MATRIX_COLS 12
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*
|
||||||
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define MATRIX_ROW_PINS {B0, B1, B2, B3}
|
||||||
|
#define MATRIX_COL_PINS {B5, B6, B7, F5, C7, D0, D1, D2, D3, D4, D5, D6}
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL */
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
//#define BACKLIGHT_PIN B7
|
||||||
|
//#define BACKLIGHT_LEVELS 3
|
||||||
|
#define BACKLIGHT_BREATHING
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#define RGB_DI_PIN C6
|
||||||
|
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 120
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
#define RGBLED_NUM 10 // Number of LEDs
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define DRIVER_LED_TOTAL 55
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||||
|
//#define MATRIX_HAS_GHOST
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
|
||||||
|
* This is useful for the Windows task manager shortcut (ctrl+shift+esc).
|
||||||
|
*/
|
||||||
|
//#define GRAVE_ESC_CTRL_OVERRIDE
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Force NKRO
|
||||||
|
*
|
||||||
|
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||||
|
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||||
|
* makefile for this to work.)
|
||||||
|
*
|
||||||
|
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||||
|
* until the next keyboard reset.
|
||||||
|
*
|
||||||
|
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||||
|
* fully operational during normal computer usage.
|
||||||
|
*
|
||||||
|
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||||
|
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||||
|
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||||
|
* power-up.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//#define FORCE_NKRO
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Feature disable options
|
||||||
|
* These options are also useful to firmware size reduction.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* disable debug print */
|
||||||
|
//#define NO_DEBUG
|
||||||
|
|
||||||
|
/* disable print */
|
||||||
|
//#define NO_PRINT
|
||||||
|
|
||||||
|
/* disable action features */
|
||||||
|
//#define NO_ACTION_LAYER
|
||||||
|
//#define NO_ACTION_TAPPING
|
||||||
|
//#define NO_ACTION_ONESHOT
|
||||||
|
|
||||||
|
/* disable these deprecated features by default */
|
||||||
|
#define NO_ACTION_MACRO
|
||||||
|
#define NO_ACTION_FUNCTION
|
||||||
|
|
||||||
|
/* Bootmagic Lite key configuration */
|
||||||
|
//#define BOOTMAGIC_LITE_ROW 0
|
||||||
|
//#define BOOTMAGIC_LITE_COLUMN 0
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Technik-S",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "Boardsource",
|
||||||
|
"width": 12,
|
||||||
|
"height": 4,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{ "label": "1", "x": 0, "y": 0 },
|
||||||
|
{ "label": "2", "x": 1, "y": 0 },
|
||||||
|
{ "label": "3", "x": 2, "y": 0 },
|
||||||
|
{ "label": "4", "x": 3, "y": 0 },
|
||||||
|
{ "label": "5", "x": 4, "y": 0 },
|
||||||
|
{ "label": "6", "x": 5, "y": 0 },
|
||||||
|
{ "label": "7", "x": 6, "y": 0 },
|
||||||
|
{ "label": "8", "x": 7, "y": 0 },
|
||||||
|
{ "label": "9", "x": 8, "y": 0 },
|
||||||
|
{ "label": "10", "x": 9, "y": 0 },
|
||||||
|
{ "label": "11", "x": 10, "y": 0 },
|
||||||
|
{ "label": "12", "x": 11, "y": 0 },
|
||||||
|
{ "label": "13", "x": 0, "y": 1, "w": 1.5 },
|
||||||
|
{ "label": "14", "x": 1.5, "y": 1 },
|
||||||
|
{ "label": "15", "x": 2.5, "y": 1 },
|
||||||
|
{ "label": "16", "x": 3.5, "y": 1 },
|
||||||
|
{ "label": "17", "x": 4.5, "y": 1 },
|
||||||
|
{ "label": "18", "x": 5.5, "y": 1 },
|
||||||
|
{ "label": "19", "x": 6.5, "y": 1 },
|
||||||
|
{ "label": "20", "x": 7.5, "y": 1 },
|
||||||
|
{ "label": "21", "x": 8.5, "y": 1 },
|
||||||
|
{ "label": "22", "x": 9.5, "y": 1 },
|
||||||
|
{ "label": "23", "x": 10.5, "y": 1, "w": 1.5 },
|
||||||
|
{ "label": "24", "x": 0, "y": 2 },
|
||||||
|
{ "label": "25", "x": 1, "y": 2 },
|
||||||
|
{ "label": "26", "x": 2, "y": 2 },
|
||||||
|
{ "label": "27", "x": 3, "y": 2 },
|
||||||
|
{ "label": "28", "x": 4, "y": 2 },
|
||||||
|
{ "label": "29", "x": 5, "y": 2 },
|
||||||
|
{ "label": "30", "x": 6, "y": 2 },
|
||||||
|
{ "label": "31", "x": 7, "y": 2 },
|
||||||
|
{ "label": "32", "x": 8, "y": 2 },
|
||||||
|
{ "label": "33", "x": 9, "y": 2 },
|
||||||
|
{ "label": "34", "x": 10, "y": 2 },
|
||||||
|
{ "label": "35", "x": 11, "y": 2 },
|
||||||
|
{ "label": "36", "x": 0, "y": 3 },
|
||||||
|
{ "label": "37", "x": 1, "y": 3 },
|
||||||
|
{ "label": "38", "x": 2, "y": 3 },
|
||||||
|
{ "label": "39", "x": 3, "y": 3, "w": 1.5 },
|
||||||
|
{ "label": "40", "x": 4.5, "y": 3, "w": 1.5 },
|
||||||
|
{ "label": "41", "x": 6, "y": 3, "w": 1.5 },
|
||||||
|
{ "label": "42", "x": 7.5, "y": 3, "w": 1.5 },
|
||||||
|
{ "label": "43", "x": 9, "y": 3 },
|
||||||
|
{ "label": "44", "x": 10, "y": 3 },
|
||||||
|
{ "label": "45", "x": 11, "y": 3 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
/* Copyright 2020 Boardsource
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
enum layers {
|
||||||
|
_MAIN,
|
||||||
|
_RAISE,
|
||||||
|
_LOWER,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Readability keycodes
|
||||||
|
#define LOWER MO(_LOWER)
|
||||||
|
#define RAISE MO(_RAISE)
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_MAIN] = LAYOUT(
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||||
|
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
|
||||||
|
KC_LSHIFT,KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, KC_ENT ,
|
||||||
|
RGB_TOG, KC_LCTL, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RIGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_RAISE] = LAYOUT(
|
||||||
|
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||||
|
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR,
|
||||||
|
RGB_MOD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD
|
||||||
|
),
|
||||||
|
|
||||||
|
[_LOWER] = LAYOUT(
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||||
|
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC,
|
||||||
|
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# The default keymap for Technik-S
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
/* Copyright 2020 Boardsource
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
enum layers {
|
||||||
|
_MAIN,
|
||||||
|
_RAISE,
|
||||||
|
_LOWER,
|
||||||
|
};
|
||||||
|
|
||||||
|
// Readability keycodes
|
||||||
|
#define LOWER MO(_LOWER)
|
||||||
|
#define RAISE MO(_RAISE)
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_MAIN] = LAYOUT(
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||||
|
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
|
||||||
|
KC_LSHIFT,KC_LSHIFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_UP, KC_ENT ,
|
||||||
|
RGB_TOG, KC_LCTL, KC_LALT, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_RIGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_RAISE] = LAYOUT(
|
||||||
|
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||||
|
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR,
|
||||||
|
RGB_MOD, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD
|
||||||
|
),
|
||||||
|
|
||||||
|
[_LOWER] = LAYOUT(
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||||
|
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC,
|
||||||
|
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# The via keymap for Technik-S
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# Technik-S
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
The technik-s is a 40% staggard keyboard that is designed to fit in the same case as the technik-o a 4x12 ortho
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Boardsource](https://github.com/boardsource)
|
||||||
|
* Hardware Supported: V1 pcb
|
||||||
|
* Hardware Availability: [boardsource](https://boardsource.xyz/store/5ffb9b01edd0447f8023fdb2)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make boardsource/technik_s:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make boardsource/technik_s:default:flash
|
||||||
|
|
||||||
|
Reset keyboard by pushing reset button on back of pcb through access hole. Or hold down top left key while you plug in the usb cable.
|
||||||
|
Then run this command in your local qmk repo, or flash using qmk toolbox.
|
||||||
|
|
||||||
|
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,25 @@
|
|||||||
|
# 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 = no # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
RGB_MATRIX_ENABLE = yes
|
||||||
|
RGB_MATRIX_DRIVER = WS2812
|
||||||
|
LTO_ENABLE = yes
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
/* Copyright 2020 Boardsource
|
||||||
|
*
|
||||||
|
* 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 "technik_s.h"
|
||||||
|
#ifdef RGB_MATRIX_ENABLE
|
||||||
|
led_config_t g_led_config = { {
|
||||||
|
{11,12,13,14,15,16,17,18,19,20,21,22},
|
||||||
|
{23,24,25,26,27,28,29,30,31,32,33},
|
||||||
|
{34,35,36,37,38,39,40,41,42,43,44,45},
|
||||||
|
{46,47,48,49,50,51,52,53,54,55}
|
||||||
|
}, {
|
||||||
|
{11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0},
|
||||||
|
{10.5, 1}, {9.5, 1}, {8.5, 1}, {7.5, 1}, {6.5, 1}, {5.5, 1}, {4.5, 1}, {3.5, 1}, {2.5, 1}, {1.5, 1}, {0.5, 1},
|
||||||
|
{11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2},
|
||||||
|
{11, 3}, {10, 3}, {9, 3}, {8, 3}, {6.5, 3}, {5, 3}, {3.5, 3}, {2, 3}, {1, 3}, {0, 3},
|
||||||
|
}, {
|
||||||
|
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
1, 1, 1, 1, 4, 4, 1, 1, 1, 1
|
||||||
|
|
||||||
|
} };
|
||||||
|
#endif
|
||||||
|
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/* Copyright 2020 Boardsource
|
||||||
|
*
|
||||||
|
* 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, 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 \
|
||||||
|
) { \
|
||||||
|
{K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K10, K11}, \
|
||||||
|
{K12, KC_NO, 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,KC_NO,K40, K41,KC_NO,K42, K43, K44, K45} \
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
#include "aella.h"
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
K000, K001, K002, K003, K004, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, \
|
||||||
|
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, \
|
||||||
|
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, \
|
||||||
|
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K315, \
|
||||||
|
K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K415, \
|
||||||
|
K500, K502, K506, K510, K511, K512, K513, K515 \
|
||||||
|
) { \
|
||||||
|
{ K000, K001, K002, K003, K004, KC_NO, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015 }, \
|
||||||
|
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115 }, \
|
||||||
|
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215 }, \
|
||||||
|
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, KC_NO, K315 }, \
|
||||||
|
{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, KC_NO, K415 }, \
|
||||||
|
{ K500, KC_NO, K502, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, KC_NO, K510, K511, K512, K513, KC_NO, K515 } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/* Copyright 2020 QMK
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was auto-generated by:
|
||||||
|
* `qmk chibios-confmigrate -i keyboards/cannonkeys/obliterated75/chconf.h -r platforms/chibios/common/configs/chconf.h`
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define CH_CFG_ST_FREQUENCY 10000
|
||||||
|
|
||||||
|
#define CH_CFG_OPTIMIZE_SPEED FALSE
|
||||||
|
|
||||||
|
#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
|
||||||
|
|
||||||
|
#include_next <chconf.h>
|
||||||
|
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2015 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xCA04
|
||||||
|
#define PRODUCT_ID 0x0007
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER CannonKeys
|
||||||
|
#define PRODUCT Aella
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 6
|
||||||
|
#define MATRIX_COLS 16
|
||||||
|
|
||||||
|
#define MATRIX_COL_PINS { A5, B0, B1, B2, B10, A9, C13, B9, B8, B7, B6, B5, B4, B3, A15, A14 }
|
||||||
|
#define MATRIX_ROW_PINS { A13, B12, B11, B14, A8, A7 }
|
||||||
|
#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
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Feature disable options
|
||||||
|
* These options are also useful to firmware size reduction.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* disable debug print */
|
||||||
|
//#define NO_DEBUG
|
||||||
|
|
||||||
|
/* disable print */
|
||||||
|
//#define NO_PRINT
|
||||||
|
|
||||||
|
/* disable action features */
|
||||||
|
//#define NO_ACTION_LAYER
|
||||||
|
//#define NO_ACTION_TAPPING
|
||||||
|
//#define NO_ACTION_ONESHOT
|
||||||
|
//#define NO_ACTION_MACRO
|
||||||
|
//#define NO_ACTION_FUNCTION
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Aella",
|
||||||
|
"url": "https://www.alchemistkeyboards.com/aella",
|
||||||
|
"maintainer": "Alchemist Keyboards",
|
||||||
|
"width": 16,
|
||||||
|
"height": 6,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [{"x":0, "y":0}, {"x":1.25, "y":0}, {"x":2.25, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":5.5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.75, "y":0}, {"x":10.75, "y":0}, {"x":11.75, "y":0}, {"x":12.75, "y":0}, {"x":14, "y":0}, {"x":15, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":15, "y":1}, {"x":0, "y":2, "w":1.5}, {"x":1.5, "y":2}, {"x":2.5, "y":2}, {"x":3.5, "y":2}, {"x":4.5, "y":2}, {"x":5.5, "y":2}, {"x":6.5, "y":2}, {"x":7.5, "y":2}, {"x":8.5, "y":2}, {"x":9.5, "y":2}, {"x":10.5, "y":2}, {"x":11.5, "y":2}, {"x":12.5, "y":2}, {"x":13.5, "y":2, "w":1.5}, {"x":15, "y":2}, {"x":0, "y":3, "w":1.75}, {"x":1.75, "y":3}, {"x":2.75, "y":3}, {"x":3.75, "y":3}, {"x":4.75, "y":3}, {"x":5.75, "y":3}, {"x":6.75, "y":3}, {"x":7.75, "y":3}, {"x":8.75, "y":3}, {"x":9.75, "y":3}, {"x":10.75, "y":3}, {"x":11.75, "y":3}, {"x":12.75, "y":3}, {"x":13.75, "y":3, "w":1.25}, {"x":15, "y":3}, {"x":0, "y":4, "w":1.25}, {"x":1.25, "y":4}, {"x":2.25, "y":4}, {"x":3.25, "y":4}, {"x":4.25, "y":4}, {"x":5.25, "y":4}, {"x":6.25, "y":4}, {"x":7.25, "y":4}, {"x":8.25, "y":4}, {"x":9.25, "y":4}, {"x":10.25, "y":4}, {"x":11.25, "y":4}, {"x":12.25, "y":4, "w":1.75}, {"x":14, "y":4}, {"x":15, "y":4}, {"x":0, "y":5, "w":1.5}, {"x":2.25, "y":5, "w":1.25}, {"x":3.5, "y":5, "w":6.25}, {"x":9.75, "y":5, "w":1.25}, {"x":11, "y":5, "w":1.25}, {"x":13, "y":5}, {"x":14, "y":5}, {"x":15, "y":5}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
/*
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||||
|
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||||
|
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||||
|
// entirely and just use numbers.
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
_FN1,
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_BASE] = LAYOUT_all(
|
||||||
|
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_MPLY, KC_MUTE,
|
||||||
|
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_DEL, KC_INS,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_PGUP,
|
||||||
|
KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||||
|
KC_LCTL, KC_LALT, KC_SPC, MO(_FN1), KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN1] = LAYOUT_all(
|
||||||
|
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_TRNS, KC_TRNS,
|
||||||
|
KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
/*
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||||
|
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||||
|
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||||
|
// entirely and just use numbers.
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
_FN1,
|
||||||
|
_FN2,
|
||||||
|
_FN3
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_BASE] = LAYOUT_all(
|
||||||
|
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_MPLY, KC_MUTE,
|
||||||
|
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_DEL, KC_INS,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_PGUP,
|
||||||
|
KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||||
|
KC_LCTL, KC_LALT, KC_SPC, MO(_FN1), KC_LGUI, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN1] = LAYOUT_all(
|
||||||
|
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_TRNS, KC_TRNS,
|
||||||
|
KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_GRV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
|
||||||
|
[_FN2] = LAYOUT_all(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN3] = LAYOUT_all(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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,10 @@
|
|||||||
|
# Alchemist Keyboards Aella
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
|
||||||
|
* Hardware Supported: STM32F072CBT6
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make cannonkeys/aella: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,28 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = STM32F072
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = stm32-dfu
|
||||||
|
|
||||||
|
# Wildcard to allow APM32 MCU
|
||||||
|
DFU_SUFFIX_ARGS = -v FFFF -p FFFF
|
||||||
|
|
||||||
|
# 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
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
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 "balance.h"
|
||||||
|
|
||||||
|
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
||||||
|
if (!encoder_update_user(index, clockwise)) { return false; }
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_VOLU);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_VOLD);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
/*
|
||||||
|
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_all( \
|
||||||
|
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, K019, \
|
||||||
|
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K115, K116, K117, K118, K119, \
|
||||||
|
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K215, K216, K217, K218, K219, \
|
||||||
|
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K315, K316, K317, K318, K319, \
|
||||||
|
K400, K401, K402, K406, K410, K411, K412, K413, K415, K416, K417, K418, K419 \
|
||||||
|
) { \
|
||||||
|
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, K019 }, \
|
||||||
|
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, KC_NO, K115, K116, K117, K118, K119 }, \
|
||||||
|
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, KC_NO, K215, K216, K217, K218, K219 }, \
|
||||||
|
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, KC_NO, K315, K316, K317, K318, K319 }, \
|
||||||
|
{ K400, K401, K402, KC_NO, KC_NO, KC_NO, K406, KC_NO, KC_NO, KC_NO, K410, K411, K412, K413, KC_NO, K415, K416, K417, K418, K419 } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/* Copyright 2020 QMK
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was auto-generated by:
|
||||||
|
* `qmk chibios-confmigrate -i keyboards/cannonkeys/db60/chconf.h -r platforms/chibios/common/configs/chconf.h`
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define CH_CFG_ST_FREQUENCY 10000
|
||||||
|
|
||||||
|
#define CH_CFG_OPTIMIZE_SPEED FALSE
|
||||||
|
|
||||||
|
#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
|
||||||
|
|
||||||
|
#include_next <chconf.h>
|
||||||
|
|
||||||
@@ -0,0 +1,71 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2015 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xCA04
|
||||||
|
#define PRODUCT_ID 0xBA77
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER CannonKeys
|
||||||
|
#define PRODUCT Balance
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 20
|
||||||
|
|
||||||
|
#define MATRIX_COL_PINS { B11, B10, B2, B1, B0, A7, A6, A5, A4, A3, A2, A1, F1, C15, B3, C14, C13, B9, B8, B7 }
|
||||||
|
#define MATRIX_ROW_PINS { B4, A15, A14, A0, F0 }
|
||||||
|
#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
|
||||||
|
|
||||||
|
#define ENCODERS_PAD_A { B5 }
|
||||||
|
#define ENCODERS_PAD_B { B6 }
|
||||||
|
|
||||||
|
#define ENCODER_RESOLUTION 2
|
||||||
|
#define TAP_CODE_DELAY 25
|
||||||
|
|
||||||
|
#define DYNAMIC_KEYMAP_LAYER_COUNT 3
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Feature disable options
|
||||||
|
* These options are also useful to firmware size reduction.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* disable debug print */
|
||||||
|
//#define NO_DEBUG
|
||||||
|
|
||||||
|
/* disable print */
|
||||||
|
//#define NO_PRINT
|
||||||
|
|
||||||
|
/* disable action features */
|
||||||
|
//#define NO_ACTION_LAYER
|
||||||
|
//#define NO_ACTION_TAPPING
|
||||||
|
//#define NO_ACTION_ONESHOT
|
||||||
|
//#define NO_ACTION_MACRO
|
||||||
|
//#define NO_ACTION_FUNCTION
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/* Copyright 2020 QMK
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was auto-generated by:
|
||||||
|
* `qmk chibios-confmigrate -i keyboards/cannonkeys/db60/halconf.h -r platforms/chibios/common/configs/halconf.h`
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define HAL_USE_I2C TRUE
|
||||||
|
|
||||||
|
#define HAL_USE_PWM TRUE
|
||||||
|
|
||||||
|
#define HAL_USE_SPI TRUE
|
||||||
|
|
||||||
|
#include_next <halconf.h>
|
||||||
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Balance",
|
||||||
|
"url": "https://cannonkeys.com",
|
||||||
|
"maintainer": "awkannan",
|
||||||
|
"width": 20.5,
|
||||||
|
"height": 5.5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [{"label":"KNOB", "x":15.25, "y":0}, {"label":"~", "x":0, "y":0.25}, {"label":"!", "x":1, "y":0.25}, {"label":"@", "x":2, "y":0.25}, {"label":"#", "x":3, "y":0.25}, {"label":"$", "x":4, "y":0.25}, {"label":"%", "x":5, "y":0.25}, {"label":"^", "x":6, "y":0.25}, {"label":"&", "x":7, "y":0.25}, {"label":"*", "x":8, "y":0.25}, {"label":"(", "x":9, "y":0.25}, {"label":")", "x":10, "y":0.25}, {"label":"_", "x":11, "y":0.25}, {"label":"+", "x":12, "y":0.25}, {"x":13, "y":0.25}, {"x":14, "y":0.25}, {"label":"Num Lock", "x":16.5, "y":0.25}, {"label":"/", "x":17.5, "y":0.25}, {"label":"*", "x":18.5, "y":0.25}, {"label":"-", "x":19.5, "y":0.25}, {"label":"Tab", "x":0, "y":1.25, "w":1.5}, {"label":"Q", "x":1.5, "y":1.25}, {"label":"W", "x":2.5, "y":1.25}, {"label":"E", "x":3.5, "y":1.25}, {"label":"R", "x":4.5, "y":1.25}, {"label":"T", "x":5.5, "y":1.25}, {"label":"Y", "x":6.5, "y":1.25}, {"label":"U", "x":7.5, "y":1.25}, {"label":"I", "x":8.5, "y":1.25}, {"label":"O", "x":9.5, "y":1.25}, {"label":"P", "x":10.5, "y":1.25}, {"label":"{", "x":11.5, "y":1.25}, {"label":"}", "x":12.5, "y":1.25}, {"label":"|", "x":13.5, "y":1.25, "w":1.5}, {"label":"PgUp", "x":15.25, "y":1.25}, {"label":"7", "x":16.5, "y":1.25}, {"label":"8", "x":17.5, "y":1.25}, {"label":"9", "x":18.5, "y":1.25}, {"label":"+", "x":19.5, "y":1.25}, {"label":"Caps Lock", "x":0, "y":2.25, "w":1.75}, {"label":"A", "x":1.75, "y":2.25}, {"label":"S", "x":2.75, "y":2.25}, {"label":"D", "x":3.75, "y":2.25}, {"label":"F", "x":4.75, "y":2.25}, {"label":"G", "x":5.75, "y":2.25}, {"label":"H", "x":6.75, "y":2.25}, {"label":"J", "x":7.75, "y":2.25}, {"label":"K", "x":8.75, "y":2.25}, {"label":"L", "x":9.75, "y":2.25}, {"label":":", "x":10.75, "y":2.25}, {"label":"\"", "x":11.75, "y":2.25}, {"label":"Enter", "x":12.75, "y":2.25, "w":2.25}, {"label":"PgDn", "x":15.25, "y":2.25}, {"label":"4", "x":16.5, "y":2.25}, {"label":"5", "x":17.5, "y":2.25}, {"label":"6", "x":18.5, "y":2.25}, {"label":"+", "x":19.5, "y":2.25}, {"label":"Shift", "x":0, "y":3.25, "w":2.25}, {"label":"Z", "x":2.25, "y":3.25}, {"label":"X", "x":3.25, "y":3.25}, {"label":"C", "x":4.25, "y":3.25}, {"label":"V", "x":5.25, "y":3.25}, {"label":"B", "x":6.25, "y":3.25}, {"label":"N", "x":7.25, "y":3.25}, {"label":"M", "x":8.25, "y":3.25}, {"label":"<", "x":9.25, "y":3.25}, {"label":">", "x":10.25, "y":3.25}, {"label":"?", "x":11.25, "y":3.25}, {"label":"Shift", "x":12.25, "y":3.25, "w":2.75}, {"label":"1", "x":16.5, "y":3.25}, {"label":"2", "x":17.5, "y":3.25}, {"label":"3", "x":18.5, "y":3.25}, {"label":"Enter", "x":19.5, "y":3.25}, {"label":"\u2191", "x":15.25, "y":3.5}, {"label":"Ctrl", "x":0, "y":4.25, "w":1.25}, {"label":"Win", "x":1.25, "y":4.25}, {"label":"Alt", "x":2.25, "y":4.25, "w":1.25}, {"x":3.5, "y":4.25, "w":7}, {"label":"Ctrl", "x":10.5, "y":4.25, "w":1.25}, {"label":"Win", "x":11.75, "y":4.25}, {"label":"Alt", "x":12.75, "y":4.25, "w":1.25}, {"label":"0", "x":17.5, "y":4.25}, {"label":".", "x":18.5, "y":4.25}, {"label":"Enter", "x":19.5, "y":4.25}, {"label":"\u2190", "x":14.25, "y":4.5}, {"label":"\u2193", "x":15.25, "y":4.5}, {"label":"\u2192", "x":16.25, "y":4.5}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
/*
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||||
|
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||||
|
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||||
|
// entirely and just use numbers.
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
_FN1,
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_BASE] = LAYOUT_all(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_MPLY, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
|
||||||
|
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, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||||
|
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_NUBS, KC_ENT, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||||
|
KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN1] = LAYOUT_all(
|
||||||
|
RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, 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,56 @@
|
|||||||
|
/*
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||||
|
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||||
|
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||||
|
// entirely and just use numbers.
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
_FN1,
|
||||||
|
_FN2,
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_BASE] = LAYOUT_all(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_MPLY, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
|
||||||
|
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, KC_P7, KC_P8, KC_P9, KC_PPLS,
|
||||||
|
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_NUBS, KC_ENT, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_PPLS,
|
||||||
|
KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN1] = LAYOUT_all(
|
||||||
|
RESET , KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, 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_all(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, 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,34 @@
|
|||||||
|
/* Copyright 2020 QMK
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was auto-generated by:
|
||||||
|
* `qmk chibios-confmigrate -i keyboards/cannonkeys/db60/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h`
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include_next <mcuconf.h>
|
||||||
|
|
||||||
|
#undef STM32_I2C_USE_I2C1
|
||||||
|
#define STM32_I2C_USE_I2C1 TRUE
|
||||||
|
|
||||||
|
#undef STM32_PWM_USE_TIM3
|
||||||
|
#define STM32_PWM_USE_TIM3 TRUE
|
||||||
|
|
||||||
|
#undef STM32_SPI_USE_SPI2
|
||||||
|
#define STM32_SPI_USE_SPI2 TRUE
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# CannonKeys Balance
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
|
||||||
|
* Hardware Supported: STM32F072CBT6
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make cannonkeys/balance: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,29 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = STM32F072
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = stm32-dfu
|
||||||
|
|
||||||
|
# Wildcard to allow APM32 MCU
|
||||||
|
DFU_SUFFIX_ARGS = -p FFFF -v FFFF
|
||||||
|
|
||||||
|
# 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
|
||||||
|
ENCODER_ENABLE = yes
|
||||||
|
|
||||||
|
# Enter lower-power sleep mode when on the ChibiOS idle thread
|
||||||
|
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
|
||||||
@@ -6,13 +6,13 @@
|
|||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, \
|
||||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
|
||||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
|
||||||
k30, k31, k32, k33, k34, k36 , k37, k38, k39, k3a, k3b \
|
k30, k31, k32, k33, k34, k35 , k37, k38, k39, k3a, k3b \
|
||||||
) \
|
) \
|
||||||
{ \
|
{ \
|
||||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
|
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
|
||||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
|
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
|
||||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
|
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
|
||||||
{ k30, k31, k32, k33, k34, KC_NO, k36, k37, k38, k39, k3a, k3b } \
|
{ k30, k31, k32, k33, k34, k35, KC_NO, k37, k38, k39, k3a, k3b } \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define LAYOUT_ortho_4x12( \
|
#define LAYOUT_ortho_4x12( \
|
||||||
|
|||||||
@@ -7,14 +7,14 @@
|
|||||||
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
|
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, \
|
||||||
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
|
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, \
|
||||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \
|
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, \
|
||||||
k40, k41, k42, k43, k44, k46 , k47, k48, k49, k4a, k4b \
|
k40, k41, k42, k43, k44, k45 , k47, k48, k49, k4a, k4b \
|
||||||
) \
|
) \
|
||||||
{ \
|
{ \
|
||||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
|
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b }, \
|
||||||
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
|
{ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b }, \
|
||||||
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
|
{ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b }, \
|
||||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \
|
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b }, \
|
||||||
{ k40, k41, k42, k43, k44, KC_NO, k46, k47, k48, k49, k4a, k4b }, \
|
{ k40, k41, k42, k43, k44, k45, KC_NO, k47, k48, k49, k4a, k4b }, \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define LAYOUT_ortho_5x12( \
|
#define LAYOUT_ortho_5x12( \
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
/* Copyright 2020 QMK
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was auto-generated by:
|
||||||
|
* `qmk chibios-confmigrate -i keyboards/cannonkeys/savage65/chconf.h -r platforms/chibios/common/configs/chconf.h`
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define CH_CFG_ST_FREQUENCY 10000
|
||||||
|
|
||||||
|
#define CH_CFG_OPTIMIZE_SPEED FALSE
|
||||||
|
|
||||||
|
#define CH_CFG_USE_CONDVARS_TIMEOUT FALSE
|
||||||
|
|
||||||
|
#include_next <chconf.h>
|
||||||
|
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2015 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xCA04
|
||||||
|
#define PRODUCT_ID 0x0004
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER CannonKeys
|
||||||
|
#define PRODUCT Vicious40
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 4
|
||||||
|
#define MATRIX_COLS 12
|
||||||
|
|
||||||
|
#define MATRIX_COL_PINS { B0, A7, A5, B1, B2, B10, B11, A9, B6, B7, B8, B9 }
|
||||||
|
#define MATRIX_ROW_PINS { A15, B3, B4, B5 }
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define BACKLIGHT_PIN A6
|
||||||
|
#define BACKLIGHT_PWM_DRIVER PWMD3
|
||||||
|
#define BACKLIGHT_PWM_CHANNEL 1
|
||||||
|
#define BACKLIGHT_PAL_MODE 1
|
||||||
|
#define BACKLIGHT_LEVELS 6
|
||||||
|
#define BACKLIGHT_BREATHING
|
||||||
|
#define BREATHING_PERIOD 6
|
||||||
|
|
||||||
|
/* 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
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Feature disable options
|
||||||
|
* These options are also useful to firmware size reduction.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* disable debug print */
|
||||||
|
//#define NO_DEBUG
|
||||||
|
|
||||||
|
/* disable print */
|
||||||
|
//#define NO_PRINT
|
||||||
|
|
||||||
|
/* disable action features */
|
||||||
|
//#define NO_ACTION_LAYER
|
||||||
|
//#define NO_ACTION_TAPPING
|
||||||
|
//#define NO_ACTION_ONESHOT
|
||||||
|
//#define NO_ACTION_MACRO
|
||||||
|
//#define NO_ACTION_FUNCTION
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
/* Copyright 2020 QMK
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was auto-generated by:
|
||||||
|
* `qmk chibios-confmigrate -i keyboards/cannonkeys/savage65/halconf.h -r platforms/chibios/common/configs/halconf.h`
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define HAL_USE_PWM TRUE
|
||||||
|
|
||||||
|
#include_next <halconf.h>
|
||||||
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Vicious40",
|
||||||
|
"url": "https://cannonkeys.com",
|
||||||
|
"maintainer": "awkannan",
|
||||||
|
"width": 12.75,
|
||||||
|
"height": 4,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_default": {
|
||||||
|
"layout": [{"label":"Esc", "x":0, "y":0}, {"label":"Q", "x":1, "y":0}, {"label":"W", "x":2, "y":0}, {"label":"E", "x":3, "y":0}, {"label":"R", "x":4, "y":0}, {"label":"T", "x":5, "y":0}, {"label":"Y", "x":6, "y":0}, {"label":"U", "x":7, "y":0}, {"label":"I", "x":8, "y":0}, {"label":"O", "x":9, "y":0}, {"label":"P", "x":10, "y":0}, {"label":"Backspace", "x":11, "y":0, "w":1.75}, {"label":"Tab", "x":0, "y":1, "w":1.25}, {"label":"A", "x":1.25, "y":1}, {"label":"S", "x":2.25, "y":1}, {"label":"D", "x":3.25, "y":1}, {"label":"F", "x":4.25, "y":1}, {"label":"G", "x":5.25, "y":1}, {"label":"H", "x":6.25, "y":1}, {"label":"J", "x":7.25, "y":1}, {"label":"K", "x":8.25, "y":1}, {"label":"L", "x":9.25, "y":1}, {"label":":", "x":10.25, "y":1}, {"label":"Enter", "x":11.25, "y":1, "w":1.5}, {"label":"Shift", "x":0, "y":2, "w":1.75}, {"label":"Z", "x":1.75, "y":2}, {"label":"X", "x":2.75, "y":2}, {"label":"C", "x":3.75, "y":2}, {"label":"V", "x":4.75, "y":2}, {"label":"B", "x":5.75, "y":2}, {"label":"N", "x":6.75, "y":2}, {"label":"M", "x":7.75, "y":2}, {"label":"<", "x":8.75, "y":2}, {"label":">", "x":9.75, "y":2}, {"label":"Up", "x":10.75, "y":2}, {"label":"?", "x":11.75, "y":2}, {"label":"Ctrl", "x":0, "y":3}, {"label":"Super", "x":1, "y":3}, {"label":"Alt", "x":2, "y":3}, {"label":"Space", "x":3, "y":3, "w":2.25}, {"label":"Space", "x":5.25, "y":3, "w":1.25}, {"label":"Space", "x":6.5, "y":3, "w":2.75}, {"label":"Left", "x":9.75, "y":3}, {"label":"Down", "x":10.75, "y":3}, {"label":"Right", "x":11.75, "y":3}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
/*
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||||
|
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||||
|
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||||
|
// entirely and just use numbers.
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
_FN1,
|
||||||
|
_FN2
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_BASE] = LAYOUT_default(
|
||||||
|
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||||
|
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, LT(_FN1, KC_SPC), KC_SPC, LT(_FN2, KC_SPC), KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN1] = LAYOUT_default(
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_QUOT, KC_BSLS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN2] = LAYOUT_default(
|
||||||
|
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_INS,
|
||||||
|
KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_INC, BL_TOGG,
|
||||||
|
RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_BRTG
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
/*
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
// Each layer gets a name for readability, which is then used in the keymap matrix below.
|
||||||
|
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
|
||||||
|
// Layer names don't all need to be of the same length, obviously, and you can also skip them
|
||||||
|
// entirely and just use numbers.
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
_FN1,
|
||||||
|
_FN2,
|
||||||
|
_FN3
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_BASE] = LAYOUT_default(
|
||||||
|
KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||||
|
KC_TAB, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_SLSH,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, LT(_FN1, KC_SPC), KC_SPC, LT(_FN2, KC_SPC), KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN1] = LAYOUT_default(
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, KC_TRNS, KC_QUOT, KC_BSLS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN2] = LAYOUT_default(
|
||||||
|
KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_INS,
|
||||||
|
KC_TRNS, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_INC, BL_TOGG,
|
||||||
|
RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_BRTG
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN3] = LAYOUT_default(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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,28 @@
|
|||||||
|
/* Copyright 2020 QMK
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was auto-generated by:
|
||||||
|
* `qmk chibios-confmigrate -i keyboards/cannonkeys/savage65/mcuconf.h -r platforms/chibios/GENERIC_STM32_F072XB/configs/mcuconf.h`
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include_next <mcuconf.h>
|
||||||
|
|
||||||
|
#undef STM32_PWM_USE_TIM3
|
||||||
|
#define STM32_PWM_USE_TIM3 TRUE
|
||||||
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
# CannonKeys Vicious40
|
||||||
|
|
||||||
|
Vicious40 Keyboard
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Andrew Kannan](https://github.com/awkannan)
|
||||||
|
* Hardware Supported: STM32F072CBT6 or APM32F072CBT6
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make cannonkeys/vicious40: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,28 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = STM32F072
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = stm32-dfu
|
||||||
|
|
||||||
|
# Wildcard to allow APM32 MCU
|
||||||
|
DFU_SUFFIX_ARGS = -p FFFF -v FFFF
|
||||||
|
|
||||||
|
# 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 = yes # 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
|
||||||
@@ -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 "vicious40.h"
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
/* 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 XXXX KC_NO
|
||||||
|
|
||||||
|
#define LAYOUT_default( \
|
||||||
|
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, \
|
||||||
|
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, \
|
||||||
|
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, \
|
||||||
|
K300, K301, K302, K303, K304, K306, K309, K310, K311 \
|
||||||
|
) { \
|
||||||
|
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011 }, \
|
||||||
|
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111 }, \
|
||||||
|
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211 }, \
|
||||||
|
{ K300, K301, K302, K303, K304, XXXX, K306, XXXX, XXXX, K309, K310, K311 } \
|
||||||
|
}
|
||||||
Loaded 100 of 589 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user