Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d949932c08 | ||
|
|
2f9eb4cd22 | ||
|
|
bad662b830 | ||
|
|
c3ab20511d | ||
|
|
78362b1dc1 | ||
|
|
eb84f134c1 | ||
|
|
b3987d7b3a | ||
|
|
1f09fcaa69 | ||
|
|
b338a4d886 | ||
|
|
1fd2f2f022 | ||
|
|
c9c63806a7 | ||
|
|
5460489b51 | ||
|
|
ecb2121069 | ||
|
|
1272371f15 | ||
|
|
80d92525db | ||
|
|
297bda1c1f | ||
|
|
5772ac8bf6 | ||
|
|
958e3f85cb | ||
|
|
b139d34924 | ||
|
|
0ea476a311 | ||
|
|
8937c14514 | ||
|
|
92da1f0b97 | ||
|
|
a7cb1ceade | ||
|
|
42eeb315a5 | ||
|
|
ac3dfa742a | ||
|
|
e02f4798f9 | ||
|
|
cf4b493c24 | ||
|
|
220b1c9db4 | ||
|
|
346bfb2a05 | ||
|
|
0f0530c5a4 | ||
|
|
08acb7ab68 | ||
|
|
70ce4ba56f | ||
|
|
1b0272e801 | ||
|
|
22ceab9c08 | ||
|
|
930446fe96 | ||
|
|
dd763f2988 | ||
|
|
83c7c66e8c | ||
|
|
ec7abc2ce2 | ||
|
|
0b894ca99c | ||
|
|
cdb69da86e | ||
|
|
c18cbcc5ad | ||
|
|
c23e6dff78 | ||
|
|
4f4c6e04d9 | ||
|
|
057bc5da80 | ||
|
|
e4a0a5f4e1 | ||
|
|
993d4058a1 | ||
|
|
79f080a43f | ||
|
|
d57bd0f65c | ||
|
|
d9fe855923 | ||
|
|
df1467c86d | ||
|
|
7c81ae287c | ||
|
|
3710522549 | ||
|
|
1ff68165b8 | ||
|
|
33579efee3 | ||
|
|
588991af69 | ||
|
|
5aa55a7154 | ||
|
|
03090d6571 | ||
|
|
f99f46773e | ||
|
|
66de3308e5 | ||
|
|
0e542b297d | ||
|
|
c0df341f5c | ||
|
|
186b1b2ba2 | ||
|
|
4237d35e83 | ||
|
|
0d65bbaa44 | ||
|
|
70acf36d16 | ||
|
|
c59a81b792 | ||
|
|
3f5f6030f8 | ||
|
|
b21faf768e | ||
|
|
3b09add349 | ||
|
|
613e5752d7 | ||
|
|
4c82a40a0a | ||
|
|
86ea85e3ab | ||
|
|
3942b6f372 | ||
|
|
c72c01afd4 | ||
|
|
cb87f5fbeb |
No files matched your search
@@ -27,7 +27,6 @@
|
|||||||
# qmk-dfu QMK DFU (LUFA + blinkenlight)
|
# qmk-dfu QMK DFU (LUFA + blinkenlight)
|
||||||
# bootloadHID HIDBootFlash compatible (ATmega32A)
|
# bootloadHID HIDBootFlash compatible (ATmega32A)
|
||||||
# USBasp USBaspLoader (ATmega328P)
|
# USBasp USBaspLoader (ATmega328P)
|
||||||
# kiibohd Input:Club Kiibohd bootloader (only used on their boards)
|
|
||||||
#
|
#
|
||||||
# BOOTLOADER_SIZE can still be defined manually, but it's recommended
|
# BOOTLOADER_SIZE can still be defined manually, but it's recommended
|
||||||
# you add any possible configuration to this list
|
# you add any possible configuration to this list
|
||||||
@@ -90,18 +89,6 @@ ifeq ($(strip $(BOOTLOADER)), lufa-ms)
|
|||||||
BOOTLOADER_SIZE = 6144
|
BOOTLOADER_SIZE = 6144
|
||||||
FIRMWARE_FORMAT = bin
|
FIRMWARE_FORMAT = bin
|
||||||
endif
|
endif
|
||||||
ifeq ($(strip $(BOOTLOADER)), kiibohd)
|
|
||||||
OPT_DEFS += -DBOOTLOADER_KIIBOHD
|
|
||||||
ifeq ($(strip $(MCU)), MK20DX128)
|
|
||||||
MCU_LDSCRIPT = MK20DX128BLDR4
|
|
||||||
endif
|
|
||||||
ifeq ($(strip $(MCU)), MK20DX256)
|
|
||||||
MCU_LDSCRIPT = MK20DX256BLDR8
|
|
||||||
endif
|
|
||||||
|
|
||||||
DFU_ARGS = -d 1C11:B007
|
|
||||||
DFU_SUFFIX_ARGS = -v 1C11 -p B007
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef BOOTLOADER_SIZE
|
ifdef BOOTLOADER_SIZE
|
||||||
OPT_DEFS += -DBOOTLOADER_SIZE=$(strip $(BOOTLOADER_SIZE))
|
OPT_DEFS += -DBOOTLOADER_SIZE=$(strip $(BOOTLOADER_SIZE))
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ To finish the recording, press the `DYN_REC_STOP` layer button. You can also pre
|
|||||||
|
|
||||||
To replay the macro, press either `DYN_MACRO_PLAY1` or `DYN_MACRO_PLAY2`.
|
To replay the macro, press either `DYN_MACRO_PLAY1` or `DYN_MACRO_PLAY2`.
|
||||||
|
|
||||||
It is possible to replay a macro as part of a macro. It's ok to replay macro 2 while recording macro 1 and vice versa but never create recursive macros i.e. macro 1 that replays macro 1. If you do so and the keyboard will get unresponsive, unplug the keyboard and plug it again. You can disable this completly by defining `DYNAMIC_MACRO_NO_NESTING` in your `config.h` file.
|
It is possible to replay a macro as part of a macro. It's ok to replay macro 2 while recording macro 1 and vice versa but never create recursive macros i.e. macro 1 that replays macro 1. If you do so and the keyboard will get unresponsive, unplug the keyboard and plug it again. You can disable this completely by defining `DYNAMIC_MACRO_NO_NESTING` in your `config.h` file.
|
||||||
|
|
||||||
?> For the details about the internals of the dynamic macros, please read the comments in the `process_dynamic_macro.h` and `process_dynamic_macro.c` files.
|
?> For the details about the internals of the dynamic macros, please read the comments in the `process_dynamic_macro.h` and `process_dynamic_macro.c` files.
|
||||||
|
|
||||||
|
|||||||
@@ -377,6 +377,17 @@ rgblight_sethsv(HSV_GREEN, 2); // led 2
|
|||||||
|`rgblight_sethsv(h, s, v)` |Set effect range LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 |
|
|`rgblight_sethsv(h, s, v)` |Set effect range LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 |
|
||||||
|`rgblight_sethsv_noeeprom(h, s, v)` |Set effect range LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 (not written to EEPROM) |
|
|`rgblight_sethsv_noeeprom(h, s, v)` |Set effect range LEDs to the given HSV value where `h`/`s`/`v` are between 0 and 255 (not written to EEPROM) |
|
||||||
|
|
||||||
|
#### Speed functions
|
||||||
|
|Function |Description |
|
||||||
|
|--------------------------------------------|-------------|
|
||||||
|
|`rgblight_increase_speed()` |Increases the animation speed |
|
||||||
|
|`rgblight_increase_speed_noeeprom()` |Increases the animation speed (not written to EEPROM) |
|
||||||
|
|`rgblight_decrease_speed()` |Decreases the animation speed |
|
||||||
|
|`rgblight_decrease_speed_noeeprom()` |Decreases the animation speed (not written to EEPROM) |
|
||||||
|
|`rgblight_set_speed()` |Sets the speed. Value is between 0 and 255 |
|
||||||
|
|`rgblight_set_speed_noeeprom()` |Sets the speed. Value is between 0 and 255 (not written to EEPROM) |
|
||||||
|
|
||||||
|
|
||||||
#### layer functions
|
#### layer functions
|
||||||
|Function |Description |
|
|Function |Description |
|
||||||
|--------------------------------------------|-------------|
|
|--------------------------------------------|-------------|
|
||||||
|
|||||||
+2
-2
@@ -81,8 +81,8 @@ STM32 MCUs allows a variety of pins to be configured as I2C pins depending on th
|
|||||||
|--------------------------|----------------------------------------------------------------------------------------------|---------|
|
|--------------------------|----------------------------------------------------------------------------------------------|---------|
|
||||||
| `I2C1_SCL_BANK` | The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`) to use for SCL | `GPIOB` |
|
| `I2C1_SCL_BANK` | The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`) to use for SCL | `GPIOB` |
|
||||||
| `I2C1_SDA_BANK` | The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`) to use for SDA | `GPIOB` |
|
| `I2C1_SDA_BANK` | The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`) to use for SDA | `GPIOB` |
|
||||||
| `I2C1_SCL` | The pin number for the SCL pin (0-9) | `6` |
|
| `I2C1_SCL` | The pin number for the SCL pin (0-15) | `6` |
|
||||||
| `I2C1_SDA` | The pin number for the SDA pin (0-9) | `7` |
|
| `I2C1_SDA` | The pin number for the SDA pin (0-15) | `7` |
|
||||||
| `I2C1_BANK` (deprecated) | The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`), superceded by `I2C1_SCL_BANK`, `I2C1_SDA_BANK` | `GPIOB` |
|
| `I2C1_BANK` (deprecated) | The bank of pins (`GPIOA`, `GPIOB`, `GPIOC`), superceded by `I2C1_SCL_BANK`, `I2C1_SDA_BANK` | `GPIOB` |
|
||||||
|
|
||||||
The ChibiOS I2C driver configuration depends on STM32 MCU:
|
The ChibiOS I2C driver configuration depends on STM32 MCU:
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/* Copyright 2020 haierwangwei2005
|
||||||
|
*
|
||||||
|
* 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 "10bleoledhub.h"
|
||||||
|
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
/* Copyright 2020 haierwangwei2005
|
||||||
|
*
|
||||||
|
* 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, \
|
||||||
|
K10, K11, K12, \
|
||||||
|
K20, K21, K22, \
|
||||||
|
K30, K31, K32 \
|
||||||
|
) { \
|
||||||
|
{ K00, KC_NO, KC_NO }, \
|
||||||
|
{ K10, K11, K12 }, \
|
||||||
|
{ K20, K21, K22 }, \
|
||||||
|
{ K30, K31, K32 } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 haierwangwei2005
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
#define VENDOR_ID 0x7C88 // "hw" = haierwangwei2005
|
||||||
|
#define PRODUCT_ID 0x7C99 // "10b" = 10bleoledhub
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER haierwangwei2005
|
||||||
|
#define PRODUCT 10bleoledhub
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 4
|
||||||
|
#define MATRIX_COLS 3
|
||||||
|
#define MATRIX_ROW_PINS { F6, F5, F4, F1 }
|
||||||
|
#define MATRIX_COL_PINS { D6, D7, B5 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
#define DIODE_DIRECTION ROW2COL
|
||||||
|
|
||||||
|
#define SSD1306OLED
|
||||||
|
#define RGB_DI_PIN B7
|
||||||
|
|
||||||
|
#define RGBLED_NUM 4
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
|
||||||
|
|
||||||
|
#define OLED_FONT_H "./lib/glcdfont.c"
|
||||||
|
|
||||||
|
#define ENCODERS_PAD_A { C7 }
|
||||||
|
#define ENCODERS_PAD_B { F7 }
|
||||||
|
|
||||||
|
#define ENCODER_RESOLUTION 4
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "10bleoledhub",
|
||||||
|
"url": "https://github.com/haierwangwei2005/10BLE-OLED-HUB",
|
||||||
|
"maintainer": "haierwangwei2005",
|
||||||
|
|
||||||
|
"width": 4,
|
||||||
|
"height": 3,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"Num Lock", "x":0, "y":0, "w":0.8, "h":0.8},
|
||||||
|
{"label":"7", "x":0, "y":1},
|
||||||
|
{"label":"8", "x":1, "y":1},
|
||||||
|
{"label":"9", "x":2, "y":1},
|
||||||
|
{"label":"4", "x":0, "y":2},
|
||||||
|
{"label":"5", "x":1, "y":2},
|
||||||
|
{"label":"6", "x":2, "y":2},
|
||||||
|
{"label":"1", "x":0, "y":3},
|
||||||
|
{"label":"2", "x":1, "y":3},
|
||||||
|
{"label":"3", "x":2, "y":3}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 haierwangwei2005
|
||||||
|
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/>.*/
|
||||||
|
/* Keymap _0: (Base Layer) Default Layer
|
||||||
|
|
||||||
|
* .-----.
|
||||||
|
* |PGUP |
|
||||||
|
* |-----------------.
|
||||||
|
* | 7 | 8 | 9 |
|
||||||
|
* |-----|-----|-----|
|
||||||
|
* | 4 | 5 | 6 |
|
||||||
|
* |-----|-----|-----|
|
||||||
|
* | 1 | 2 | 3 |
|
||||||
|
* .-----------------.
|
||||||
|
*/
|
||||||
|
/* Keymap _1: (Second Layer) second Layer
|
||||||
|
|
||||||
|
* .-------.
|
||||||
|
* |NUMLOCK|
|
||||||
|
* |-----------------------.
|
||||||
|
* |RGB_TOG|RGB_MOD|RGB_M_K|
|
||||||
|
* |-------|-------|-------|
|
||||||
|
* |RGB_SAI|RGB_SAD|RGB_HUI|
|
||||||
|
* |-------|-------|-------|
|
||||||
|
* |RGB_VAI|RGB_VAD|RGB_SPI|
|
||||||
|
* .-----------------------.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_PGUP,
|
||||||
|
KC_KP_7, KC_KP_8, MO(1),
|
||||||
|
KC_P4, KC_P5, KC_P6,
|
||||||
|
KC_P1, KC_P2, KC_P3),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
KC_NUMLOCK,
|
||||||
|
RGB_TOG, RGB_MOD, RGB_M_K,
|
||||||
|
RGB_SAI, RGB_SAD, RGB_HUI,
|
||||||
|
RGB_VAI, RGB_VAD, RGB_SPI),
|
||||||
|
};
|
||||||
|
|
||||||
|
static void render_logo(void) {
|
||||||
|
static const char PROGMEM qmk_logo[] = {0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0};
|
||||||
|
oled_write_P(qmk_logo, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef OLED_DRIVER_ENABLE
|
||||||
|
void oled_task_user(void) { render_logo(); }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
if (index == 0) { /* First encoder */
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_PGDN);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_PGUP);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void matrix_init_user(void) { render_logo(); }
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 haierwangwei2005
|
||||||
|
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/>.*/
|
||||||
|
/* Keymap _0: (Base Layer) Default Layer
|
||||||
|
|
||||||
|
* .-----.
|
||||||
|
* |PGUP |
|
||||||
|
* |-----------------.
|
||||||
|
* | 7 | 8 | 9 |
|
||||||
|
* |-----|-----|-----|
|
||||||
|
* | 4 | 5 | 6 |
|
||||||
|
* |-----|-----|-----|
|
||||||
|
* | 1 | 2 | 3 |
|
||||||
|
* .-----------------.
|
||||||
|
*/
|
||||||
|
/* Keymap _1: (Second Layer) second Layer
|
||||||
|
|
||||||
|
* .-------.
|
||||||
|
* |NUMLOCK|
|
||||||
|
* |-----------------------.
|
||||||
|
* |RGB_TOG|RGB_MOD|RGB_M_K|
|
||||||
|
* |-------|-------|-------|
|
||||||
|
* |RGB_SAI|RGB_SAD|RGB_HUI|
|
||||||
|
* |-------|-------|-------|
|
||||||
|
* |RGB_VAI|RGB_VAD|RGB_SPI|
|
||||||
|
* .-----------------------.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_PGUP,
|
||||||
|
KC_KP_7, KC_KP_8, MO(1),
|
||||||
|
KC_P4, KC_P5, KC_P6,
|
||||||
|
KC_P1, KC_P2, KC_P3),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
KC_NUMLOCK,
|
||||||
|
RGB_TOG, RGB_MOD, RGB_M_K,
|
||||||
|
RGB_SAI, RGB_SAD, RGB_HUI,
|
||||||
|
RGB_VAI, RGB_VAD, RGB_SPI),
|
||||||
|
};
|
||||||
|
|
||||||
|
static void render_logo(void) {
|
||||||
|
static const char PROGMEM qmk_logo[] = {0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0};
|
||||||
|
oled_write_P(qmk_logo, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef OLED_DRIVER_ENABLE
|
||||||
|
void oled_task_user(void) { render_logo(); }
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
if (index == 0) { /* First encoder */
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_PGDN);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_PGUP);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void matrix_init_user(void) { render_logo(); }
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
|
LTO_ENABLE = yes
|
||||||
@@ -0,0 +1,241 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 haierwangwei2005
|
||||||
|
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 "progmem.h"
|
||||||
|
// Standard ASCII 5x7 font
|
||||||
|
const unsigned char font[] PROGMEM = {
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
|
||||||
|
0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
|
||||||
|
0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
|
||||||
|
0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
|
||||||
|
0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
|
||||||
|
0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
|
||||||
|
0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
|
||||||
|
0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
|
||||||
|
0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
|
||||||
|
0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
|
||||||
|
0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
|
||||||
|
0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
|
||||||
|
0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
|
||||||
|
0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
|
||||||
|
0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
|
||||||
|
0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
|
||||||
|
0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
|
||||||
|
0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
|
||||||
|
0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
|
||||||
|
0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
|
||||||
|
0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
|
||||||
|
0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
|
||||||
|
0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
|
||||||
|
0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
|
||||||
|
0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
|
||||||
|
0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
|
||||||
|
0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
|
||||||
|
0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
|
||||||
|
0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
|
||||||
|
0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
|
||||||
|
0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
|
||||||
|
0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
|
||||||
|
0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
|
||||||
|
0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
|
||||||
|
0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
|
||||||
|
0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
|
||||||
|
0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
|
||||||
|
0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
|
||||||
|
0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
|
||||||
|
0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
|
||||||
|
0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
|
||||||
|
0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
|
||||||
|
0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
|
||||||
|
0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
|
||||||
|
0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
|
||||||
|
0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
|
||||||
|
0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
|
||||||
|
0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
|
||||||
|
0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
|
||||||
|
0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
|
||||||
|
0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
|
||||||
|
0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
|
||||||
|
0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
|
||||||
|
0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
|
||||||
|
0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
|
||||||
|
0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
|
||||||
|
0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
|
||||||
|
0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
|
||||||
|
0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
|
||||||
|
0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
|
||||||
|
0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
|
||||||
|
0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
|
||||||
|
0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
|
||||||
|
0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
|
||||||
|
0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
|
||||||
|
0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
|
||||||
|
0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
|
||||||
|
0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
|
||||||
|
0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
|
||||||
|
0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
|
||||||
|
0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
|
||||||
|
0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
|
||||||
|
0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
|
||||||
|
0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
|
||||||
|
0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
|
||||||
|
0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
|
||||||
|
0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
|
||||||
|
0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
|
||||||
|
0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
|
||||||
|
0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
|
||||||
|
0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
|
||||||
|
0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
|
||||||
|
0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
|
||||||
|
0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
|
||||||
|
0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
|
||||||
|
0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
|
||||||
|
0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
|
||||||
|
0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
|
||||||
|
0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
|
||||||
|
0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
|
||||||
|
0x00, 0x03, 0x07, 0x08, 0x00, 0x00,
|
||||||
|
0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
|
||||||
|
0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
|
||||||
|
0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
|
||||||
|
0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
|
||||||
|
0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
|
||||||
|
0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
|
||||||
|
0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
|
||||||
|
0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
|
||||||
|
0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
|
||||||
|
0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
|
||||||
|
0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
|
||||||
|
0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
|
||||||
|
0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
|
||||||
|
0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
|
||||||
|
0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
|
||||||
|
0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
|
||||||
|
0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
|
||||||
|
0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
|
||||||
|
0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
|
||||||
|
0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
|
||||||
|
0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
|
||||||
|
0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
|
||||||
|
0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
|
||||||
|
0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
|
||||||
|
0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
|
||||||
|
0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
|
||||||
|
0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
|
||||||
|
0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
|
||||||
|
0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xF8, 0xF8, 0x58, 0x58, 0x5E,
|
||||||
|
0xDA, 0x5A, 0x5B, 0x59, 0xDB, 0x5A,
|
||||||
|
0x5B, 0x58, 0xD8, 0x58, 0x58, 0x58,
|
||||||
|
0xD8, 0x58, 0x58, 0x58, 0xD8, 0x58,
|
||||||
|
0x58, 0x58, 0xD8, 0x58, 0x58, 0x58,
|
||||||
|
0xD8, 0x58, 0x58, 0x78, 0xF8, 0xF8,
|
||||||
|
0xF8, 0x78, 0x78, 0x78, 0xF8, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x44, 0x28, 0xFF, 0x5A, 0x24,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0xFF, 0xFF, 0x44, 0x55, 0x44,
|
||||||
|
0xFF, 0x44, 0x55, 0x44, 0xFF, 0x44,
|
||||||
|
0x55, 0x44, 0xFF, 0x44, 0x55, 0x44,
|
||||||
|
0xFF, 0x44, 0x55, 0x44, 0xFF, 0x44,
|
||||||
|
0x55, 0x44, 0xFF, 0x44, 0x55, 0x44,
|
||||||
|
0xFF, 0x44, 0x55, 0x44, 0xFF, 0xFF,
|
||||||
|
0xFF, 0xC4, 0xD5, 0xC4, 0xFF, 0x00,
|
||||||
|
0x00, 0xFE, 0x21, 0x61, 0xA1, 0x1E,
|
||||||
|
0x00, 0xFE, 0x01, 0x21, 0x21, 0xEF,
|
||||||
|
0x00, 0xFF, 0x11, 0x11, 0x11, 0xFE,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xFF, 0x11, 0x11, 0x11, 0xFE, 0x00,
|
||||||
|
0xFF, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0xFF, 0x00, 0x00, 0x00, 0xFF, 0x00,
|
||||||
|
0xFF, 0x11, 0x11, 0x11, 0x01, 0x00,
|
||||||
|
0x01, 0x01, 0xFF, 0x01, 0x01, 0x00,
|
||||||
|
0xFF, 0x01, 0x01, 0xFF, 0x00, 0xFF,
|
||||||
|
0x01, 0x01, 0xFF, 0x00, 0x01, 0x01,
|
||||||
|
0xFF, 0x01, 0x01, 0x00, 0xFF, 0x20,
|
||||||
|
0x20, 0x20, 0xFF, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x7F, 0x7F, 0x44, 0x55, 0x44,
|
||||||
|
0x7F, 0x44, 0x55, 0x54, 0x57, 0x54,
|
||||||
|
0x55, 0x54, 0x57, 0x54, 0x55, 0x54,
|
||||||
|
0x57, 0x54, 0x55, 0x54, 0x57, 0x54,
|
||||||
|
0x45, 0x7C, 0x47, 0x54, 0x45, 0x7C,
|
||||||
|
0x7F, 0x7C, 0x45, 0x54, 0x57, 0x50,
|
||||||
|
0x5E, 0x50, 0x57, 0x47, 0x7F, 0x00,
|
||||||
|
0x00, 0x03, 0x00, 0x00, 0x00, 0x03,
|
||||||
|
0x00, 0x01, 0x02, 0x02, 0x02, 0x03,
|
||||||
|
0x00, 0x03, 0x02, 0x02, 0x02, 0x01,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0x02, 0x02, 0x02, 0x01, 0x00,
|
||||||
|
0x03, 0x02, 0x02, 0x02, 0x02, 0x00,
|
||||||
|
0x03, 0x02, 0x02, 0x02, 0x03, 0x00,
|
||||||
|
0x03, 0x02, 0x02, 0x02, 0x02, 0x00,
|
||||||
|
0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0x02, 0x02, 0x03, 0x00, 0x03,
|
||||||
|
0x02, 0x02, 0x03, 0x00, 0x00, 0x30,
|
||||||
|
0x2B, 0x7C, 0x20, 0x40, 0x03, 0x7C,
|
||||||
|
0x44, 0x7C, 0x03, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
};
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
# 10bleoledhub
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
10 BLE OLED HUB
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [haierwangwei2005](https://github.com/haierwangwei2005)
|
||||||
|
* Hardware Availability: https://github.com/haierwangwei2005/10bleoled-hub
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make 10bleoledhub: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 = atmega32u4
|
||||||
|
|
||||||
|
# Processor frequency
|
||||||
|
F_CPU = 8000000
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = caterina
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
BLUETOOTH = AdafruitBLE
|
||||||
|
OLED_DRIVER_ENABLE = yes
|
||||||
|
ENCODER_ENABLE = yes
|
||||||
@@ -20,8 +20,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "config_common.h"
|
#include "config_common.h"
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0xFEED
|
#define VENDOR_ID 0x6F75 // "ou"
|
||||||
#define PRODUCT_ID 0x2010
|
#define PRODUCT_ID 0x5516 // "U" 16
|
||||||
#define DEVICE_VER 0x0001
|
#define DEVICE_VER 0x0001
|
||||||
#define MANUFACTURER 1upkeyboards
|
#define MANUFACTURER 1upkeyboards
|
||||||
#define PRODUCT super16
|
#define PRODUCT super16
|
||||||
|
|||||||
@@ -0,0 +1,37 @@
|
|||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_ortho_4x4(
|
||||||
|
KC_7, KC_8, KC_9, KC_ASTR,
|
||||||
|
KC_4, KC_5, KC_6, KC_SLSH,
|
||||||
|
KC_1, KC_2, KC_3, KC_MINS,
|
||||||
|
KC_0, KC_ENT, KC_DOT, MO(1)
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT_ortho_4x4(
|
||||||
|
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
|
||||||
|
),
|
||||||
|
|
||||||
|
[2] = LAYOUT_ortho_4x4(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
[3] = LAYOUT_ortho_4x4(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
|
LTO_ENABLE = yes
|
||||||
Executable
+47
@@ -0,0 +1,47 @@
|
|||||||
|
/* Copyright 2018 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* 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 0x4145 // AE
|
||||||
|
#define PRODUCT_ID 0x065C // 65 - Constellation
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER AEBoards
|
||||||
|
#define PRODUCT AEBoards Constellation
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 15
|
||||||
|
|
||||||
|
/* key matrix pins */
|
||||||
|
#define MATRIX_ROW_PINS { B0, B1, F0, F1, F4 }
|
||||||
|
#define MATRIX_COL_PINS { E6, D5, B2, B3, D3, F6, F7, C7, C6, B6, B5, B4, D7, D6, D4 }
|
||||||
|
#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
|
||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
/* Copyright 2018 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Nothing to see here, move along... ;-)
|
||||||
|
|
||||||
|
#include "constellation.h"
|
||||||
+35
@@ -0,0 +1,35 @@
|
|||||||
|
/* Copyright 2018 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define ____ KC_NO
|
||||||
|
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K213, K014, \
|
||||||
|
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \
|
||||||
|
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K214, \
|
||||||
|
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K312, K313, K314, \
|
||||||
|
K400, K401, K402, K408, K409, K410, K412, K413, K414 \
|
||||||
|
) { \
|
||||||
|
{ K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \
|
||||||
|
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \
|
||||||
|
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \
|
||||||
|
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, ____, K312, K313, K314 }, \
|
||||||
|
{ K400, K401, K402, ____, ____, ____, ____, ____, K408, K409, K410, ____, K412, K413, K414 } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
/* Copyright 2018 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
[0] = 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_DEL, KC_HOME,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP,
|
||||||
|
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
|
// Fn1 Layer
|
||||||
|
[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_INS, KC_DEL, RESET,
|
||||||
|
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
# The Default Constellation Layout
|
||||||
|
|
||||||
+52
@@ -0,0 +1,52 @@
|
|||||||
|
/* Copyright 2018 Jason Williams (Wilba)
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
[0] = 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_DEL, KC_HOME,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_PGUP,
|
||||||
|
KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGDN,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
|
// Fn1 Layer
|
||||||
|
[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_INS, KC_DEL, KC_TRNS,
|
||||||
|
KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_EJCT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 Layer
|
||||||
|
[2] = 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),
|
||||||
|
|
||||||
|
// Fn3 Layer
|
||||||
|
[3] = 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),
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
# The VIA Constellation Layout
|
||||||
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
Executable
+13
@@ -0,0 +1,13 @@
|
|||||||
|
# CONSTELLATION
|
||||||
|
|
||||||
|
A gasket 65% keyboard by [aeboards](https://aeboards.com/)
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Xelus22](https://github.com/Xelus22)
|
||||||
|
* Hardware Supported: CONSTELLATION
|
||||||
|
* Hardware Availability: Custom keyboard group buys
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make aeboards/constellation: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).
|
||||||
Executable
+22
@@ -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 = 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
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
LTO_ENABLE = yes
|
||||||
@@ -28,6 +28,31 @@
|
|||||||
{"x":2, "y":4},
|
{"x":2, "y":4},
|
||||||
{"x":3, "y":4}
|
{"x":3, "y":4}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_numpad_5x4": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
|
||||||
|
{"x":0, "y":1},
|
||||||
|
{"x":1, "y":1},
|
||||||
|
{"x":2, "y":1},
|
||||||
|
|
||||||
|
{"x":0, "y":2},
|
||||||
|
{"x":1, "y":2},
|
||||||
|
{"x":2, "y":2},
|
||||||
|
{"x":3, "y":1, "h":2},
|
||||||
|
|
||||||
|
{"x":0, "y":3},
|
||||||
|
{"x":1, "y":3},
|
||||||
|
{"x":2, "y":3},
|
||||||
|
|
||||||
|
{"x":0, "y":4, "w":2},
|
||||||
|
{"x":2, "y":4},
|
||||||
|
{"x":3, "y":3, "h":2}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 Salicylic_Acid
|
||||||
|
|
||||||
|
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 "ajisai74.h"
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 Salicylic_Acid
|
||||||
|
|
||||||
|
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"
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ,------------------------------------ ------------------------------------------------------------.
|
||||||
|
* | L00 | L01 | L02 | L03 | L04 | L05 | | R00 | R01 | R02 | R03 | R04 | R05 | R06 | R07 | R08 | R18 |
|
||||||
|
* |---------------------------------------------------------------------------------------------------+
|
||||||
|
* | L10 | L11 | L12 | L13 | L14 | L15 | | R10 | R11 | R12 | R13 | R14 | R15 | R16 | R17 | R28 |
|
||||||
|
* |---------------------------------------- ---------------------------------------------------------+
|
||||||
|
* | L20 | L21 | L22 | L23 | L24 | L25 | | R20 | R21 | R22 | R23 | R24 | R25 | R26 | R27 | R38 |
|
||||||
|
* |---------------------------------------------------------------------------------------------------+
|
||||||
|
* | L30 | L45 | L31 | L32 | L33 | L34 | L35 | | R30 | R31 | R32 | R33 | R34 | R35 | R36 | R37 |
|
||||||
|
* |------------------------------------------- -----------------------------------------------------+
|
||||||
|
* | L40 | L41 | L42 | L43 | L44 | | R40 | R41 | R42 | R43 | R44 | | R46 | R47 | R48 |
|
||||||
|
* |---------------------------------------- --------------------------------------------------------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define LAYOUT( \
|
||||||
|
L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, R06, R07, R08, R18, \
|
||||||
|
L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, R16, R17, R28, \
|
||||||
|
L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, R26, R27, R38, \
|
||||||
|
L30, L45, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, R36, R37, \
|
||||||
|
L40, L41, L42, L43, L44, R40, R41, R42, R43, R44, R46, R47, R48 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ L00, L01, L02, L03, L04, L05, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ L10, L11, L12, L13, L14, L15, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ L20, L21, L22, L23, L24, L25, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ L30, L31, L32, L33, L34, L35, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ L40, L41, L42, L43, L44, L45, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ R00, R01, R02, R03, R04, R05, R06, R07, R08 }, \
|
||||||
|
{ R10, R11, R12, R13, R14, R15, R16, R17, R18 }, \
|
||||||
|
{ R20, R21, R22, R23, R24, R25, R26, R27, R28 }, \
|
||||||
|
{ R30, R31, R32, R33, R34, R35, R36, R37, R38 }, \
|
||||||
|
{ R40, R41, R42, R43, R44, KC_NO, R46, R47, R48 } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 Salicylic_Acid
|
||||||
|
|
||||||
|
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 0x04D8
|
||||||
|
#define PRODUCT_ID 0xEB54
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER Salicylic_Acid
|
||||||
|
#define PRODUCT ajisai74
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 10
|
||||||
|
#define MATRIX_COLS 9
|
||||||
|
|
||||||
|
// wiring of each half
|
||||||
|
#define MATRIX_ROW_PINS { D4, C6, D7, E6, B4 }
|
||||||
|
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1, B3, B2, B5, D3 }
|
||||||
|
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* Set 0 if debouncing isn't needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* serial.c configuration for split keyboard */
|
||||||
|
#define SOFT_SERIAL_PIN D2
|
||||||
|
#define SPLIT_HAND_PIN B6
|
||||||
|
|
||||||
|
/* 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,86 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "ajisai74",
|
||||||
|
"url": "https://salicylic-acid3.hatenablog.com/",
|
||||||
|
"maintainer": "Salicylic_acid3",
|
||||||
|
"width": 16.75,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"ESC", "x":0, "y":0},
|
||||||
|
{"label":"1", "x":1, "y":0},
|
||||||
|
{"label":"2", "x":2, "y":0},
|
||||||
|
{"label":"3", "x":3, "y":0},
|
||||||
|
{"label":"4", "x":4, "y":0},
|
||||||
|
{"label":"5", "x":5, "y":0},
|
||||||
|
{"label":"6", "x":6.75, "y":0},
|
||||||
|
{"label":"7", "x":7.75, "y":0},
|
||||||
|
{"label":"8", "x":8.75, "y":0},
|
||||||
|
{"label":"9", "x":9.75, "y":0},
|
||||||
|
{"label":"0", "x":10.75, "y":0},
|
||||||
|
{"label":"-", "x":11.75, "y":0},
|
||||||
|
{"label":"=", "x":12.75, "y":0},
|
||||||
|
{"label":"Back", "x":13.75, "y":0},
|
||||||
|
{"label":"Back", "x":14.75, "y":0},
|
||||||
|
{"label":"Insert", "x":15.75, "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":7.25, "y":1},
|
||||||
|
{"label":"U", "x":8.25, "y":1},
|
||||||
|
{"label":"I", "x":9.25, "y":1},
|
||||||
|
{"label":"O", "x":10.25, "y":1},
|
||||||
|
{"label":"P", "x":11.25, "y":1},
|
||||||
|
{"label":"[", "x":12.25, "y":1},
|
||||||
|
{"label":"]", "x":13.25, "y":1},
|
||||||
|
{"label":"\"", "x":14.25, "y":1, "w":1.5},
|
||||||
|
{"label":"Del", "x":15.75, "y":1},
|
||||||
|
{"label":"CapsLock", "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":7.5, "y":2},
|
||||||
|
{"label":"J", "x":8.5, "y":2},
|
||||||
|
{"label":"K", "x":9.5, "y":2},
|
||||||
|
{"label":"L", "x":10.5, "y":2},
|
||||||
|
{"label":":", "x":11.5, "y":2},
|
||||||
|
{"label":"'", "x":12.5, "y":2},
|
||||||
|
{"label":"Return", "x":13.5, "y":2},
|
||||||
|
{"label":"Return", "x":14.5, "y":2, "w":1.25},
|
||||||
|
{"label":"PgUp", "x":15.75, "y":2},
|
||||||
|
{"label":"Shift", "x":0, "y":3, "w":1.25},
|
||||||
|
{"label":"Shift", "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":8, "y":3},
|
||||||
|
{"label":"M", "x":9, "y":3},
|
||||||
|
{"label":"<", "x":10, "y":3},
|
||||||
|
{"label":">", "x":11, "y":3},
|
||||||
|
{"label":"?", "x":12, "y":3},
|
||||||
|
{"label":"Shift", "x":13, "y":3, "w":1.75},
|
||||||
|
{"label":"Up", "x":14.75, "y":3},
|
||||||
|
{"label":"PgDwn", "x":15.75, "y":3},
|
||||||
|
{"label":"Ctrl", "x":0, "y":4, "w":1.5},
|
||||||
|
{"label":"Win", "x":1.5, "y":4},
|
||||||
|
{"label":"Alt", "x":2.5, "y":4, "w":1.5},
|
||||||
|
{"x":4, "y":4, "w":1.5},
|
||||||
|
{"x":5.5, "y":4, "w":1.25},
|
||||||
|
{"x":7.5, "y":4, "w":1.25},
|
||||||
|
{"x":8.75, "y":4, "w":1.25},
|
||||||
|
{"label":"Alt", "x":10, "y":4, "w":1.25},
|
||||||
|
{"label":"Win", "x":11.25, "y":4},
|
||||||
|
{"label":"Fn", "x":12.25, "y":4},
|
||||||
|
{"label":"Left", "x":13.75, "y":4},
|
||||||
|
{"label":"Down", "x":14.75, "y":4},
|
||||||
|
{"label":"Right", "x":15.75, "y":4}]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
/* Copyright 2020 Salicylic_acid3
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
/* Select hand configuration */
|
||||||
|
|
||||||
|
#define TAPPING_FORCE_HOLD
|
||||||
|
#define TAPPING_TERM 180
|
||||||
@@ -0,0 +1,58 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 Salicylic_Acid
|
||||||
|
|
||||||
|
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_number {
|
||||||
|
_QWERTY = 0,
|
||||||
|
_FN,
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_QWERTY] = LAYOUT(
|
||||||
|
//,-----------------------------------------------------| |-----------------------------------------------------------------------------------------.
|
||||||
|
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_BSPC, KC_INS,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_ENT, KC_ENT, KC_PGUP,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_LSFT,KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_LCTRL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, MO(_FN), KC_LEFT, KC_DOWN,KC_RIGHT
|
||||||
|
//|-----------------------------------------------------| |--------------------------------------------------------------------------------'
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN] = LAYOUT(
|
||||||
|
//,-----------------------------------------------------| |-----------------------------------------------------------------------------------------.
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_STOP, KC_SLCK,KC_PAUSE,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
//|-----------------------------------------------------| |--------------------------------------------------------------------------------'
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
/* Copyright 2020 Salicylic_acid3
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
/* Select hand configuration */
|
||||||
|
|
||||||
|
#define TAPPING_FORCE_HOLD
|
||||||
|
#define TAPPING_TERM 180
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 Salicylic_Acid
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
#include "keymap_jp.h"
|
||||||
|
// 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_number {
|
||||||
|
_QWERTY = 0,
|
||||||
|
_FN,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum tapdances{
|
||||||
|
TD_ENT = 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||||
|
[TD_ENT] = ACTION_TAP_DANCE_DOUBLE(KC_ENT, KC_ENT),
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_QWERTY] = LAYOUT(
|
||||||
|
//,-----------------------------------------------------| |-----------------------------------------------------------------------------------------.
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, JP_MINS, JP_EQL, JP_YEN, KC_BSPC, KC_DEL,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_AT, JP_LBRC,TD(TD_ENT),KC_PSCR,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_SCLN, JP_QUOT, JP_RBRC,TD(TD_ENT),KC_PGUP,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_LSFT,JP_BSLS,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, JP_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_LCTRL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC, KC_SPC, KC_HENK, KC_KANA, KC_APP, MO(_FN), KC_LEFT, KC_DOWN,KC_RIGHT
|
||||||
|
//|-----------------------------------------------------| |--------------------------------------------------------------------------------'
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN] = LAYOUT(
|
||||||
|
//,-----------------------------------------------------| |-----------------------------------------------------------------------------------------.
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_STOP, KC_SLCK,KC_PAUSE,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
//|-----------------------------------------------------| |--------------------------------------------------------------------------------'
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
TAP_DANCE_ENABLE = yes
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
/* Copyright 2020 Salicylic_acid3
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
/* Select hand configuration */
|
||||||
|
|
||||||
|
#define TAPPING_FORCE_HOLD
|
||||||
|
#define TAPPING_TERM 180
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 Salicylic_Acid
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
#include "keymap_jp.h"
|
||||||
|
// 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_number {
|
||||||
|
_QWERTY = 0,
|
||||||
|
_LOWER,
|
||||||
|
_RAISE,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum tapdances{
|
||||||
|
TD_ENT = 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
qk_tap_dance_action_t tap_dance_actions[] = {
|
||||||
|
[TD_ENT] = ACTION_TAP_DANCE_DOUBLE(KC_ENT, KC_ENT),
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_QWERTY] = LAYOUT(
|
||||||
|
//,-----------------------------------------------------| |-----------------------------------------------------------------------------------------.
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, JP_MINS, JP_EQL, KC_END, KC_HOME, KC_PSCR,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, JP_LBRC, JP_RBRC, KC_BSPC, KC_DEL,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_LCTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, JP_MINS, JP_BSLS,TD(TD_ENT),TD(TD_ENT),KC_PGUP,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_LSFT,KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, JP_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_ZKHK, KC_LGUI, KC_MHEN,LT(_LOWER,KC_ENT), KC_BSPC, KC_DEL,LT(_RAISE,KC_SPC),KC_HENK,KC_LALT,KC_APP, KC_LEFT, KC_DOWN,KC_RIGHT
|
||||||
|
//|-----------------------------------------------------| |--------------------------------------------------------------------------------'
|
||||||
|
),
|
||||||
|
|
||||||
|
[_LOWER] = LAYOUT(
|
||||||
|
//,-----------------------------------------------------| |-----------------------------------------------------------------------------------------.
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
JP_DQUO, JP_EXLM, JP_QUES, JP_LBRC, JP_RBRC, JP_TILD, KC_P6, KC_P7, KC_P8, KC_P9, JP_ASTR, JP_SLSH, _______, _______, _______,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
JP_QUOT, JP_HASH, JP_DQT, JP_LPRN, JP_RPRN, JP_AT, XXXXXXX, KC_P4, KC_P5, KC_P6, JP_MINS, JP_EQL, _______, _______, _______,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______,JP_CIRC,JP_PERC,JP_AMPR,JP_SCLN, JP_COLN, JP_PIPE, KC_P0, KC_P1, KC_P2, KC_P3, JP_PLUS, _______, _______, _______,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______, _______, _______,MO(_LOWER), _______, _______,MO(_RAISE), JP_DOT, _______, _______, _______, _______, _______
|
||||||
|
//|-----------------------------------------------------| |--------------------------------------------------------------------------------'
|
||||||
|
),
|
||||||
|
|
||||||
|
[_RAISE] = LAYOUT(
|
||||||
|
//,-----------------------------------------------------| |-----------------------------------------------------------------------------------------.
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
LCTL_T(KC_F11),XXXXXXX, KC_F2, KC_F3, KC_F4, KC_F5, XXXXXXX, KC_LEFT, KC_DOWN,KC_RIGHT, XXXXXXX, XXXXXXX, _______, _______, _______,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______,SFT_T(KC_F12),KC_F6,KC_F7, KC_F8, KC_F9, KC_F10, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
//|-----------------------------------------------------| |--------------------------------------------------------------------------------'
|
||||||
|
),
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
TAP_DANCE_ENABLE = yes
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
/* Copyright 2020 Salicylic_acid3
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
/* Select hand configuration */
|
||||||
|
|
||||||
|
#define TAPPING_FORCE_HOLD
|
||||||
|
#define TAPPING_TERM 180
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 Salicylic_Acid
|
||||||
|
|
||||||
|
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_number {
|
||||||
|
_BASE = 0,
|
||||||
|
_L1,
|
||||||
|
_L2,
|
||||||
|
_L3,
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_BASE] = LAYOUT(
|
||||||
|
//,-----------------------------------------------------| |-----------------------------------------------------------------------------------------.
|
||||||
|
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_BSPC, KC_INS,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_ENT, KC_ENT, KC_PGUP,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_LSFT,KC_LSFT,KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
KC_LCTRL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, MO(_L1), KC_LEFT, KC_DOWN,KC_RIGHT
|
||||||
|
//|-----------------------------------------------------| |--------------------------------------------------------------------------------'
|
||||||
|
),
|
||||||
|
|
||||||
|
[_L1] = LAYOUT(
|
||||||
|
//,-----------------------------------------------------| |-----------------------------------------------------------------------------------------.
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_STOP, KC_SLCK,KC_PAUSE,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
//|-----------------------------------------------------| |--------------------------------------------------------------------------------'
|
||||||
|
),
|
||||||
|
|
||||||
|
[_L2] = LAYOUT(
|
||||||
|
//,-----------------------------------------------------| |-----------------------------------------------------------------------------------------.
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_STOP, KC_SLCK,KC_PAUSE,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
//|-----------------------------------------------------| |--------------------------------------------------------------------------------'
|
||||||
|
),
|
||||||
|
|
||||||
|
[_L3] = LAYOUT(
|
||||||
|
//,-----------------------------------------------------| |-----------------------------------------------------------------------------------------.
|
||||||
|
_______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_STOP, KC_SLCK,KC_PAUSE,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______,_______,_______,_______,_______,_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END,
|
||||||
|
//|--------+--------+--------+--------+--------+--------| |--------+--------+--------+--------+--------+--------+--------+--------+--------|
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
//|-----------------------------------------------------| |--------------------------------------------------------------------------------'
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
# AJisai74
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
This is 74 keys Custom keyboard.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Salicylic_acid3](https://github.com/Salicylic-acid3)
|
||||||
|
* Hardware Supported: AJisai74 PCB, Pro Micro
|
||||||
|
* Hardware Availability: [PCB & Case Data](https://github.com/Salicylic-acid3/PCB_Data), [Booth Shop](https://salicylic-acid3.booth.pm/items/2291877)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make ajisai74: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).
|
||||||
|
|
||||||
|
[Build guide](https://salicylic-acid3.hatenablog.com/entry/ajisai74-build-guide)
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = caterina
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
|
||||||
|
SPLIT_KEYBOARD = yes
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
#pragma once
|
|
||||||
|
|
||||||
// place overrides here
|
|
||||||
@@ -11,8 +11,11 @@
|
|||||||
// aliases
|
// aliases
|
||||||
// shell
|
// shell
|
||||||
#define SHELL_DEL_WORD RCTL(KC_W)
|
#define SHELL_DEL_WORD RCTL(KC_W)
|
||||||
// android studio
|
|
||||||
|
|
||||||
|
// comment out to use android studio macros instead
|
||||||
|
#define USE_VSCODE_MACROS
|
||||||
|
|
||||||
|
// android studio shortcuts
|
||||||
#define AS_TABLEFT LALT(KC_LEFT)
|
#define AS_TABLEFT LALT(KC_LEFT)
|
||||||
#define AS_TABRIGHT LALT(KC_RIGHT)
|
#define AS_TABRIGHT LALT(KC_RIGHT)
|
||||||
#define AS_SYMBOL LCTL(LALT(KC_N))
|
#define AS_SYMBOL LCTL(LALT(KC_N))
|
||||||
@@ -25,17 +28,49 @@
|
|||||||
#define AS_CLOSETOOLWINDOW LCTL(LSFT(KC_F4))
|
#define AS_CLOSETOOLWINDOW LCTL(LSFT(KC_F4))
|
||||||
#define AS_ALTENTER LALT(KC_ENTER)
|
#define AS_ALTENTER LALT(KC_ENTER)
|
||||||
|
|
||||||
|
// visual studio code shortcuts
|
||||||
|
#define VS_FILE LCTL(KC_P)
|
||||||
|
#define VS_LINE LCTL(KC_G)
|
||||||
|
#define VS_SYMBOLEDITOR LCTL(LSFT(KC_O))
|
||||||
|
#define VS_DEFINITION KC_F12
|
||||||
|
#define VS_IMPLEMENTATION LCTL(KC_F12)
|
||||||
|
#define VS_REFERENCES LSFT(KC_F12)
|
||||||
|
#define VS_BACK LALT(KC_LEFT)
|
||||||
|
#define VS_BRACKET LCTL(LSFT(KC_BSLS))
|
||||||
|
#define VS_TABLEFT LCTL(KC_PGUP)
|
||||||
|
#define VS_TABRIGHT LCTL(KC_PGDN)
|
||||||
|
#define VS_CLOSETAB LCTL(KC_W)
|
||||||
|
#define VS_CLOSEPANEL LCTL(LSFT(KC_W))
|
||||||
|
#define VS_TERMINAL LCTL(KC_GRAVE)
|
||||||
|
#define VS_BUILD LCTL(LSFT(KC_B))
|
||||||
|
#define VS_COMMANDS LCTL(LSFT(KC_P))
|
||||||
|
#define VS_CMT_BLOCK LSFT(LALT(KC_A))
|
||||||
|
#define VS_CMT_LINE LCTL(KC_SLSH)
|
||||||
|
#define VS_DEL_LINE LCTL(LSFT(KC_K))
|
||||||
|
#define VS_COPYLINEDOWN LSFT(LALT(KC_DOWN))
|
||||||
|
// visual studio bookmark commands
|
||||||
|
#define VS_BM_LIST LCTL(LALT(KC_L))
|
||||||
|
#define VS_BM_LISTALL LCTL(LALT(KC_A))
|
||||||
|
#define VS_BM_PREV LCTL(LALT(KC_P))
|
||||||
|
#define VS_BM_NEXT LCTL(LALT(KC_N))
|
||||||
|
#define VS_BM_TOGGLE LCTL(LALT(KC_K))
|
||||||
|
#define VS_BM_LABEL LCTL(LALT(KC_B))
|
||||||
|
|
||||||
|
/*
|
||||||
|
// VS code bookmark prev/next requires the following in vscode shortcuts config
|
||||||
|
{
|
||||||
|
"key": "ctrl+alt+p",
|
||||||
|
"command": "bookmarks.jumpToPrevious"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"key": "ctrl+alt+n",
|
||||||
|
"command": "bookmarks.jumpToNext"
|
||||||
|
},
|
||||||
|
*/
|
||||||
|
|
||||||
enum custom_keycodes {
|
enum custom_keycodes {
|
||||||
PLACEHOLDER = SAFE_RANGE, // can always be here
|
PLACEHOLDER = SAFE_RANGE, // can always be here
|
||||||
|
|
||||||
// Cloud9 macros
|
|
||||||
CLOUD9_TAB_LEFT,
|
|
||||||
CLOUD9_TAB_RIGHT,
|
|
||||||
CLOUD9_TAB_CLOSE,
|
|
||||||
CLOUD9_GOTO_SYMBOL,
|
|
||||||
CLOUD9_GOTO_LINE,
|
|
||||||
CLOUD9_NAVIGATE,
|
|
||||||
|
|
||||||
// Windows 10 macros
|
// Windows 10 macros
|
||||||
W10_TASKVIEW,
|
W10_TASKVIEW,
|
||||||
W10_WORKSPACE_LEFT,
|
W10_WORKSPACE_LEFT,
|
||||||
@@ -43,9 +78,8 @@ enum custom_keycodes {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// building instructions:
|
// building/flashing instructions:
|
||||||
// make atreus:dvorak_42_key
|
// make atreus/astar:dvorak_42_key:flash
|
||||||
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[BASE] = LAYOUT(
|
[BASE] = LAYOUT(
|
||||||
@@ -55,12 +89,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
OSM(MOD_LSFT), OSM(MOD_LCTL), MO(KEYSEL), MO(BROWSER_CONTROL), MO(COMBINED), MO(KEYNAV), KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_CAPSLOCK, OSM(MOD_LSFT)
|
OSM(MOD_LSFT), OSM(MOD_LCTL), MO(KEYSEL), MO(BROWSER_CONTROL), MO(COMBINED), MO(KEYNAV), KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_CAPSLOCK, OSM(MOD_LSFT)
|
||||||
),
|
),
|
||||||
|
|
||||||
|
#ifdef USE_VSCODE_MACROS
|
||||||
|
// use visual studio code macros on the KEYNAV layer
|
||||||
|
[KEYNAV] = LAYOUT(
|
||||||
|
KC_ESC, VS_DEFINITION, RCTL(KC_Z), RCTL(KC_S), MEH(KC_A), MEH(KC_B), KC_HOME, KC_UP, KC_END, KC_PGUP,
|
||||||
|
VS_BACK, VS_SYMBOLEDITOR, RSFT(KC_TAB), KC_TAB, SHELL_DEL_WORD, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT),
|
||||||
|
VS_LINE, VS_FILE, VS_TABLEFT, VS_TABRIGHT, VS_CLOSETAB, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDOWN,
|
||||||
|
VS_COMMANDS, VS_CMT_LINE, VS_BM_PREV, VS_BM_NEXT, VS_BM_TOGGLE, KC_TRNS, KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE)
|
||||||
|
),
|
||||||
|
#else
|
||||||
|
// use android studio macros on the KEYNAV layer
|
||||||
[KEYNAV] = LAYOUT(
|
[KEYNAV] = LAYOUT(
|
||||||
KC_ESC, AS_GO_IMPLEMENTATION, RCTL(KC_Z), RCTL(KC_S), MEH(KC_A), MEH(KC_B), KC_HOME, KC_UP, KC_END, KC_PGUP,
|
KC_ESC, AS_GO_IMPLEMENTATION, RCTL(KC_Z), RCTL(KC_S), MEH(KC_A), MEH(KC_B), KC_HOME, KC_UP, KC_END, KC_PGUP,
|
||||||
AS_BACK, AS_SYMBOL, RSFT(KC_TAB), KC_TAB, SHELL_DEL_WORD, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT),
|
AS_BACK, AS_SYMBOL, RSFT(KC_TAB), KC_TAB, SHELL_DEL_WORD, LCTL(KC_LEFT), KC_LEFT, KC_DOWN, KC_RIGHT, LCTL(KC_RIGHT),
|
||||||
AS_FINDUSAGE, AS_CLASS, AS_TABLEFT, AS_TABRIGHT, AS_CLOSETAB, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDOWN,
|
AS_FINDUSAGE, AS_CLASS, AS_TABLEFT, AS_TABRIGHT, AS_CLOSETAB, KC_TRNS, RCTL(KC_C), RCTL(KC_X), RCTL(KC_V), KC_PGDOWN,
|
||||||
AS_CLOSETOOLWINDOW, AS_GO_DECLARATION, KC_TRNS, KC_TRNS, AS_ALTENTER, KC_TRNS, KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE)
|
AS_CLOSETOOLWINDOW, AS_GO_DECLARATION, KC_TRNS, KC_TRNS, AS_ALTENTER, KC_TRNS, KC_ENTER, KC_SPACE, KC_BSPC, RCTL(KC_BSPC), KC_DELETE, LCTL(KC_DELETE)
|
||||||
),
|
),
|
||||||
|
#endif
|
||||||
|
|
||||||
[KEYSEL] = LAYOUT(
|
[KEYSEL] = LAYOUT(
|
||||||
MEH(KC_G), MEH(KC_H),MEH(KC_I), MEH(KC_J), MEH(KC_K), KC_TRNS, RSFT(KC_HOME), RSFT(KC_UP), RSFT(KC_END), RSFT(KC_PGUP),
|
MEH(KC_G), MEH(KC_H),MEH(KC_I), MEH(KC_J), MEH(KC_K), KC_TRNS, RSFT(KC_HOME), RSFT(KC_UP), RSFT(KC_END), RSFT(KC_PGUP),
|
||||||
@@ -87,31 +132,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
if(record->event.pressed) {
|
if(record->event.pressed) {
|
||||||
switch (keycode) {
|
switch (keycode) {
|
||||||
// Cloud9 macros
|
// windows 10 workspace shortcuts
|
||||||
case CLOUD9_TAB_LEFT:
|
|
||||||
SEND_STRING(SS_LCTRL("["));
|
|
||||||
return true;
|
|
||||||
break;
|
|
||||||
case CLOUD9_TAB_RIGHT:
|
|
||||||
SEND_STRING(SS_LCTRL("]"));
|
|
||||||
return true;
|
|
||||||
break;
|
|
||||||
case CLOUD9_TAB_CLOSE:
|
|
||||||
SEND_STRING(SS_LALT("w"));
|
|
||||||
return true;
|
|
||||||
break;
|
|
||||||
case CLOUD9_GOTO_SYMBOL:
|
|
||||||
SEND_STRING(SS_LSFT(SS_LCTRL("e")));
|
|
||||||
return true;
|
|
||||||
break;
|
|
||||||
case CLOUD9_GOTO_LINE:
|
|
||||||
SEND_STRING(SS_LCTRL("g"));
|
|
||||||
return true;
|
|
||||||
break;
|
|
||||||
case CLOUD9_NAVIGATE:
|
|
||||||
SEND_STRING(SS_LCTRL("e"));
|
|
||||||
return true;
|
|
||||||
break;
|
|
||||||
case W10_TASKVIEW:
|
case W10_TASKVIEW:
|
||||||
tap_code16(G(KC_TAB));
|
tap_code16(G(KC_TAB));
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
```shell
|
||||||
|
make atreus/teensy2:kejadlen
|
||||||
|
make atreus/teensy2:kejadlen:flash
|
||||||
|
```
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#undef MATRIX_ROW_PINS
|
||||||
|
#undef MATRIX_COL_PINS
|
||||||
|
#define MATRIX_ROW_PINS { D0, D1, D2, D3 }
|
||||||
|
#define MATRIX_COL_PINS { F6, F5, F4, F1, F0, F7, B0, B1, B2, B3, B7 }
|
||||||
|
/* #define UNUSED_PINS */
|
||||||
|
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define IGNORE_MOD_TAP_INTERRUPT
|
||||||
|
#define TAPPING_FORCE_HOLD
|
||||||
|
|
||||||
|
#define USB_MAX_POWER_CONSUMPTION 50
|
||||||
+4
-4
@@ -10,10 +10,10 @@ enum macro_id {
|
|||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[BASE] = LAYOUT(
|
[BASE] = LAYOUT(
|
||||||
KC_Q, KC_W, KC_D, KC_F, KC_K, KC_J, KC_U, KC_R, KC_L, KC_SCLN,
|
KC_Q, KC_W, KC_D, KC_F, KC_K, KC_J, KC_U, KC_R, KC_L, KC_SCLN,
|
||||||
LT(ETC,KC_A), KC_S, KC_E, KC_T, KC_G, KC_Y, KC_N, KC_I, KC_O, KC_H,
|
LT(ETC,KC_A), KC_S, KC_E, KC_T, KC_G, KC_Y, KC_N, KC_I, KC_O, KC_H,
|
||||||
SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_P, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH),
|
SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_P, KC_M, KC_COMM, KC_DOT, SFT_T(KC_SLSH),
|
||||||
KC_GRV, KC_DEL, KC_LALT, GUI_T(KC_TAB), LT(SYMB,KC_BSPC), CTL_T(KC_ESC), SFT_T(KC_ENT), LT(SYMB,KC_SPC), GUI_T(KC_LEFT), KC_DOWN, KC_UP, LCAG_T(KC_RGHT)
|
KC_GRV, KC_DEL, KC_LALT, GUI_T(KC_TAB), LT(SYMB,KC_BSPC), CTL_T(KC_ESC), SFT_T(KC_ENT), LT(SYMB,KC_SPC), GUI_T(KC_LEFT), ALT_T(KC_DOWN), KC_UP, LCAG_T(KC_RGHT)
|
||||||
),
|
),
|
||||||
|
|
||||||
[SYMB] = LAYOUT(
|
[SYMB] = LAYOUT(
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
/* Copyright 2020 Yiancar
|
||||||
|
*
|
||||||
|
* 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 "barleycorn.h"
|
||||||
|
|
||||||
|
void keyboard_pre_init_kb(void) {
|
||||||
|
// Set our LED pins as output
|
||||||
|
setPinOutput(B5);
|
||||||
|
setPinOutput(C0);
|
||||||
|
keyboard_pre_init_user();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool led_update_kb(led_t led_state) {
|
||||||
|
bool res = led_update_user(led_state);
|
||||||
|
if(res) {
|
||||||
|
// writePin sets the pin high for 1 and low for 0.
|
||||||
|
// In this example the pins are inverted, setting
|
||||||
|
// it low/0 turns it on, and high/1 turns the LED off.
|
||||||
|
// This behavior depends on whether the LED is between the pin
|
||||||
|
// and VCC or the pin and GND.
|
||||||
|
writePin(B5, led_state.caps_lock);
|
||||||
|
writePin(C0, led_state.num_lock);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
/* Copyright 2020 Yiancar
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define XXX KC_NO
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, K0E, K0F, K0G, K0H, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, K1F, K1G, K1H, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, K2F, K2G, K2H, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, \
|
||||||
|
K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H }, \
|
||||||
|
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_ansi( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, K0E, K0F, K0G, K0H, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, K1F, K1G, K1H, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, K2F, K2G, K2H, \
|
||||||
|
K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, \
|
||||||
|
K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H }, \
|
||||||
|
{ K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H }, \
|
||||||
|
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_iso( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, K0E, K0F, K0G, K0H, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K1F, K1G, K1H, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H, \
|
||||||
|
K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, K2H }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, K3G, K3H }, \
|
||||||
|
{ K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, K4E, K4F, K4G, K4H } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,103 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 Yiancar
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
#define VENDOR_ID 0x8968
|
||||||
|
#define PRODUCT_ID 0x4749
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER Yiancar-Designs
|
||||||
|
#define PRODUCT Barleycorn
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 18
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* A Custom matrix.c is used to poll the port expander C6 shows that the pins are hardwired there */
|
||||||
|
#define MATRIX_ROW_PINS { B4, B3, B2, B1, C1 }
|
||||||
|
#define MATRIX_COL_PINS { B0, D7, D6, D4, D1, D0, C3, C2, D5, D5, D5, D5, D5, D5, D5, D5, D5, D5 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
#define PORT_EXPANDER_ADDRESS 0x20
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL*/
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define USB_MAX_POWER_CONSUMPTION 100
|
||||||
|
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
|
||||||
|
* This is userful for the Windows task manager shortcut (ctrl+shift+esc).
|
||||||
|
*/
|
||||||
|
// #define GRAVE_ESC_CTRL_OVERRIDE
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Force NKRO
|
||||||
|
*
|
||||||
|
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||||
|
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||||
|
* makefile for this to work.)
|
||||||
|
*
|
||||||
|
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||||
|
* until the next keyboard reset.
|
||||||
|
*
|
||||||
|
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||||
|
* fully operational during normal computer usage.
|
||||||
|
*
|
||||||
|
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||||
|
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||||
|
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||||
|
* power-up.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//#define FORCE_NKRO
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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,283 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Barleycorn",
|
||||||
|
"maintainer": "Yiancar",
|
||||||
|
"width": 19.5,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"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":"0,4", "x":4, "y":0},
|
||||||
|
{"label":"0,5", "x":5, "y":0},
|
||||||
|
{"label":"0,6", "x":6, "y":0},
|
||||||
|
{"label":"0,7", "x":7, "y":0},
|
||||||
|
{"label":"0,8", "x":8, "y":0},
|
||||||
|
{"label":"0,9", "x":9, "y":0},
|
||||||
|
{"label":"0,10", "x":10, "y":0},
|
||||||
|
{"label":"0,11", "x":11, "y":0},
|
||||||
|
{"label":"0,12", "x":12, "y":0},
|
||||||
|
{"label":"0,13", "x":13, "y":0},
|
||||||
|
{"label":"1,13", "x":14, "y":0},
|
||||||
|
{"label":"0,14", "x":15.5, "y":0},
|
||||||
|
{"label":"0,15", "x":16.5, "y":0},
|
||||||
|
{"label":"0,16", "x":17.5, "y":0},
|
||||||
|
{"label":"0,17", "x":18.5, "y":0},
|
||||||
|
|
||||||
|
{"label":"1,0", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"1,1", "x":1.5, "y":1},
|
||||||
|
{"label":"1,2", "x":2.5, "y":1},
|
||||||
|
{"label":"1,3", "x":3.5, "y":1},
|
||||||
|
{"label":"1,4", "x":4.5, "y":1},
|
||||||
|
{"label":"1,5", "x":5.5, "y":1},
|
||||||
|
{"label":"1,6", "x":6.5, "y":1},
|
||||||
|
{"label":"1,7", "x":7.5, "y":1},
|
||||||
|
{"label":"1,8", "x":8.5, "y":1},
|
||||||
|
{"label":"1,9", "x":9.5, "y":1},
|
||||||
|
{"label":"1,10", "x":10.5, "y":1},
|
||||||
|
{"label":"1,11", "x":11.5, "y":1},
|
||||||
|
{"label":"1,12", "x":12.5, "y":1},
|
||||||
|
{"label":"2,12", "x":13.5, "y":1, "w":1.5},
|
||||||
|
{"label":"1,14", "x":15.5, "y":1},
|
||||||
|
{"label":"1,15", "x":16.5, "y":1},
|
||||||
|
{"label":"1,16", "x":17.5, "y":1},
|
||||||
|
{"label":"1,17", "x":18.5, "y":1},
|
||||||
|
|
||||||
|
{"label":"2,0", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"2,1", "x":1.75, "y":2},
|
||||||
|
{"label":"2,2", "x":2.75, "y":2},
|
||||||
|
{"label":"2,3", "x":3.75, "y":2},
|
||||||
|
{"label":"2,4", "x":4.75, "y":2},
|
||||||
|
{"label":"2,5", "x":5.75, "y":2},
|
||||||
|
{"label":"2,6", "x":6.75, "y":2},
|
||||||
|
{"label":"2,7", "x":7.75, "y":2},
|
||||||
|
{"label":"2,8", "x":8.75, "y":2},
|
||||||
|
{"label":"2,9", "x":9.75, "y":2},
|
||||||
|
{"label":"2,10", "x":10.75, "y":2},
|
||||||
|
{"label":"2,11", "x":11.75, "y":2},
|
||||||
|
{"label":"2,13", "x":12.75, "y":2, "w":2.25},
|
||||||
|
{"label":"2,14", "x":15.5, "y":2},
|
||||||
|
{"label":"2,15", "x":16.5, "y":2},
|
||||||
|
{"label":"2,16", "x":17.5, "y":2},
|
||||||
|
{"label":"2,17", "x":18.5, "y":2},
|
||||||
|
|
||||||
|
{"label":"3,0", "x":0, "y":3, "w":1.25},
|
||||||
|
{"label":"3,1", "x":1.25, "y":3},
|
||||||
|
{"label":"3,2", "x":2.25, "y":3},
|
||||||
|
{"label":"3,3", "x":3.25, "y":3},
|
||||||
|
{"label":"3,4", "x":4.25, "y":3},
|
||||||
|
{"label":"3,5", "x":5.25, "y":3},
|
||||||
|
{"label":"3,6", "x":6.25, "y":3},
|
||||||
|
{"label":"3,7", "x":7.25, "y":3},
|
||||||
|
{"label":"3,8", "x":8.25, "y":3},
|
||||||
|
{"label":"3,9", "x":9.25, "y":3},
|
||||||
|
{"label":"3,10", "x":10.25, "y":3},
|
||||||
|
{"label":"3,11", "x":11.25, "y":3},
|
||||||
|
{"label":"3,12", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"3,13", "x":14.25, "y":3.25},
|
||||||
|
{"label":"3,14", "x":15.5, "y":3},
|
||||||
|
{"label":"3,15", "x":16.5, "y":3},
|
||||||
|
{"label":"3,16", "x":17.5, "y":3},
|
||||||
|
{"label":"3,17", "x":18.5, "y":3},
|
||||||
|
|
||||||
|
{"label":"4,0", "x":0, "y":4, "w":1.25},
|
||||||
|
{"label":"4,1", "x":1.25, "y":4, "w":1.25},
|
||||||
|
{"label":"4,2", "x":2.5, "y":4, "w":1.25},
|
||||||
|
{"label":"4,6", "x":3.75, "y":4, "w":6.25},
|
||||||
|
{"label":"4,10", "x":10, "y":4, "w":1.5},
|
||||||
|
{"label":"4,11", "x":11.5, "y":4, "w":1.5},
|
||||||
|
{"label":"4,12", "x":13.25, "y":4.25},
|
||||||
|
{"label":"4,13", "x":14.25, "y":4.25},
|
||||||
|
{"label":"4,14", "x":15.25, "y":4.25},
|
||||||
|
{"label":"4,15", "x":16.5, "y":4},
|
||||||
|
{"label":"4,16", "x":17.5, "y":4},
|
||||||
|
{"label":"4,17", "x":18.5, "y":4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_ansi": {
|
||||||
|
"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":"0,4", "x":4, "y":0},
|
||||||
|
{"label":"0,5", "x":5, "y":0},
|
||||||
|
{"label":"0,6", "x":6, "y":0},
|
||||||
|
{"label":"0,7", "x":7, "y":0},
|
||||||
|
{"label":"0,8", "x":8, "y":0},
|
||||||
|
{"label":"0,9", "x":9, "y":0},
|
||||||
|
{"label":"0,10", "x":10, "y":0},
|
||||||
|
{"label":"0,11", "x":11, "y":0},
|
||||||
|
{"label":"0,12", "x":12, "y":0},
|
||||||
|
{"label":"0,13", "x":13, "y":0},
|
||||||
|
{"label":"1,13", "x":14, "y":0},
|
||||||
|
{"label":"0,14", "x":15.5, "y":0},
|
||||||
|
{"label":"0,15", "x":16.5, "y":0},
|
||||||
|
{"label":"0,16", "x":17.5, "y":0},
|
||||||
|
{"label":"0,17", "x":18.5, "y":0},
|
||||||
|
|
||||||
|
{"label":"1,0", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"1,1", "x":1.5, "y":1},
|
||||||
|
{"label":"1,2", "x":2.5, "y":1},
|
||||||
|
{"label":"1,3", "x":3.5, "y":1},
|
||||||
|
{"label":"1,4", "x":4.5, "y":1},
|
||||||
|
{"label":"1,5", "x":5.5, "y":1},
|
||||||
|
{"label":"1,6", "x":6.5, "y":1},
|
||||||
|
{"label":"1,7", "x":7.5, "y":1},
|
||||||
|
{"label":"1,8", "x":8.5, "y":1},
|
||||||
|
{"label":"1,9", "x":9.5, "y":1},
|
||||||
|
{"label":"1,10", "x":10.5, "y":1},
|
||||||
|
{"label":"1,11", "x":11.5, "y":1},
|
||||||
|
{"label":"1,12", "x":12.5, "y":1},
|
||||||
|
{"label":"2,12", "x":13.5, "y":1, "w":1.5},
|
||||||
|
{"label":"1,14", "x":15.5, "y":1},
|
||||||
|
{"label":"1,15", "x":16.5, "y":1},
|
||||||
|
{"label":"1,16", "x":17.5, "y":1},
|
||||||
|
{"label":"1,17", "x":18.5, "y":1},
|
||||||
|
|
||||||
|
{"label":"2,0", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"2,1", "x":1.75, "y":2},
|
||||||
|
{"label":"2,2", "x":2.75, "y":2},
|
||||||
|
{"label":"2,3", "x":3.75, "y":2},
|
||||||
|
{"label":"2,4", "x":4.75, "y":2},
|
||||||
|
{"label":"2,5", "x":5.75, "y":2},
|
||||||
|
{"label":"2,6", "x":6.75, "y":2},
|
||||||
|
{"label":"2,7", "x":7.75, "y":2},
|
||||||
|
{"label":"2,8", "x":8.75, "y":2},
|
||||||
|
{"label":"2,9", "x":9.75, "y":2},
|
||||||
|
{"label":"2,10", "x":10.75, "y":2},
|
||||||
|
{"label":"2,11", "x":11.75, "y":2},
|
||||||
|
{"label":"2,13", "x":12.75, "y":2, "w":2.25},
|
||||||
|
{"label":"2,14", "x":15.5, "y":2},
|
||||||
|
{"label":"2,15", "x":16.5, "y":2},
|
||||||
|
{"label":"2,16", "x":17.5, "y":2},
|
||||||
|
{"label":"2,17", "x":18.5, "y":2},
|
||||||
|
|
||||||
|
{"label":"3,0", "x":0, "y":3, "w":2.25},
|
||||||
|
{"label":"3,2", "x":2.25, "y":3},
|
||||||
|
{"label":"3,3", "x":3.25, "y":3},
|
||||||
|
{"label":"3,4", "x":4.25, "y":3},
|
||||||
|
{"label":"3,5", "x":5.25, "y":3},
|
||||||
|
{"label":"3,6", "x":6.25, "y":3},
|
||||||
|
{"label":"3,7", "x":7.25, "y":3},
|
||||||
|
{"label":"3,8", "x":8.25, "y":3},
|
||||||
|
{"label":"3,9", "x":9.25, "y":3},
|
||||||
|
{"label":"3,10", "x":10.25, "y":3},
|
||||||
|
{"label":"3,11", "x":11.25, "y":3},
|
||||||
|
{"label":"3,12", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"3,13", "x":14.25, "y":3.25},
|
||||||
|
{"label":"3,14", "x":15.5, "y":3},
|
||||||
|
{"label":"3,15", "x":16.5, "y":3},
|
||||||
|
{"label":"3,16", "x":17.5, "y":3},
|
||||||
|
{"label":"3,17", "x":18.5, "y":3},
|
||||||
|
|
||||||
|
{"label":"4,0", "x":0, "y":4, "w":1.25},
|
||||||
|
{"label":"4,1", "x":1.25, "y":4, "w":1.25},
|
||||||
|
{"label":"4,2", "x":2.5, "y":4, "w":1.25},
|
||||||
|
{"label":"4,6", "x":3.75, "y":4, "w":6.25},
|
||||||
|
{"label":"4,10", "x":10, "y":4, "w":1.5},
|
||||||
|
{"label":"4,11", "x":11.5, "y":4, "w":1.5},
|
||||||
|
{"label":"4,12", "x":13.25, "y":4.25},
|
||||||
|
{"label":"4,13", "x":14.25, "y":4.25},
|
||||||
|
{"label":"4,14", "x":15.25, "y":4.25},
|
||||||
|
{"label":"4,15", "x":16.5, "y":4},
|
||||||
|
{"label":"4,16", "x":17.5, "y":4},
|
||||||
|
{"label":"4,17", "x":18.5, "y":4}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_iso": {
|
||||||
|
"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":"0,4", "x":4, "y":0},
|
||||||
|
{"label":"0,5", "x":5, "y":0},
|
||||||
|
{"label":"0,6", "x":6, "y":0},
|
||||||
|
{"label":"0,7", "x":7, "y":0},
|
||||||
|
{"label":"0,8", "x":8, "y":0},
|
||||||
|
{"label":"0,9", "x":9, "y":0},
|
||||||
|
{"label":"0,10", "x":10, "y":0},
|
||||||
|
{"label":"0,11", "x":11, "y":0},
|
||||||
|
{"label":"0,12", "x":12, "y":0},
|
||||||
|
{"label":"0,13", "x":13, "y":0},
|
||||||
|
{"label":"1,13", "x":14, "y":0},
|
||||||
|
{"label":"0,14", "x":15.5, "y":0},
|
||||||
|
{"label":"0,15", "x":16.5, "y":0},
|
||||||
|
{"label":"0,16", "x":17.5, "y":0},
|
||||||
|
{"label":"0,17", "x":18.5, "y":0},
|
||||||
|
|
||||||
|
{"label":"1,0", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"1,1", "x":1.5, "y":1},
|
||||||
|
{"label":"1,2", "x":2.5, "y":1},
|
||||||
|
{"label":"1,3", "x":3.5, "y":1},
|
||||||
|
{"label":"1,4", "x":4.5, "y":1},
|
||||||
|
{"label":"1,5", "x":5.5, "y":1},
|
||||||
|
{"label":"1,6", "x":6.5, "y":1},
|
||||||
|
{"label":"1,7", "x":7.5, "y":1},
|
||||||
|
{"label":"1,8", "x":8.5, "y":1},
|
||||||
|
{"label":"1,9", "x":9.5, "y":1},
|
||||||
|
{"label":"1,10", "x":10.5, "y":1},
|
||||||
|
{"label":"1,11", "x":11.5, "y":1},
|
||||||
|
{"label":"1,12", "x":12.5, "y":1},
|
||||||
|
{"label":"1,14", "x":15.5, "y":1},
|
||||||
|
{"label":"1,15", "x":16.5, "y":1},
|
||||||
|
{"label":"1,16", "x":17.5, "y":1},
|
||||||
|
{"label":"1,17", "x":18.5, "y":1},
|
||||||
|
|
||||||
|
{"label":"2,0", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"2,1", "x":1.75, "y":2},
|
||||||
|
{"label":"2,2", "x":2.75, "y":2},
|
||||||
|
{"label":"2,3", "x":3.75, "y":2},
|
||||||
|
{"label":"2,4", "x":4.75, "y":2},
|
||||||
|
{"label":"2,5", "x":5.75, "y":2},
|
||||||
|
{"label":"2,6", "x":6.75, "y":2},
|
||||||
|
{"label":"2,7", "x":7.75, "y":2},
|
||||||
|
{"label":"2,8", "x":8.75, "y":2},
|
||||||
|
{"label":"2,9", "x":9.75, "y":2},
|
||||||
|
{"label":"2,10", "x":10.75, "y":2},
|
||||||
|
{"label":"2,11", "x":11.75, "y":2},
|
||||||
|
{"label":"2,12", "x":12.75, "y":2},
|
||||||
|
{"label":"2,13", "x":13.75, "y":1, "w":1.25, "h":2},
|
||||||
|
{"label":"2,14", "x":15.5, "y":2},
|
||||||
|
{"label":"2,15", "x":16.5, "y":2},
|
||||||
|
{"label":"2,16", "x":17.5, "y":2},
|
||||||
|
{"label":"2,17", "x":18.5, "y":2},
|
||||||
|
|
||||||
|
{"label":"3,0", "x":0, "y":3, "w":1.25},
|
||||||
|
{"label":"3,1", "x":1.25, "y":3},
|
||||||
|
{"label":"3,2", "x":2.25, "y":3},
|
||||||
|
{"label":"3,3", "x":3.25, "y":3},
|
||||||
|
{"label":"3,4", "x":4.25, "y":3},
|
||||||
|
{"label":"3,5", "x":5.25, "y":3},
|
||||||
|
{"label":"3,6", "x":6.25, "y":3},
|
||||||
|
{"label":"3,7", "x":7.25, "y":3},
|
||||||
|
{"label":"3,8", "x":8.25, "y":3},
|
||||||
|
{"label":"3,9", "x":9.25, "y":3},
|
||||||
|
{"label":"3,10", "x":10.25, "y":3},
|
||||||
|
{"label":"3,11", "x":11.25, "y":3},
|
||||||
|
{"label":"3,12", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"3,13", "x":14.25, "y":3.25},
|
||||||
|
{"label":"3,14", "x":15.5, "y":3},
|
||||||
|
{"label":"3,15", "x":16.5, "y":3},
|
||||||
|
{"label":"3,16", "x":17.5, "y":3},
|
||||||
|
{"label":"3,17", "x":18.5, "y":3},
|
||||||
|
|
||||||
|
{"label":"4,0", "x":0, "y":4, "w":1.25},
|
||||||
|
{"label":"4,1", "x":1.25, "y":4, "w":1.25},
|
||||||
|
{"label":"4,2", "x":2.5, "y":4, "w":1.25},
|
||||||
|
{"label":"4,6", "x":3.75, "y":4, "w":6.25},
|
||||||
|
{"label":"4,10", "x":10, "y":4, "w":1.5},
|
||||||
|
{"label":"4,11", "x":11.5, "y":4, "w":1.5},
|
||||||
|
{"label":"4,12", "x":13.25, "y":4.25},
|
||||||
|
{"label":"4,13", "x":14.25, "y":4.25},
|
||||||
|
{"label":"4,14", "x":15.25, "y":4.25},
|
||||||
|
{"label":"4,15", "x":16.5, "y":4},
|
||||||
|
{"label":"4,16", "x":17.5, "y":4},
|
||||||
|
{"label":"4,17", "x":18.5, "y":4}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
/* Copyright 2020 Yiancar
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
//This is the ANSI version of the PCB
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_ansi( /* Base */
|
||||||
|
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, 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_P7, KC_P8, KC_P9, KC_PEQL,
|
||||||
|
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_P4, KC_P5, KC_P6, KC_PPLS,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_BSPC,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT),
|
||||||
|
|
||||||
|
[1] = LAYOUT_ansi( /* FN */
|
||||||
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, RESET, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
};
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
# The default keymap for Barleycorn
|
||||||
|
|
||||||
|

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

|
||||||
|
|
||||||
|
Default layer is normal ANSI and Fn layer is used for Volume control and arrow cluster.
|
||||||
|
|
||||||
|
Alternative ANSI layouts:
|
||||||
|
|
||||||
|

|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
/* Copyright 2020 Yiancar
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
//This is the ISO version of the PCB
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_iso( /* Base */
|
||||||
|
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, 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_P7, KC_P8, KC_P9, KC_PEQL,
|
||||||
|
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_P4, KC_P5, KC_P6, KC_PPLS,
|
||||||
|
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_BSPC,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT),
|
||||||
|
|
||||||
|
[1] = LAYOUT_iso( /* FN */
|
||||||
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, RESET, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
# The default keymap for ISO Barleycorn
|
||||||
|
|
||||||
|

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

|
||||||
|
|
||||||
|
Default layer is normal ISO and Fn layer is used for Volume control and arrow cluster
|
||||||
|
|
||||||
|
Alternative ISO layouts:
|
||||||
|
|
||||||
|

|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
/* Copyright 2020 Yiancar
|
||||||
|
*
|
||||||
|
* 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
|
||||||
|
|
||||||
|
// This keymaps is used for VIA, it reflects the default keymap.
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_all( /* Base */
|
||||||
|
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, 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_P7, KC_P8, KC_P9, KC_PEQL,
|
||||||
|
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_P4, KC_P5, KC_P6, KC_PPLS,
|
||||||
|
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_BSPC,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT),
|
||||||
|
|
||||||
|
[1] = LAYOUT_all( /* FN */
|
||||||
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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, RESET, 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
|
[2] = LAYOUT_all( /* Empty for dynamic keymaps */
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
|
[3] = LAYOUT_all( /* Empty for dynamic keymaps */
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
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,3 @@
|
|||||||
|
# Compile with this keymap to use VIA
|
||||||
|
|
||||||
|
Sadly right now when using VIA, extrakeys is disabled. This means volume control will not work.
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
|
MOUSEKEY_ENABLE = no
|
||||||
|
EXTRAKEY_ENABLE = no
|
||||||
@@ -0,0 +1,138 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2012-2020 Jun Wako, Jack Humbert, Yiancar
|
||||||
|
|
||||||
|
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 <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include "wait.h"
|
||||||
|
#include "quantum.h"
|
||||||
|
#include "i2c_master.h"
|
||||||
|
|
||||||
|
static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS;
|
||||||
|
static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
|
||||||
|
|
||||||
|
static void unselect_rows(void) {
|
||||||
|
for(uint8_t x = 0; x < MATRIX_ROWS; x++) {
|
||||||
|
setPinInputHigh(row_pins[x]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void select_row(uint8_t row) {
|
||||||
|
setPinOutput(row_pins[row]);
|
||||||
|
writePinLow(row_pins[row]);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void unselect_row(uint8_t row) {
|
||||||
|
setPinInputHigh(row_pins[row]);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void init_pins(void) {
|
||||||
|
unselect_rows();
|
||||||
|
// Set I/O
|
||||||
|
uint8_t send_data[2] = { 0xFF, 0x03};
|
||||||
|
i2c_writeReg((PORT_EXPANDER_ADDRESS << 1), 0x00, &send_data[0], 2, 20);
|
||||||
|
// Set Pull-up
|
||||||
|
i2c_writeReg((PORT_EXPANDER_ADDRESS << 1), 0x0C, &send_data[0], 2, 20);
|
||||||
|
|
||||||
|
for (uint8_t x = 0; x < MATRIX_COLS; x++) {
|
||||||
|
if ( x < 8 ) {
|
||||||
|
setPinInputHigh(col_pins[x]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void matrix_init_custom(void) {
|
||||||
|
// TODO: initialize hardware here
|
||||||
|
// Initialize I2C
|
||||||
|
i2c_init();
|
||||||
|
|
||||||
|
// initialize key pins
|
||||||
|
init_pins();
|
||||||
|
wait_ms(50);
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) {
|
||||||
|
// Store last value of row prior to reading
|
||||||
|
matrix_row_t last_row_value = current_matrix[current_row];
|
||||||
|
|
||||||
|
// Clear data in matrix row
|
||||||
|
current_matrix[current_row] = 0;
|
||||||
|
|
||||||
|
// Select row and wait for row selecton to stabilize
|
||||||
|
select_row(current_row);
|
||||||
|
matrix_io_delay();
|
||||||
|
|
||||||
|
uint8_t port_expander_col_buffer[2];
|
||||||
|
i2c_readReg((PORT_EXPANDER_ADDRESS << 1), 0x12, &port_expander_col_buffer[0], 2, 20);
|
||||||
|
|
||||||
|
// For each col...
|
||||||
|
for(uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) {
|
||||||
|
uint8_t pin_state;
|
||||||
|
// Select the col pin to read (active low)
|
||||||
|
switch (col_index) {
|
||||||
|
case 8 :
|
||||||
|
pin_state = port_expander_col_buffer[0] & (1 << 0);
|
||||||
|
break;
|
||||||
|
case 9 :
|
||||||
|
pin_state = port_expander_col_buffer[0] & (1 << 1);
|
||||||
|
break;
|
||||||
|
case 10 :
|
||||||
|
pin_state = port_expander_col_buffer[0] & (1 << 2);
|
||||||
|
break;
|
||||||
|
case 11 :
|
||||||
|
pin_state = port_expander_col_buffer[0] & (1 << 3);
|
||||||
|
break;
|
||||||
|
case 12 :
|
||||||
|
pin_state = port_expander_col_buffer[0] & (1 << 4);
|
||||||
|
break;
|
||||||
|
case 13 :
|
||||||
|
pin_state = port_expander_col_buffer[0] & (1 << 5);
|
||||||
|
break;
|
||||||
|
case 14 :
|
||||||
|
pin_state = port_expander_col_buffer[0] & (1 << 6);
|
||||||
|
break;
|
||||||
|
case 15 :
|
||||||
|
pin_state = port_expander_col_buffer[0] & (1 << 7);
|
||||||
|
break;
|
||||||
|
case 16 :
|
||||||
|
pin_state = port_expander_col_buffer[1] & (1 << 0);
|
||||||
|
break;
|
||||||
|
case 17 :
|
||||||
|
pin_state = port_expander_col_buffer[1] & (1 << 1);
|
||||||
|
break;
|
||||||
|
default :
|
||||||
|
pin_state = readPin(col_pins[col_index]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Populate the matrix row with the state of the col pin
|
||||||
|
current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unselect row
|
||||||
|
unselect_row(current_row);
|
||||||
|
|
||||||
|
return (last_row_value != current_matrix[current_row]);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
|
||||||
|
bool matrix_has_changed = false;
|
||||||
|
|
||||||
|
// Set row, read cols
|
||||||
|
for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) {
|
||||||
|
matrix_has_changed |= read_cols_on_row(current_matrix, current_row);
|
||||||
|
}
|
||||||
|
|
||||||
|
return matrix_has_changed;
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
# Barleycorn
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
An f-row less compact 1800 kit with only through hole components.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar)
|
||||||
|
* Hardware Supported: ATMEGA328p with vusb [PCB](https://github.com/yiancar/gingham_pcb)
|
||||||
|
* Hardware Availability: https://mykeyboard.eu/, https://novelkeys.xyz
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make barleycorn:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make barleycorn:default:flash
|
||||||
|
|
||||||
|
Bootloader:
|
||||||
|
use usbasploader from HSGW's repository.
|
||||||
|
https://github.com/hsgw/USBaspLoader/tree/plaid
|
||||||
|
|
||||||
|
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,27 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega328p
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = USBasp
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
|
||||||
|
CUSTOM_MATRIX = lite
|
||||||
|
|
||||||
|
SRC += matrix.c
|
||||||
|
QUANTUM_LIB_SRC += i2c_master.c
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
/* Copyright 2020 tominabox1
|
/* Copyright 2020 tominabox1, Richard Goulter <[email protected]>
|
||||||
*
|
*
|
||||||
* 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
|
||||||
@@ -14,3 +14,29 @@
|
|||||||
* 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 "bm40hsrgb.h"
|
#include "bm40hsrgb.h"
|
||||||
|
|
||||||
|
#if defined(RGB_MATRIX_ENABLE)
|
||||||
|
led_config_t g_led_config = {
|
||||||
|
{
|
||||||
|
// Key Matrix to LED Index
|
||||||
|
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11},
|
||||||
|
{12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23},
|
||||||
|
{24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35},
|
||||||
|
{36, 37, 38, 39, 40, 41, NO_LED, 42, 43, 44, 45, 46}
|
||||||
|
}, {
|
||||||
|
// LED Index to Physical Position
|
||||||
|
{ 0, 0}, { 20, 0}, { 40, 0}, {61, 0}, {81, 0}, {101, 0}, {122, 0}, {142, 0}, {162, 0}, {183, 0}, {203, 0}, {224, 0},
|
||||||
|
{ 0, 21}, { 20, 21}, { 40, 21}, {61, 21}, {81, 21}, {101, 21}, {122, 21}, {142, 21}, {162, 21}, {183, 21}, {203, 21}, {224, 21},
|
||||||
|
{ 0, 42}, { 20, 42}, { 40, 42}, {61, 42}, {81, 42}, {101, 42}, {122, 42}, {142, 42}, {162, 42}, {183, 42}, {203, 42}, {224, 42},
|
||||||
|
{ 0, 64}, { 20, 64}, { 40, 64}, {61, 64}, {81, 64}, {111, 64}, {142, 64}, {162, 64}, {183, 64}, {203, 64}, {224, 64},
|
||||||
|
{220, 32}, {176, 32}, {132, 32}, {88, 32}, {44, 32}, {0, 32}
|
||||||
|
}, {
|
||||||
|
// LED Index to Flag
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
|
||||||
|
2, 2, 2, 2, 2, 2
|
||||||
|
}
|
||||||
|
};
|
||||||
|
#endif
|
||||||
@@ -46,10 +46,7 @@
|
|||||||
#define LOCKING_RESYNC_ENABLE
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
#define RGB_DI_PIN E2
|
#define RGB_DI_PIN E2
|
||||||
|
#define DRIVER_LED_TOTAL 53
|
||||||
#ifdef RGB_DI_PIN
|
#ifdef RGB_DI_PIN
|
||||||
#define RGBLIGHT_ANIMATIONS
|
#define RGB_MATRIX_KEYPRESSES // reacts to keypresses
|
||||||
#define RGBLED_NUM 54
|
|
||||||
#define RGBLIGHT_HUE_STEP 8
|
|
||||||
#define RGBLIGHT_SAT_STEP 8
|
|
||||||
#define RGBLIGHT_VAL_STEP 8
|
|
||||||
#endif
|
#endif
|
||||||
@@ -7,53 +7,53 @@
|
|||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT_planck_mit": {
|
"LAYOUT_planck_mit": {
|
||||||
"layout": [
|
"layout": [
|
||||||
{"x":0, "y":0},
|
{"label":"K00 (B3,B6)", "x":0, "y":0},
|
||||||
{"x":1, "y":0},
|
{"label":"K01 (B3,C6)", "x":1, "y":0},
|
||||||
{"x":2, "y":0},
|
{"label":"K02 (B3,B4)", "x":2, "y":0},
|
||||||
{"x":3, "y":0},
|
{"label":"K03 (B3,D7)", "x":3, "y":0},
|
||||||
{"x":4, "y":0},
|
{"label":"K04 (B3,D4)", "x":4, "y":0},
|
||||||
{"x":5, "y":0},
|
{"label":"K05 (B3,D6)", "x":5, "y":0},
|
||||||
{"x":6, "y":0},
|
{"label":"K06 (B3,C7)", "x":6, "y":0},
|
||||||
{"x":7, "y":0},
|
{"label":"K07 (B3,F6)", "x":7, "y":0},
|
||||||
{"x":8, "y":0},
|
{"label":"K08 (B3,F5)", "x":8, "y":0},
|
||||||
{"x":9, "y":0},
|
{"label":"K09 (B3,F4)", "x":9, "y":0},
|
||||||
{"x":10, "y":0},
|
{"label":"K0A (B3,F1)", "x":10, "y":0},
|
||||||
{"x":11, "y":0},
|
{"label":"K0B (B3,F0)", "x":11, "y":0},
|
||||||
{"x":0, "y":1},
|
{"label":"K10 (B2,B6)", "x":0, "y":1},
|
||||||
{"x":1, "y":1},
|
{"label":"K11 (B2,C6)", "x":1, "y":1},
|
||||||
{"x":2, "y":1},
|
{"label":"K12 (B2,B4)", "x":2, "y":1},
|
||||||
{"x":3, "y":1},
|
{"label":"K13 (B2,D7)", "x":3, "y":1},
|
||||||
{"x":4, "y":1},
|
{"label":"K14 (B2,D4)", "x":4, "y":1},
|
||||||
{"x":5, "y":1},
|
{"label":"K15 (B2,D6)", "x":5, "y":1},
|
||||||
{"x":6, "y":1},
|
{"label":"K16 (B2,C7)", "x":6, "y":1},
|
||||||
{"x":7, "y":1},
|
{"label":"K17 (B2,F6)", "x":7, "y":1},
|
||||||
{"x":8, "y":1},
|
{"label":"K18 (B2,F5)", "x":8, "y":1},
|
||||||
{"x":9, "y":1},
|
{"label":"K19 (B2,F4)", "x":9, "y":1},
|
||||||
{"x":10, "y":1},
|
{"label":"K1A (B2,F1)", "x":10, "y":1},
|
||||||
{"x":11, "y":1},
|
{"label":"K1B (B2,F0)", "x":11, "y":1},
|
||||||
{"x":0, "y":2},
|
{"label":"K20 (E6,B6)", "x":0, "y":2},
|
||||||
{"x":1, "y":2},
|
{"label":"K21 (E6,C6)", "x":1, "y":2},
|
||||||
{"x":2, "y":2},
|
{"label":"K22 (E6,B4)", "x":2, "y":2},
|
||||||
{"x":3, "y":2},
|
{"label":"K23 (E6,D7)", "x":3, "y":2},
|
||||||
{"x":4, "y":2},
|
{"label":"K24 (E6,D4)", "x":4, "y":2},
|
||||||
{"x":5, "y":2},
|
{"label":"K25 (E6,D6)", "x":5, "y":2},
|
||||||
{"x":6, "y":2},
|
{"label":"K26 (E6,C7)", "x":6, "y":2},
|
||||||
{"x":7, "y":2},
|
{"label":"K27 (E6,F6)", "x":7, "y":2},
|
||||||
{"x":8, "y":2},
|
{"label":"K28 (E6,F5)", "x":8, "y":2},
|
||||||
{"x":9, "y":2},
|
{"label":"K29 (E6,F4)", "x":9, "y":2},
|
||||||
{"x":10, "y":2},
|
{"label":"K2A (E6,F1)", "x":10, "y":2},
|
||||||
{"x":11, "y":2},
|
{"label":"K2B (E6,F0)", "x":11, "y":2},
|
||||||
{"x":0, "y":3},
|
{"label":"K30 (B5,B6)", "x":0, "y":3},
|
||||||
{"x":1, "y":3},
|
{"label":"K31 (B5,C6)", "x":1, "y":3},
|
||||||
{"x":2, "y":3},
|
{"label":"K32 (B5,B4)", "x":2, "y":3},
|
||||||
{"x":3, "y":3},
|
{"label":"K33 (B5,D7)", "x":3, "y":3},
|
||||||
{"x":4, "y":3},
|
{"label":"K34 (B5,D4)", "x":4, "y":3},
|
||||||
{"x":5, "y":3, "w":2},
|
{"label":"K35 (B5,D6)", "x":5, "y":3, "w":2},
|
||||||
{"x":7, "y":3},
|
{"label":"K37 (B5,F6)", "x":7, "y":3},
|
||||||
{"x":8, "y":3},
|
{"label":"K38 (B5,F5)", "x":8, "y":3},
|
||||||
{"x":9, "y":3},
|
{"label":"K39 (B5,F4)", "x":9, "y":3},
|
||||||
{"x":10, "y":3},
|
{"label":"K3A (B5,F1)", "x":10, "y":3},
|
||||||
{"x":11, "y":3}
|
{"label":"K3B (B5,F0)", "x":11, "y":3}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,12 @@
|
|||||||
# bm40hsrgb
|
# bm40hsrgb
|
||||||
|
|
||||||
A 40% mechanical keyboard.
|

|
||||||
|
|
||||||
|
An ortholinear 40% hotswap keyboard with per-key RGB in-switch LEDs and RGB Backlighting, from KP Republic.
|
||||||
|
|
||||||
This firmware was originally taken from a kbfirmware.json and manually converted. You may find the original `.json` files [here](https://drive.google.com/drive/folders/1tlTHQIFcluK2mjZ4UbbKCsdRLgSRSPw6).
|
This firmware was originally taken from a kbfirmware.json and manually converted. You may find the original `.json` files [here](https://drive.google.com/drive/folders/1tlTHQIFcluK2mjZ4UbbKCsdRLgSRSPw6).
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [rgoulter](https://github.com/rgoulter)
|
||||||
* Keyboard Maintainer: [tominabox1](https://github.com/tominabox1)
|
|
||||||
* Hardware Supported: bm40hsrgb PCB
|
* Hardware Supported: bm40hsrgb PCB
|
||||||
* Hardware Availability: [KPRepublic](https://www.aliexpress.com/item/4001147779116.html)
|
* Hardware Availability: [KPRepublic](https://www.aliexpress.com/item/4001147779116.html)
|
||||||
|
|
||||||
|
|||||||
@@ -17,8 +17,9 @@ 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
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
NKRO_ENABLE = no # USB Nkey Rollover
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
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
|
||||||
|
RGB_MATRIX_ENABLE = WS2812
|
||||||
|
|
||||||
LAYOUTS = planck_mit
|
LAYOUTS = planck_mit
|
||||||
|
LAYOUTS_HAS_RGB = yes
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
/* Copyright 2020 markva
|
||||||
|
*
|
||||||
|
* 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 "bm60rgb_iso.h"
|
||||||
|
|
||||||
|
#if defined(RGB_MATRIX_ENABLE)
|
||||||
|
led_config_t g_led_config = { {
|
||||||
|
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 },
|
||||||
|
{ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 },
|
||||||
|
{ 28, NO_LED, 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, 56, 57, NO_LED, NO_LED, NO_LED, 58, NO_LED, NO_LED, 59, 60, 61, 62, 63}
|
||||||
|
}, {
|
||||||
|
// Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
|
||||||
|
{ 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 },
|
||||||
|
// Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], ,
|
||||||
|
{ 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 },
|
||||||
|
// Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
|
||||||
|
{ 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 },
|
||||||
|
// LShift, <, Z, X, C, V, B, N, M, ,, ., /, Shift, Up,
|
||||||
|
{ 3, 48 }, { 22, 48 }, { 33, 48 }, { 48, 48 }, { 63, 48 }, { 78, 48 }, { 93, 48 }, { 108, 48 }, { 123, 48 }, { 138, 48 }, { 153, 48 }, { 168, 48 }, { 194, 48 }, { 213, 48 },
|
||||||
|
// Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
|
||||||
|
{ 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 }
|
||||||
|
}, {
|
||||||
|
// Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace
|
||||||
|
4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
// Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], ,
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
// Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
|
||||||
|
// LShift,<, Z, X, C, V, B, N, M, ,, ., Shift, Up, /
|
||||||
|
1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4,
|
||||||
|
// Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right
|
||||||
|
1, 1, 1, 4, 1, 1, 1, 1, 1
|
||||||
|
} };
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
/* Copyright 2020 markva
|
||||||
|
*
|
||||||
|
* 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, K0A, K0B, K0C, K0D, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, \
|
||||||
|
K20, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K1D, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
|
||||||
|
K40, K41, K42, K46, K49, K4A, K4B, K4C, K4D \
|
||||||
|
) { \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
|
||||||
|
{ K20, KC_NO, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D }, \
|
||||||
|
{ K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D }, \
|
||||||
|
}
|
||||||
@@ -0,0 +1,72 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 markva
|
||||||
|
|
||||||
|
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 0x4B50 // "KP"
|
||||||
|
#define PRODUCT_ID 0xEF8C
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER KPRepublic
|
||||||
|
#define PRODUCT bm60hsrgb-iso
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 5
|
||||||
|
#define MATRIX_COLS 14
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
// 0 1 2 3 4 5 6 7 8 9 A B C D
|
||||||
|
#define MATRIX_ROW_PINS { B0, B1, B2, B3, E6 }
|
||||||
|
#define MATRIX_COL_PINS { D0, D1, D2, D3, D5, D4, D6, D7, B4, B5, B6, C6, C7, F7 }
|
||||||
|
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define RGB_DI_PIN E2
|
||||||
|
#define DRIVER_LED_TOTAL 70
|
||||||
|
#ifdef RGB_DI_PIN
|
||||||
|
#define RGBLED_NUM 70
|
||||||
|
#define RGB_MATRIX_KEYPRESSES
|
||||||
|
// #define RGBLIGHT_HUE_STEP 8
|
||||||
|
// #define RGBLIGHT_SAT_STEP 8
|
||||||
|
// #define RGBLIGHT_VAL_STEP 8
|
||||||
|
// #define RGBLIGHT_LIMIT_VAL 180 /* The maximum brightness level */
|
||||||
|
// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
||||||
|
/*== all animations enable ==*/
|
||||||
|
// #define RGBLIGHT_ANIMATIONS
|
||||||
|
// /*== or choose animations ==*/
|
||||||
|
// #define RGBLIGHT_EFFECT_BREATHING
|
||||||
|
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||||
|
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||||
|
// #define RGBLIGHT_EFFECT_SNAKE
|
||||||
|
// #define RGBLIGHT_EFFECT_KNIGHT
|
||||||
|
// #define RGBLIGHT_EFFECT_CHRISTMAS
|
||||||
|
// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
|
||||||
|
// #define RGBLIGHT_EFFECT_RGB_TEST
|
||||||
|
// #define RGBLIGHT_EFFECT_ALTERNATING
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "BM60 RGB ISO",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "qmk",
|
||||||
|
"width": 15,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"layout": [
|
||||||
|
{"label":"K00 (B0,D0)", "x":0, "y":0},
|
||||||
|
{"label":"K01 (B0,D1)", "x":1, "y":0},
|
||||||
|
{"label":"K02 (B0,D2)", "x":2, "y":0},
|
||||||
|
{"label":"K03 (B0,D3)", "x":3, "y":0},
|
||||||
|
{"label":"K04 (B0,D5)", "x":4, "y":0},
|
||||||
|
{"label":"K05 (B0,D4)", "x":5, "y":0},
|
||||||
|
{"label":"K06 (B0,D6)", "x":6, "y":0},
|
||||||
|
{"label":"K07 (B0,D7)", "x":7, "y":0},
|
||||||
|
{"label":"K08 (B0,B4)", "x":8, "y":0},
|
||||||
|
{"label":"K09 (B0,B5)", "x":9, "y":0},
|
||||||
|
{"label":"K0A (B0,B6)", "x":10, "y":0},
|
||||||
|
{"label":"K0B (B0,C6)", "x":11, "y":0},
|
||||||
|
{"label":"K0C (B0,C7)", "x":12, "y":0},
|
||||||
|
{"label":"K0D (B0,F7)", "x":13, "y":0, "w":2},
|
||||||
|
{"label":"K10 (B1,D0)", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"K11 (B1,D1)", "x":1.5, "y":1},
|
||||||
|
{"label":"K12 (B1,D2)", "x":2.5, "y":1},
|
||||||
|
{"label":"K13 (B1,D3)", "x":3.5, "y":1},
|
||||||
|
{"label":"K14 (B1,D5)", "x":4.5, "y":1},
|
||||||
|
{"label":"K15 (B1,D4)", "x":5.5, "y":1},
|
||||||
|
{"label":"K16 (B1,D6)", "x":6.5, "y":1},
|
||||||
|
{"label":"K17 (B1,D7)", "x":7.5, "y":1},
|
||||||
|
{"label":"K18 (B1,B4)", "x":8.5, "y":1},
|
||||||
|
{"label":"K19 (B1,B5)", "x":9.5, "y":1},
|
||||||
|
{"label":"K1A (B1,B6)", "x":10.5, "y":1},
|
||||||
|
{"label":"K1B (B1,C6)", "x":11.5, "y":1},
|
||||||
|
{"label":"K1C (B1,C7)", "x":12.5, "y":1},
|
||||||
|
{"label":"K20 (B2,D0)", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"K22 (B2,D2)", "x":1.75, "y":2},
|
||||||
|
{"label":"K23 (B2,D3)", "x":2.75, "y":2},
|
||||||
|
{"label":"K24 (B2,D5)", "x":3.75, "y":2},
|
||||||
|
{"label":"K25 (B2,D4)", "x":4.75, "y":2},
|
||||||
|
{"label":"K26 (B2,D6)", "x":5.75, "y":2},
|
||||||
|
{"label":"K27 (B2,D7)", "x":6.75, "y":2},
|
||||||
|
{"label":"K28 (B2,B4)", "x":7.75, "y":2},
|
||||||
|
{"label":"K29 (B2,B5)", "x":8.75, "y":2},
|
||||||
|
{"label":"K2A (B2,B6)", "x":9.75, "y":2},
|
||||||
|
{"label":"K2B (B2,C6)", "x":10.75, "y":2},
|
||||||
|
{"label":"K2C (B2,C7)", "x":11.75, "y":2},
|
||||||
|
{"label":"K2D (B2,F7)", "x":12.75, "y":2},
|
||||||
|
{"label":"K1D (B1,F7)", "x":13.75, "y":1, "w":1.25, "h":2},
|
||||||
|
{"label":"K30 (B3,D0)", "x":0, "y":3, "w":1.25},
|
||||||
|
{"label":"K31 (B3,D1)", "x":1.25, "y":3},
|
||||||
|
{"label":"K32 (B3,D2)", "x":2.25, "y":3},
|
||||||
|
{"label":"K33 (B3,D3)", "x":3.25, "y":3},
|
||||||
|
{"label":"K34 (B3,D5)", "x":4.25, "y":3},
|
||||||
|
{"label":"K35 (B3,D4)", "x":5.25, "y":3},
|
||||||
|
{"label":"K36 (B3,D6)", "x":6.25, "y":3},
|
||||||
|
{"label":"K37 (B3,D7)", "x":7.25, "y":3},
|
||||||
|
{"label":"K38 (B3,B4)", "x":8.25, "y":3},
|
||||||
|
{"label":"K39 (B3,B5)", "x":9.25, "y":3},
|
||||||
|
{"label":"K3A (B3,B6)", "x":10.25, "y":3},
|
||||||
|
{"label":"K3B (B3,C6)", "x":11.25, "y":3, "w":1.75},
|
||||||
|
{"label":"K3C (B3,C7)", "x":13, "y":3},
|
||||||
|
{"label":"K3D (B3,F7)", "x":14, "y":3},
|
||||||
|
{"label":"K40 (E6,D0)", "x":0, "y":4, "w":1.25},
|
||||||
|
{"label":"K41 (E6,D1)", "x":1.25, "y":4, "w":1.25},
|
||||||
|
{"label":"K42 (E6,D2)", "x":2.5, "y":4, "w":1.25},
|
||||||
|
{"label":"K46 (E6,D6)", "x":3.75, "y":4, "w":6.25},
|
||||||
|
{"label":"K49 (E6,B5)", "x":10, "y":4},
|
||||||
|
{"label":"K4A (E6,B6)", "x":11, "y":4},
|
||||||
|
{"label":"K4B (E6,C6)", "x":12, "y":4},
|
||||||
|
{"label":"K4C (E6,C7)", "x":13, "y":4},
|
||||||
|
{"label":"K4D (E6,F7)", "x":14, "y":4}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
/* Copyright 2020 markva
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,
|
||||||
|
KC_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_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# The default keymap for bm60rgb_iso
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
# BM60 RGB ISO
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
A 60% ISO hotswap inswitch RGB keyboard.
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [markva](https://github.com/markva)
|
||||||
|
* Hardware Supported: BM60 RGB ISO
|
||||||
|
* Hardware Availability: [KP Republic](https://kprepublic.com/products/bm60-rgb-iso-uk-eu-rgb-60-hot-swappable-pcb-qmk-firmware-rgb-underglow-type-c)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make bm60rgb_iso:default
|
||||||
|
|
||||||
|
Flashing example for this keyboard:
|
||||||
|
|
||||||
|
make bm60rgb_iso:default:flash
|
||||||
|
|
||||||
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# 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 = 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 = WS2812
|
||||||
|
LTO_ENABLE = yes
|
||||||
@@ -5,8 +5,8 @@
|
|||||||
#include "config_common.h"
|
#include "config_common.h"
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0xF7E0
|
#define VENDOR_ID 0x4273 // "Bs" - Boardsource
|
||||||
#define PRODUCT_ID 0x0412
|
#define PRODUCT_ID 0x0304 // 3x4
|
||||||
#define DEVICE_VER 0x0000
|
#define DEVICE_VER 0x0000
|
||||||
#define MANUFACTURER Boardsource
|
#define MANUFACTURER Boardsource
|
||||||
#define PRODUCT 3x4
|
#define PRODUCT 3x4
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
LAYOUT(
|
||||||
|
KC_0, KC_1, KC_4, KC_7,
|
||||||
|
KC_ENT, KC_2, KC_5, KC_8,
|
||||||
|
MO(1), KC_3, KC_6, KC_9
|
||||||
|
),
|
||||||
|
LAYOUT(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, RESET
|
||||||
|
),
|
||||||
|
LAYOUT(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
LAYOUT(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
# The via keymap for boardsource 3x4 macropad
|
||||||
|
|
||||||
|
This folder contains the [VIA](https://caniusevia.com/) configuration for the boardsource 3x4 macropad
|
||||||
|
|
||||||
|
Maintained by: [gwillad](https://github.com/gwillad)
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -24,8 +24,5 @@ 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
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
NKRO_ENABLE = no # USB Nkey Rollover
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
|
||||||
MIDI_ENABLE = no # MIDI support
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
UNICODE_ENABLE = no # Unicode
|
AUDIO_ENABLE = no # Audio output
|
||||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
|
||||||
AUDIO_ENABLE = no # Audio output on port C6
|
|
||||||
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 Cole Smith <[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
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
#define VENDOR_ID 0xF7E0
|
||||||
|
#define PRODUCT_ID 0x0412
|
||||||
|
#define DEVICE_VER 0x0000
|
||||||
|
#define MANUFACTURER Boardsource
|
||||||
|
#define PRODUCT microdox
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
// Rows are doubled-up
|
||||||
|
#define MATRIX_ROWS 8
|
||||||
|
#define MATRIX_COLS 5
|
||||||
|
#define MATRIX_ROW_PINS { B2, B6, B4, B5 }
|
||||||
|
|
||||||
|
// wiring of each half
|
||||||
|
#define MATRIX_COL_PINS { F4, F5, F6, F7, B1 }
|
||||||
|
#define USE_SERIAL
|
||||||
|
#define SOFT_SERIAL_PIN D2
|
||||||
|
/* define if matrix has ghost */
|
||||||
|
//#define MATRIX_HAS_GHOST
|
||||||
|
|
||||||
|
/* number of backlight levels */
|
||||||
|
// #define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
|
/* Set 0 if debouncing isn't needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL*/
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
/* 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
|
||||||
|
|
||||||
|
/* ws2812 RGB LED */
|
||||||
|
#define RGBLIGHT_ANIMATIONS
|
||||||
|
#define RGB_DI_PIN D3
|
||||||
|
#define RGBLED_SPLIT { 6, 6 }
|
||||||
|
#define EE_HANDS
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
#define RGBLED_NUM 12 // Number of LEDs
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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,56 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "microdox",
|
||||||
|
"url": "https://boardsource.xyz/store/5f2e7e4a2902de7151494f92",
|
||||||
|
"maintainer": "boardsource",
|
||||||
|
"width": 13,
|
||||||
|
"height": 4.7,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_split_3x5_3": {
|
||||||
|
"layout": [
|
||||||
|
{ "label": "Q", "x": 0, "y": 0.3 },
|
||||||
|
{ "label": "W", "x": 1, "y": 0.1 },
|
||||||
|
{ "label": "E", "x": 2, "y": 0 },
|
||||||
|
{ "label": "R", "x": 3, "y": 0.1 },
|
||||||
|
{ "label": "T", "x": 4, "y": 0.2 },
|
||||||
|
|
||||||
|
{ "label": "Y", "x": 8, "y": 0.2 },
|
||||||
|
{ "label": "U", "x": 9, "y": 0.1 },
|
||||||
|
{ "label": "I", "x": 10, "y": 0 },
|
||||||
|
{ "label": "O", "x": 11, "y": 0.1 },
|
||||||
|
{ "label": "P", "x": 12, "y": 0.3 },
|
||||||
|
|
||||||
|
{ "label": "A", "x": 0, "y": 1.3 },
|
||||||
|
{ "label": "S", "x": 1, "y": 1.1 },
|
||||||
|
{ "label": "D", "x": 2, "y": 1 },
|
||||||
|
{ "label": "F", "x": 3, "y": 1.1 },
|
||||||
|
{ "label": "G", "x": 4, "y": 1.2 },
|
||||||
|
|
||||||
|
{ "label": "H", "x": 8, "y": 1.2 },
|
||||||
|
{ "label": "J", "x": 9, "y": 1.1 },
|
||||||
|
{ "label": "K", "x": 10, "y": 1 },
|
||||||
|
{ "label": "L", "x": 11, "y": 1.1 },
|
||||||
|
{ "label": ";", "x": 12, "y": 1.3 },
|
||||||
|
|
||||||
|
{ "label": "Z", "x": 0, "y": 2.3 },
|
||||||
|
{ "label": "X", "x": 1, "y": 2.1 },
|
||||||
|
{ "label": "C", "x": 2, "y": 2 },
|
||||||
|
{ "label": "V", "x": 3, "y": 2.1 },
|
||||||
|
{ "label": "B", "x": 4, "y": 2.2 },
|
||||||
|
|
||||||
|
{ "label": "N", "x": 8, "y": 2.2 },
|
||||||
|
{ "label": "M", "x": 9, "y": 2.1 },
|
||||||
|
{ "label": ",", "x": 10, "y": 2 },
|
||||||
|
{ "label": ".", "x": 11, "y": 2.1 },
|
||||||
|
{ "label": "/", "x": 12, "y": 2.3 },
|
||||||
|
|
||||||
|
{ "label": "GUI / KC_HANJ", "x": 3, "y": 3.7 },
|
||||||
|
{ "label": "Lower", "x": 4, "y": 3.7 },
|
||||||
|
{ "label": "Space", "x": 5, "y": 3.2 },
|
||||||
|
|
||||||
|
{ "label": "Enter", "x": 7, "y": 3.2 },
|
||||||
|
{ "label": "Raise", "x": 8, "y": 3.7 },
|
||||||
|
{ "label": "Alt / KC_HAEN", "x": 9, "y": 3.7 }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,116 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 Cole Smith <[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
|
||||||
|
#include "split_util.h"
|
||||||
|
|
||||||
|
enum layers {
|
||||||
|
_QWERTY,
|
||||||
|
_RAISE,
|
||||||
|
_LOWER,
|
||||||
|
_ADJUST
|
||||||
|
};
|
||||||
|
|
||||||
|
#define KC_CTSC RCTL_T(KC_SCLN)
|
||||||
|
#define LOWER_SPC LT(_LOWER, KC_SPC)
|
||||||
|
#define RASE_BACK LT(_RAISE, KC_BSPC)
|
||||||
|
#define SHFT_Z MT(MOD_LSFT, KC_Z)
|
||||||
|
#define SHIFT_SLASH MT(MOD_RSFT,KC_SLSH)
|
||||||
|
#define RASE_ENT LT(_RAISE, KC_ENT)
|
||||||
|
#define CTRL_A MT(MOD_LCTL,KC_A)
|
||||||
|
#define PREVWINDOW MT(MOD_LCTL, KC_LEFT)
|
||||||
|
#define NEXTWINDOW MT(MOD_LCTL, KC_RGHT)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_QWERTY] = LAYOUT_split_3x5_3(
|
||||||
|
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||||
|
CTRL_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_CTSC,
|
||||||
|
SHFT_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SHIFT_SLASH,
|
||||||
|
MO(_LOWER),KC_LGUI, RASE_ENT, RASE_BACK, LOWER_SPC, KC_TAB
|
||||||
|
),
|
||||||
|
[_RAISE] = LAYOUT_split_3x5_3(
|
||||||
|
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
|
||||||
|
KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_QUOT,
|
||||||
|
KC_LSFT, KC_GRV, PREVWINDOW, NEXTWINDOW, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||||
|
_______, KC_LGUI, KC_ENT, KC_BSPC, KC_SPC, _______
|
||||||
|
),
|
||||||
|
[_LOWER] = LAYOUT_split_3x5_3(
|
||||||
|
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
|
||||||
|
KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, RGB_TOG, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_DQT,
|
||||||
|
KC_ESC, KC_TILD, PREVWINDOW, NEXTWINDOW, RGB_MODE_FORWARD, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||||
|
_______, KC_LGUI, KC_ENT, KC_BSPC, KC_SPC, _______
|
||||||
|
)
|
||||||
|
};
|
||||||
|
|
||||||
|
#ifdef OLED_DRIVER_ENABLE
|
||||||
|
oled_rotation_t oled_init_user(oled_rotation_t rotation) {
|
||||||
|
if (is_keyboard_master())
|
||||||
|
return OLED_ROTATION_180;
|
||||||
|
return rotation;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void render_logo(void) {
|
||||||
|
static const char PROGMEM qmk_logo[] = {
|
||||||
|
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
|
||||||
|
0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
|
||||||
|
0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,
|
||||||
|
0
|
||||||
|
};
|
||||||
|
oled_write_P(qmk_logo, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void render_status(void) {
|
||||||
|
switch (get_highest_layer(layer_state)) {
|
||||||
|
case _QWERTY:
|
||||||
|
oled_write_P(PSTR("B R L A O\n"), false);
|
||||||
|
oled_write_P(PSTR("^\n"), false);
|
||||||
|
oled_write_P(PSTR("Layer: Base\n"), false);
|
||||||
|
break;
|
||||||
|
case _RAISE:
|
||||||
|
oled_write_P(PSTR("B R L A O\n"), false);
|
||||||
|
oled_write_P(PSTR(" ^\n"), false);
|
||||||
|
oled_write_P(PSTR("Layer: Raise\n"), false);
|
||||||
|
break;
|
||||||
|
case _LOWER:
|
||||||
|
oled_write_P(PSTR("B R L A O\n"), false);
|
||||||
|
oled_write_P(PSTR(" ^\n"), false);
|
||||||
|
oled_write_P(PSTR("Layer: Lower\n"), false);
|
||||||
|
break;
|
||||||
|
case _ADJUST:
|
||||||
|
oled_write_P(PSTR("B R L A O\n"), false);
|
||||||
|
oled_write_P(PSTR(" ^\n"), false);
|
||||||
|
oled_write_P(PSTR("Layer: Adjust\n"), false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
oled_write_P(PSTR("B R L A O"), false);
|
||||||
|
oled_write_P(PSTR(" ^\n"), false);
|
||||||
|
oled_write_P(PSTR("Layer: Other\n"), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void oled_task_user(void) {
|
||||||
|
if (is_keyboard_master()) {
|
||||||
|
render_status();
|
||||||
|
} else {
|
||||||
|
render_logo();
|
||||||
|
oled_scroll_left();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
OLED_DRIVER_ENABLE = yes
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 Cole Smith <[email protected]>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
enum layers {
|
||||||
|
_QWERTY,
|
||||||
|
_RAISE,
|
||||||
|
_LOWER,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define RAISE MO(_RAISE)
|
||||||
|
#define LOWER MO(_LOWER)
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_QWERTY] = LAYOUT_split_3x5_3(
|
||||||
|
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
||||||
|
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN,
|
||||||
|
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH,
|
||||||
|
KC_LCTL, LOWER, KC_SPC, KC_BSPC, RAISE, KC_ENT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_RAISE] = LAYOUT_split_3x5_3(
|
||||||
|
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
|
||||||
|
KC_TAB, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC,
|
||||||
|
KC_LCTL, KC_GRV, KC_LGUI, KC_LALT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BSLS, KC_QUOT,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX
|
||||||
|
),
|
||||||
|
|
||||||
|
[_LOWER] = LAYOUT_split_3x5_3(
|
||||||
|
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
|
||||||
|
KC_ESC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR,
|
||||||
|
KC_CAPS, KC_TILD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PIPE, KC_DQT,
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, KC_ENT, XXXXXXX, KC_DEL
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 Cole Smith <[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 "microdox.h"
|
||||||
|
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 Cole Smith <[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
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT_split_3x5_3(\
|
||||||
|
k01, k02, k03, k04, k05, k45, k44, k43, k42, k41, \
|
||||||
|
k11, k12, k13, k14, k15, k55, k54, k53, k52, k51, \
|
||||||
|
k21, k22, k23, k24, k25, k65, k64, k63, k62, k61, \
|
||||||
|
k33, k34, k35, k75, k74, k73 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k01, k02, k03, k04, k05 }, \
|
||||||
|
{ k11, k12, k13, k14, k15 }, \
|
||||||
|
{ k21, k22, k23, k24, k25 }, \
|
||||||
|
{ KC_NO,KC_NO, k33, k34, k35 }, \
|
||||||
|
{ k41, k42, k43, k44, k45 }, \
|
||||||
|
{ k51, k52, k53, k54, k55 }, \
|
||||||
|
{ k61, k62, k63, k64, k65 }, \
|
||||||
|
{ KC_NO, KC_NO, k73, k74, k75 } \
|
||||||
|
}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# Microdox
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Boardsource](https://github.com/daysgobye)
|
||||||
|
* Hardware Supported: microdox v1
|
||||||
|
* Hardware Availability: this keyboard is available from the [Boardsource store](https://boardsource.xyz/store/5f2e7e4a2902de7151494f92)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make boardsource/microdox: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,23 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
BOOTLOADER = caterina
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = 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 = yes # Enable keyboard RGB underglow
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth
|
||||||
|
AUDIO_ENABLE = no # Audio output
|
||||||
|
SPLIT_KEYBOARD = yes
|
||||||
@@ -19,7 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0xCA04
|
#define VENDOR_ID 0xCA04
|
||||||
#define PRODUCT_ID 0x0248
|
#define PRODUCT_ID 0x4F48 // "O" 48
|
||||||
#define DEVICE_VER 0x0001
|
#define DEVICE_VER 0x0001
|
||||||
#define MANUFACTURER QMK
|
#define MANUFACTURER QMK
|
||||||
#define PRODUCT Ortho48
|
#define PRODUCT Ortho48
|
||||||
|
|||||||
@@ -0,0 +1,49 @@
|
|||||||
|
/*
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[0] = LAYOUT_ortho_4x12(
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
|
||||||
|
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT ,
|
||||||
|
BL_TOGG, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT_ortho_4x12(
|
||||||
|
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
|
||||||
|
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||||
|
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, S(KC_NUHS), S(KC_NUBS), KC_HOME, KC_END, _______,
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||||
|
),
|
||||||
|
|
||||||
|
[2] = LAYOUT_ortho_4x12(
|
||||||
|
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
|
||||||
|
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||||
|
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
|
||||||
|
RGB_TOG, RGB_MOD, BL_INC, BL_DEC, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||||
|
),
|
||||||
|
|
||||||
|
[3] = LAYOUT_ortho_4x12(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
|
LTO_ENABLE = yes
|
||||||
@@ -18,8 +18,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
/* USB Device descriptor parameter */
|
/* USB Device descriptor parameter */
|
||||||
#define VENDOR_ID 0xFEED
|
#define VENDOR_ID 0xCA04
|
||||||
#define PRODUCT_ID 0x6464
|
#define PRODUCT_ID 0x4F60 // "O" 60
|
||||||
#define DEVICE_VER 0x0001
|
#define DEVICE_VER 0x0001
|
||||||
#define MANUFACTURER QMK
|
#define MANUFACTURER QMK
|
||||||
#define PRODUCT Ortho60
|
#define PRODUCT Ortho60
|
||||||
|
|||||||
@@ -0,0 +1,53 @@
|
|||||||
|
/*
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[0] = LAYOUT_ortho_5x12(
|
||||||
|
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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
|
||||||
|
KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
|
||||||
|
BL_TOGG, KC_LCTL, KC_LALT, KC_LGUI, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[1] = LAYOUT_ortho_5x12(
|
||||||
|
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_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
|
||||||
|
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
|
||||||
|
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,S(KC_NUHS),S(KC_NUBS),KC_HOME, KC_END, _______,
|
||||||
|
RESET, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||||
|
),
|
||||||
|
|
||||||
|
[2] = LAYOUT_ortho_5x12(
|
||||||
|
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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
|
||||||
|
KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
|
||||||
|
_______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
|
||||||
|
RGB_TOG, RGB_MOD, BL_INC, BL_DEC, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
|
||||||
|
),
|
||||||
|
|
||||||
|
[3] = LAYOUT_ortho_5x12(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
|
LTO_ENABLE = yes
|
||||||
@@ -0,0 +1,114 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 jagdpietr
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 2 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "config_common.h"
|
||||||
|
|
||||||
|
/* USB Device descriptor parameter */
|
||||||
|
#define VENDOR_ID 0xFEED
|
||||||
|
#define PRODUCT_ID 0x7776
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER jagdpietr
|
||||||
|
#define PRODUCT drakon
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 6
|
||||||
|
#define MATRIX_COLS 14
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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 { C7, B5, B6, B0, B1, F1 }
|
||||||
|
#define MATRIX_COL_PINS { F4, F5, F6, F7, C6, B2, B3, B7, D3, D5, D4, D6, D7, B4 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL*/
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define ENCODERS_PAD_A { D2 }
|
||||||
|
#define ENCODERS_PAD_B { F0 }
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
|
||||||
|
*/
|
||||||
|
#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
|
||||||
|
|
||||||
|
/* 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 userful for the Windows task manager shortcut (ctrl+shift+esc).
|
||||||
|
*/
|
||||||
|
// #define GRAVE_ESC_CTRL_OVERRIDE
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Force NKRO
|
||||||
|
*
|
||||||
|
* Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
|
||||||
|
* state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
|
||||||
|
* makefile for this to work.)
|
||||||
|
*
|
||||||
|
* If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
|
||||||
|
* until the next keyboard reset.
|
||||||
|
*
|
||||||
|
* NKRO may prevent your keystrokes from being detected in the BIOS, but it is
|
||||||
|
* fully operational during normal computer usage.
|
||||||
|
*
|
||||||
|
* For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
|
||||||
|
* or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
|
||||||
|
* bootmagic, NKRO mode will always be enabled until it is toggled again during a
|
||||||
|
* power-up.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
//#define FORCE_NKRO
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
/* Copyright 2020 jagdpietr
|
||||||
|
*
|
||||||
|
* 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 "drakon.h"
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
/* Copyright 2020 jagdpietr
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define XXX KC_NO
|
||||||
|
|
||||||
|
/* This is a shortcut to help you visually see your layout.
|
||||||
|
*
|
||||||
|
* The first section contains all of the arguments representing the physical
|
||||||
|
* layout of the board and position of the keys.
|
||||||
|
*
|
||||||
|
* The second converts the arguments into a two-dimensional array which
|
||||||
|
* represents the switch matrix.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* LAYOUT_ansi
|
||||||
|
* ,---------------------------------------------------------. .---.
|
||||||
|
* |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0A |0B |0C |0D|2D| |5C |
|
||||||
|
* |---------------------------------------------------------| ,-----------.
|
||||||
|
* |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |1A |1B |1C |1D | |5A |5D |59 |
|
||||||
|
* |---------------------------------------------------------| `-----------'
|
||||||
|
* |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |2A |2B |2C | |5B |
|
||||||
|
* |---------------------------------------------------------. `---'
|
||||||
|
* |30 |31 |32 |33 |34 |35 |36 |37 |38 |39 |3A |3B | |3C |
|
||||||
|
* |--------------------------------------------------'--`---'---.
|
||||||
|
* |40 |41 |42 | 43 |49 |4A | |4B |4C |4D |
|
||||||
|
* `----------------------------------------------' `-----------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define LAYOUT_ansi( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, K5C, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K5A, K5D, K59, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K5B, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
|
||||||
|
K40, K41, K42, K43, K49, K4A, K4B, K4C, K4D \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, XXX }, \
|
||||||
|
{ K40, K41, K42, K43, XXX, XXX, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D }, \
|
||||||
|
{ XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, K59, K5A, K5B, K5C, K5D } \
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LAYOUT_wkl
|
||||||
|
* ,---------------------------------------------------------. .---.
|
||||||
|
* |00 |01 |02 |03 |04 |05 |06 |07 |08 |09 |0A |0B |0C |0D|2D| |5C |
|
||||||
|
* |---------------------------------------------------------| ,-----------.
|
||||||
|
* |10 |11 |12 |13 |14 |15 |16 |17 |18 |19 |1A |1B |1C |1D | |5A |5D |59 |
|
||||||
|
* |---------------------------------------------------------| `-----------'
|
||||||
|
* |20 |21 |22 |23 |24 |25 |26 |27 |28 |29 |2A |2B |2C | |5B |
|
||||||
|
* |---------------------------------------------------------. `---'
|
||||||
|
* |30 |31 |32 |33 |34 |35 |36 |37 |38 |39 |3A |3B | |3C |
|
||||||
|
* |--------------------------------------------------'--`---'---.
|
||||||
|
* |40 | |42 | 43 |49 |4A | |4B |4C |4D |
|
||||||
|
* `----------------------------------------------' `-----------'
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define LAYOUT_wkl( \
|
||||||
|
K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K2D, K5C, \
|
||||||
|
K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K5A, K5D, K59, \
|
||||||
|
K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K5B, \
|
||||||
|
K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \
|
||||||
|
K40, K42, K43, K49, K4A, K4B, K4C, K4D \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \
|
||||||
|
{ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \
|
||||||
|
{ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D }, \
|
||||||
|
{ K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, XXX }, \
|
||||||
|
{ K40, XXX, K42, K43, XXX, XXX, XXX, XXX, XXX, K49, K4A, K4B, K4C, K4D }, \
|
||||||
|
{ XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, K59, K5A, K5B, K5C, K5D } \
|
||||||
|
}
|
||||||
Loaded 100 of 523 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user