Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
74e3cad728 | ||
|
|
0010d0c45e | ||
|
|
8a749a7a8e | ||
|
|
964ed17716 | ||
|
|
50554ca270 | ||
|
|
c6f389b527 | ||
|
|
5780c94423 | ||
|
|
acef512730 | ||
|
|
fa9c74c6a2 | ||
|
|
b2ce2f8a34 | ||
|
|
5b91c3e0a0 | ||
|
|
1877736fa4 | ||
|
|
c096be3831 | ||
|
|
4888a118c3 | ||
|
|
e036b94a21 | ||
|
|
1a79f14e43 | ||
|
|
4e6d1ae0ea | ||
|
|
1858c3ed11 | ||
|
|
8e550fc11a | ||
|
|
1aee492c0f | ||
|
|
fdabf524f2 | ||
|
|
e565948ffd | ||
|
|
5c5a05212e | ||
|
|
b28ee6b039 | ||
|
|
6544bd2e65 | ||
|
|
f31411af17 | ||
|
|
479c6a68cf |
No files matched your search
@@ -63,9 +63,6 @@ util/Win_Check_Output.txt
|
|||||||
*.gif
|
*.gif
|
||||||
*.jpg
|
*.jpg
|
||||||
|
|
||||||
# Do not ignore MiniDox left/right hand eeprom files
|
|
||||||
!keyboards/minidox/*.eep
|
|
||||||
|
|
||||||
# things travis sees
|
# things travis sees
|
||||||
secrets.tar
|
secrets.tar
|
||||||
id_rsa_*
|
id_rsa_*
|
||||||
|
|||||||
@@ -15,8 +15,8 @@ The next Breaking Change is scheduled for February 29, 2020.
|
|||||||
### Important Dates
|
### Important Dates
|
||||||
|
|
||||||
* [x] 2019 Sep 21 - `future` is created. It will be rebased weekly.
|
* [x] 2019 Sep 21 - `future` is created. It will be rebased weekly.
|
||||||
* [ ] 2020 Feb 1 - `future` closed to new PR's.
|
* [x] 2020 Feb 1 - `future` closed to new PR's.
|
||||||
* [ ] 2020 Feb 1 - Call for testers.
|
* [x] 2020 Feb 1 - Call for testers.
|
||||||
* [ ] 2020 Feb 26 - `master` is locked, no PR's merged.
|
* [ ] 2020 Feb 26 - `master` is locked, no PR's merged.
|
||||||
* [ ] 2020 Feb 28 - Merge `future` to `master`.
|
* [ ] 2020 Feb 28 - Merge `future` to `master`.
|
||||||
* [ ] 2020 Feb 29 - `master` is unlocked. PR's can be merged again.
|
* [ ] 2020 Feb 29 - `master` is unlocked. PR's can be merged again.
|
||||||
|
|||||||
+51
-12
@@ -29,8 +29,6 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <hal.h>
|
#include <hal.h>
|
||||||
|
|
||||||
static uint8_t i2c_address;
|
|
||||||
|
|
||||||
static const I2CConfig i2cconfig = {
|
static const I2CConfig i2cconfig = {
|
||||||
#ifdef USE_I2CV1
|
#ifdef USE_I2CV1
|
||||||
I2C1_OPMODE,
|
I2C1_OPMODE,
|
||||||
@@ -71,27 +69,49 @@ __attribute__((weak)) void i2c_init(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
i2c_status_t i2c_start(uint8_t address) {
|
i2c_status_t i2c_start(uint8_t address) {
|
||||||
i2c_address = address;
|
#if I2C_USE_MUTUAL_EXCLUSION
|
||||||
|
i2cAcquireBus(&I2C_DRIVER);
|
||||||
|
#endif
|
||||||
|
|
||||||
i2cStart(&I2C_DRIVER, &i2cconfig);
|
i2cStart(&I2C_DRIVER, &i2cconfig);
|
||||||
return I2C_STATUS_SUCCESS;
|
return I2C_STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
i2c_status_t i2c_transmit(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout) {
|
i2c_status_t i2c_transmit(uint8_t address, const uint8_t* data, uint16_t length, uint16_t timeout) {
|
||||||
i2c_address = address;
|
#if I2C_USE_MUTUAL_EXCLUSION
|
||||||
|
i2cAcquireBus(&I2C_DRIVER);
|
||||||
|
#endif
|
||||||
|
|
||||||
i2cStart(&I2C_DRIVER, &i2cconfig);
|
i2cStart(&I2C_DRIVER, &i2cconfig);
|
||||||
msg_t status = i2cMasterTransmitTimeout(&I2C_DRIVER, (i2c_address >> 1), data, length, 0, 0, MS2ST(timeout));
|
msg_t status = i2cMasterTransmitTimeout(&I2C_DRIVER, (address >> 1), data, length, 0, 0, MS2ST(timeout));
|
||||||
|
|
||||||
|
#if I2C_USE_MUTUAL_EXCLUSION
|
||||||
|
i2cReleaseBus(&I2C_DRIVER);
|
||||||
|
#endif
|
||||||
|
|
||||||
return chibios_to_qmk(&status);
|
return chibios_to_qmk(&status);
|
||||||
}
|
}
|
||||||
|
|
||||||
i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout) {
|
i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout) {
|
||||||
i2c_address = address;
|
#if I2C_USE_MUTUAL_EXCLUSION
|
||||||
|
i2cAcquireBus(&I2C_DRIVER);
|
||||||
|
#endif
|
||||||
|
|
||||||
i2cStart(&I2C_DRIVER, &i2cconfig);
|
i2cStart(&I2C_DRIVER, &i2cconfig);
|
||||||
msg_t status = i2cMasterReceiveTimeout(&I2C_DRIVER, (i2c_address >> 1), data, length, MS2ST(timeout));
|
msg_t status = i2cMasterReceiveTimeout(&I2C_DRIVER, (address >> 1), data, length, MS2ST(timeout));
|
||||||
|
|
||||||
|
#if I2C_USE_MUTUAL_EXCLUSION
|
||||||
|
i2cReleaseBus(&I2C_DRIVER);
|
||||||
|
#endif
|
||||||
|
|
||||||
return chibios_to_qmk(&status);
|
return chibios_to_qmk(&status);
|
||||||
}
|
}
|
||||||
|
|
||||||
i2c_status_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout) {
|
i2c_status_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout) {
|
||||||
i2c_address = devaddr;
|
#if I2C_USE_MUTUAL_EXCLUSION
|
||||||
|
i2cAcquireBus(&I2C_DRIVER);
|
||||||
|
#endif
|
||||||
|
|
||||||
i2cStart(&I2C_DRIVER, &i2cconfig);
|
i2cStart(&I2C_DRIVER, &i2cconfig);
|
||||||
|
|
||||||
uint8_t complete_packet[length + 1];
|
uint8_t complete_packet[length + 1];
|
||||||
@@ -100,15 +120,34 @@ i2c_status_t i2c_writeReg(uint8_t devaddr, uint8_t regaddr, const uint8_t* data,
|
|||||||
}
|
}
|
||||||
complete_packet[0] = regaddr;
|
complete_packet[0] = regaddr;
|
||||||
|
|
||||||
msg_t status = i2cMasterTransmitTimeout(&I2C_DRIVER, (i2c_address >> 1), complete_packet, length + 1, 0, 0, MS2ST(timeout));
|
msg_t status = i2cMasterTransmitTimeout(&I2C_DRIVER, (devaddr >> 1), complete_packet, length + 1, 0, 0, MS2ST(timeout));
|
||||||
|
|
||||||
|
#if I2C_USE_MUTUAL_EXCLUSION
|
||||||
|
i2cReleaseBus(&I2C_DRIVER);
|
||||||
|
#endif
|
||||||
|
|
||||||
return chibios_to_qmk(&status);
|
return chibios_to_qmk(&status);
|
||||||
}
|
}
|
||||||
|
|
||||||
i2c_status_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout) {
|
i2c_status_t i2c_readReg(uint8_t devaddr, uint8_t regaddr, uint8_t* data, uint16_t length, uint16_t timeout) {
|
||||||
i2c_address = devaddr;
|
#if I2C_USE_MUTUAL_EXCLUSION
|
||||||
|
i2cAcquireBus(&I2C_DRIVER);
|
||||||
|
#endif
|
||||||
|
|
||||||
i2cStart(&I2C_DRIVER, &i2cconfig);
|
i2cStart(&I2C_DRIVER, &i2cconfig);
|
||||||
msg_t status = i2cMasterTransmitTimeout(&I2C_DRIVER, (i2c_address >> 1), ®addr, 1, data, length, MS2ST(timeout));
|
msg_t status = i2cMasterTransmitTimeout(&I2C_DRIVER, (devaddr >> 1), ®addr, 1, data, length, MS2ST(timeout));
|
||||||
|
|
||||||
|
#if I2C_USE_MUTUAL_EXCLUSION
|
||||||
|
i2cReleaseBus(&I2C_DRIVER);
|
||||||
|
#endif
|
||||||
|
|
||||||
return chibios_to_qmk(&status);
|
return chibios_to_qmk(&status);
|
||||||
}
|
}
|
||||||
|
|
||||||
void i2c_stop(void) { i2cStop(&I2C_DRIVER); }
|
void i2c_stop(void) {
|
||||||
|
i2cStop(&I2C_DRIVER);
|
||||||
|
|
||||||
|
#if I2C_USE_MUTUAL_EXCLUSION
|
||||||
|
i2cReleaseBus(&I2C_DRIVER);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
@@ -21,8 +21,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 0x6060
|
#define PRODUCT_ID 0x6874 // HT
|
||||||
#define DEVICE_VER 0x0001
|
#define DEVICE_VER 0x0001
|
||||||
#define MANUFACTURER 1upkeyboards
|
#define MANUFACTURER 1upkeyboards
|
||||||
#define PRODUCT 1up60hte
|
#define PRODUCT 1up60hte
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 MechMerlin
|
||||||
|
|
||||||
|
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_tsangan(
|
||||||
|
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_GRV,
|
||||||
|
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_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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
|
||||||
|
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL),
|
||||||
|
|
||||||
|
[1] = LAYOUT_tsangan(
|
||||||
|
RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, KC_DEL,
|
||||||
|
KC_CAPS, BL_TOGG, BL_DEC, BL_INC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLCK, KC_PAUS, KC_UP, KC_TRNS, KC_CLR,
|
||||||
|
KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPLY, KC_MPRV, KC_MNXT, RGB_VAD, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, KC_TRNS,
|
||||||
|
KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, KC_END, KC_PGDN, KC_DOWN, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
|
[2] = LAYOUT_tsangan(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
|
[3] = LAYOUT_tsangan(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
};
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
|
MOUSEKEY_ENABLE = no
|
||||||
@@ -24,5 +24,6 @@ NKRO_ENABLE = yes # USB Nkey Rollover - if this doesn't work, see here: https:/
|
|||||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||||
AUDIO_ENABLE = no
|
AUDIO_ENABLE = no
|
||||||
RGBLIGHT_ENABLE = yes
|
RGBLIGHT_ENABLE = yes
|
||||||
|
LTO_ENABLE = yes
|
||||||
|
|
||||||
LAYOUTS = 60_hhkb
|
LAYOUTS = 60_hhkb
|
||||||
@@ -30,9 +30,7 @@
|
|||||||
MODS // LAYERS // MODS //
|
MODS // LAYERS // MODS //
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef LAYOUT
|
#define LAYOUT_atreus( \
|
||||||
#undef LAYOUT
|
|
||||||
#define LAYOUT( \
|
|
||||||
K00, K01, K02, K03, K04, K40, K41, K42, K43, K44, \
|
K00, K01, K02, K03, K04, K40, K41, K42, K43, K44, \
|
||||||
K10, K11, K12, K13, K14, K50, K51, K52, K53, K54, \
|
K10, K11, K12, K13, K14, K50, K51, K52, K53, K54, \
|
||||||
K20, K21, K22, K23, K24, K60, K61, K62, K63, K64, \
|
K20, K21, K22, K23, K24, K60, K61, K62, K63, K64, \
|
||||||
@@ -47,70 +45,109 @@
|
|||||||
{ K64, K63, K62, K61, K60, KC_NO }, \
|
{ K64, K63, K62, K61, K60, KC_NO }, \
|
||||||
{ K75, K74, K73, K72, K71, K70 } \
|
{ K75, K74, K73, K72, K71, K70 } \
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
//#define ALPHA XP(UCM_LDEL, UCM_UDEL)
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_QWERTY] = LAYOUT( /* Qwerty */
|
[_QWERTY] = LAYOUT_atreus_wrapper( /* Qwerty */
|
||||||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
|
________________ATREUS_L1__________________, ________________ATREUS_R1__________________,
|
||||||
ED_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, NM_SCLN,
|
________________ATREUS_L2__________________, ________________ATREUS_R2__________________,
|
||||||
LS_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, FK_DOT, RS_SLSH,
|
________________ATREUS_L3__________________, ________________ATREUS_R3__________________,
|
||||||
LC_ESC, LG_TAB, LA_LBRC, LS_RBRC, NM_BSPC, ED_ESC, SC_TAB, SM_SPC, RS_MINS, RA_EQL, RG_QUOT, RC_ENT
|
________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
|
||||||
),
|
),
|
||||||
[_EDITOR] = LAYOUT( /* ED_A, ED_ESC */
|
[_DVORAK] = LAYOUT_atreus_wrapper( /* Qwerty */
|
||||||
KC_GRV, _______, KC_END, _______, KC_TAB, _______, _______, KC_INS, _______, KC_PGUP,
|
________________DVORAK_L1__________________, ________________DVORAK_R1__________________,
|
||||||
KC_HOME, _______, KC_DELT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_ENT,
|
________________DVORAK_L2__________________, ________________DVORAK_R2__________________,
|
||||||
_______, _______, _______, _______, _______, KC_PGDN, _______, _______, _______, KC_BSLS,
|
________________DVORAK_L3__________________, ________________DVORAK_R3__________________,
|
||||||
_______, _______, _______, _______, _______, _______, KC_ENT, _______, _______, _______, _______, _______
|
________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
|
||||||
),
|
),
|
||||||
[_NUMBER] = LAYOUT( /* NM_SCLN, NM_BSPC */
|
[_COLEMAK] = LAYOUT_atreus_wrapper( /* Qwerty */
|
||||||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
|
________________COLEMAK_L1_________________, ________________COLEMAK_R1_________________,
|
||||||
KC_6, KC_7, KC_8, KC_9, KC_0, _______, KC_4, KC_5, KC_6, _______,
|
________________COLEMAK_L2_________________, ________________COLEMAK_R2_________________,
|
||||||
_______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, KC_BSLS,
|
________________COLEMAK_L3_________________, ________________COLEMAK_R3_________________,
|
||||||
_______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_0, KC_0, KC_DOT, _______, _______
|
________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
|
||||||
),
|
),
|
||||||
[_SYMBOL] = LAYOUT( /* SM_SPC */
|
//#if defined(UNICODEMAP_ENABLE)
|
||||||
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
|
//#ifdef UNICODE_H
|
||||||
KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, _______, KC_COLN,
|
#ifdef UNICODEMAP_ENABLE
|
||||||
|
[_GREEK] = LAYOUT_atreus_wrapper(
|
||||||
|
________________GREEK_L1___________________, ________________GREEK_R1___________________,
|
||||||
|
________________GREEK_L2___________________, ________________GREEK_R2___________________,
|
||||||
|
________________GREEK_L3___________________, ________________GREEK_R3___________________,
|
||||||
|
________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
|
||||||
|
),
|
||||||
|
[_RUSSIAN] = LAYOUT_atreus_wrapper(
|
||||||
|
________________CYRLC_L1___________________, ________________CYRLC_R1___________________,
|
||||||
|
________________CYRLC_L2___________________, ________________CYRLC_R2___________________,
|
||||||
|
________________CYRLC_L3___________________, ________________CYRLC_R3___________________,
|
||||||
|
________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________CYRLC_R4___________________
|
||||||
|
),
|
||||||
|
[_RUNES] = LAYOUT_atreus_wrapper(
|
||||||
|
________________FTHRK_L1___________________, ________________FTHRK_R1___________________,
|
||||||
|
________________FTHRK_L2___________________, ________________FTHRK_R2___________________,
|
||||||
|
________________FTHRK_L3___________________, ________________FTHRK_R3___________________,
|
||||||
|
________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
|
||||||
|
),
|
||||||
|
[_HIRA1] = LAYOUT_atreus_wrapper(
|
||||||
|
________________JIS1_L1____________________, ________________JIS1_R1____________________,
|
||||||
|
________________JIS1_L2____________________, ________________JIS1_R2____________________,
|
||||||
|
________________JIS1_L3____________________, ________________JIS1_R3____________________,
|
||||||
|
________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
|
||||||
|
),
|
||||||
|
[_HIRA2] = LAYOUT_atreus_wrapper(
|
||||||
|
________________JIS2_L1____________________, ________________JIS2_R1____________________,
|
||||||
|
________________JIS2_L2____________________, ________________JIS2_R2____________________,
|
||||||
|
________________JIS2_L3____________________, ________________JIS2_R3____________________,
|
||||||
|
________________BOTTOM_L4__________________, ____THUMBS_R4___, ________________BOTTOM_R4__________________
|
||||||
|
),
|
||||||
|
#endif
|
||||||
|
[_EDITOR] = LAYOUT_atreus_wrapper( /* ED_A, ED_ESC */
|
||||||
|
________________EDITOR_L1__________________, ________________EDITOR_R1__________________,
|
||||||
|
________________EDITOR_L2__________________, ________________EDITOR_R2__________________,
|
||||||
|
________________EDITOR_L3__________________, ________________EDITOR_R3__________________,
|
||||||
|
_______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[_NUMBER] = LAYOUT_atreus_wrapper( /* NM_SCLN, NM_BSPC */
|
||||||
|
________________NUMROW_L1__________________, ________________NUMROW_R1__________________,
|
||||||
|
________________NUMROW_R1__________________, ________________NUMPAD_R2__________________,
|
||||||
|
___________________________________________, ________________NUMPAD_R3__________________,
|
||||||
|
___________________________________________, ________________, ________________NUMPAD_R4__________________
|
||||||
|
),
|
||||||
|
[_SYMBOL] = LAYOUT_atreus_wrapper( /* SM_SPC */
|
||||||
|
________________SYMROW_L1__________________, ________________SYMROW_R1__________________,
|
||||||
|
________________SYMROW_R1__________________, ________________SYMROW_R1__________________,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLS,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BSLS,
|
||||||
_______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, _______, _______, _______, _______, _______
|
KC_LBRC, _______, _______, _______, _______, ________________, _______, _______, _______, _______, KC_RBRC
|
||||||
),
|
),
|
||||||
[_F_KEYS] = LAYOUT( /* FK_DOT */
|
[_F_KEYS] = LAYOUT_atreus_wrapper( /* FK_DOT */
|
||||||
KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10,
|
________________FKEYROW_L1_________________, ________________FKEYROW_R1_________________,
|
||||||
KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, KC_F11,
|
________________FKEYROW_R1_________________, ________________FKEYROW_L1_________________,
|
||||||
KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, KC_F12,
|
KC_F11, KC_F12, _______, _______, _______, KC_F11, KC_F12, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
),
|
),
|
||||||
[_SECRET] = LAYOUT( /* shhhh... */
|
[_DEBUG] = LAYOUT_atreus_wrapper( /* shhhh... */
|
||||||
RESET, _______, _______, RUSTY, FUEL, KC_F13, _______, _______, _______, _______,
|
________________DEBUG_L1___________________, ________________DEBUG_R1___________________,
|
||||||
|
________________DEBUG_L2___________________, ________________DEBUG_R2___________________,
|
||||||
|
________________DEBUG_L3___________________, ________________DEBUG_R3___________________,
|
||||||
|
_______, _______, _______, _______, _______, ________________, _______, _______, _______, _______, _______
|
||||||
|
),
|
||||||
|
[_SECRET] = LAYOUT_atreus_wrapper( /* shhhh... */
|
||||||
|
/*
|
||||||
|
_______, _______, _______, RUSTY, FUEL, _______, _______, _______, _______, _______,
|
||||||
AR1ST, SYSNOC, _______, _______, _______, _______, _______, _______, OS_LAB, _______,
|
AR1ST, SYSNOC, _______, _______, _______, _______, _______, _______, OS_LAB, _______,
|
||||||
CDLOCAL, _______, C0RE, VAXIS, _______, _______, MUNKY, _______, _______, _______,
|
CDLOCAL, _______, C0RE, VAXIS, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
*/
|
||||||
|
________________SECRET_L1__________________, ________________SECRET_R1__________________,
|
||||||
|
________________SECRET_L2__________________, ________________SECRET_R2__________________,
|
||||||
|
________________SECRET_L3__________________, ________________SECRET_R3__________________,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
|
|
||||||
),
|
),
|
||||||
[_FINAL] = LAYOUT( /* . */
|
[_FINAL] = LAYOUT_atreus( /* . */
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, TESTING, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
// custom tap/hold keys
|
|
||||||
uint16_t key_timer;
|
|
||||||
bool process_record_keymap(uint16_t keycode, keyrecord_t *record) {
|
|
||||||
switch(keycode) {
|
|
||||||
case RG_QUOT:
|
|
||||||
if (record->event.pressed) {
|
|
||||||
key_timer = timer_read();
|
|
||||||
layer_on(_NUMBER);
|
|
||||||
register_mods(MOD_BIT(KC_RGUI));
|
|
||||||
} else {
|
|
||||||
unregister_mods(MOD_BIT(KC_RGUI));
|
|
||||||
layer_off(_NUMBER);
|
|
||||||
if (timer_elapsed(key_timer) < TAPPING_TERM) {
|
|
||||||
tap_code(KC_QUOT);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false; break;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
};
|
|
||||||
@@ -5,13 +5,14 @@ MCU = STM32F303
|
|||||||
#
|
#
|
||||||
BACKLIGHT_ENABLE = no
|
BACKLIGHT_ENABLE = no
|
||||||
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
|
||||||
#MOUSEKEY_ENABLE = yes # Mouse keys
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
CONSOLE_ENABLE = yes # Console for debug
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
COMMAND_ENABLE = yes # Commands for debug and configuration
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
#SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
|
|
||||||
NKRO_ENABLE = yes # USB Nkey Rollover
|
NKRO_ENABLE = yes # USB Nkey Rollover
|
||||||
AUDIO_ENABLE = yes
|
AUDIO_ENABLE = yes # Doot
|
||||||
RGBLIGHT_ENABLE = no
|
RGBLIGHT_ENABLE = no
|
||||||
# SERIAL_LINK_ENABLE = yes
|
TAP_DANCE_ENABLE = no
|
||||||
#TAP_DANCE_ENABLE = yes
|
UNICODE_ENABLE = no
|
||||||
|
UNICODEMAP_ENABLE = yes
|
||||||
|
|
||||||
@@ -20,13 +20,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
//#define USE_MATRIX_I2C
|
#define TAPPING_TERM 200
|
||||||
|
|
||||||
/* Select hand configuration */
|
|
||||||
|
|
||||||
#define MASTER_LEFT
|
#define MASTER_LEFT
|
||||||
// #define MASTER_RIGHT
|
|
||||||
// #define EE_HANDS
|
|
||||||
|
|
||||||
#define USE_SERIAL_PD2
|
#define USE_SERIAL_PD2
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,34 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2017 Balz Guenat
|
||||||
|
|
||||||
|
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_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_INS,
|
||||||
|
KC_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_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_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_CAPS,KC_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RCTL,MO(1), KC_LEFT,KC_DOWN,KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
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_PSCR,KC_SLCK,KC_PAUS,_______, _______,
|
||||||
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,
|
||||||
|
_______,_______,_______,_______,_______,_______,_______,KC_MUTE,KC_MPRV,KC_MNXT,KC_MPLY,_______, KC_PGUP,
|
||||||
|
_______,_______,_______, _______, _______,_______,_______, KC_HOME,KC_PGDN,KC_END
|
||||||
|
)
|
||||||
|
};
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# Build Options
|
||||||
|
# # change to "no" to disable the options, or define them in the Makefile in
|
||||||
|
# # the appropriate keymap folder that will get included automatically
|
||||||
|
# #
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#undef MATRIX_COL_PINS
|
||||||
|
#define MATRIX_COL_PINS { B3, B7, D0, D1, D2, D3, C6, C7, B5, B6, F7, F6 }
|
||||||
|
|
||||||
|
#undef MATRIX_ROW_PINS
|
||||||
|
#define MATRIX_ROW_PINS { F0, F1, F4, F5 }
|
||||||
@@ -0,0 +1,123 @@
|
|||||||
|
/* Copyright 2019 George Koenig
|
||||||
|
*
|
||||||
|
* 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 "ridingqwerty.h"
|
||||||
|
|
||||||
|
/* MinOrca
|
||||||
|
┏━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┯━━━━━━━━┓
|
||||||
|
┃ ⎋ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ ❦ ⌫ ┃
|
||||||
|
┠────────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴─┬──────┴────────┨
|
||||||
|
┃ ¶ ⇥ │ A │ S │ D │ F │ G │ H │ J │ K │ L │ 🔢 ↵ ┃
|
||||||
|
┠──────────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬────┴───┬───────────┨
|
||||||
|
┃ " ⇧ │ Z │ X │ C │ V │ B │ N │ M │ , │ 𝔽 . │ ⇧ / ┃
|
||||||
|
┠──────────┬───┴──────┬─┴────────┼────────┴────────┴──┬─────┴────────┴─────┬──┴───────┬┴───────┬┴───────────┨
|
||||||
|
┃ { ⎈ │ [ ⌘ │ ( ⌥ │ 🔢 ␣ │ ★ ␣ │ ) ⌥ │ ] ⌘ │ } ⎈ ┃
|
||||||
|
┗━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━┷━━━━━━━━┷━━━━━━━━━━━━┛
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define LAYOUT_minorca( \
|
||||||
|
KA00, KA01, KA02, KA03, KA04, KA05, KA06, KA07, KA08, KA09, KA10, KA11, \
|
||||||
|
KB00, KB01, KB02, KB03, KB04, KB05, KB06, KB07, KB08, KB09, KB11, \
|
||||||
|
KC00, KC02, KC03, KC04, KC05, KC06, KC07, KC08, KC09, KC10, KC11, \
|
||||||
|
KD00, KD02, KD03, KD04, KD07, KD09, KD10, KD11 \
|
||||||
|
) { \
|
||||||
|
{ KA00, KA01, KA02, KA03, KA04, KA05, KA06, KA07, KA08, KA09, KA10, KA11 }, \
|
||||||
|
{ KB00, KB01, KB02, KB03, KB04, KB05, KB06, KB07, KB08, KB09, KC_NO, KB11 }, \
|
||||||
|
{ KC00, KC_NO, KC02, KC03, KC04, KC05, KC06, KC07, KC08, KC09, KC10, KC11 }, \
|
||||||
|
{ KD00, KC_NO, KD02, KD03, KD04, KC_NO, KC_NO, KD07, KC_NO, KD09, KD10, KD11 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[_QWERTY] = {
|
||||||
|
{KC_GESC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, SC(BSPC) },
|
||||||
|
{ED(TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, XXXXXXX, NM(SCLN) },
|
||||||
|
{LS(QUOT), XXXXXXX, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, FK(DOT), RS(SLSH) },
|
||||||
|
{LC(ESC), XXXXXXX, LG(LBRC), LA(RBRC), NM(BSPC), XXXXXXX, XXXXXXX, SM(SPC), XXXXXXX, RA(MINS), RG(EQL), RC(ENT) }
|
||||||
|
/*
|
||||||
|
//┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
|
||||||
|
//├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
|
||||||
|
//├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
|
||||||
|
//└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
#ifdef UNICODE_H
|
||||||
|
[_RUNE] = {
|
||||||
|
{KC_ESC, X(INGWZ), X(WUNJO), X(EHWAZ), X(RAIDO), X(TIWAZ), X(IWAZ), X(UR), X(ISAZ), X(ETHEL), X(PERTH), SC(BSPC) },
|
||||||
|
{ED(TAB), X(ANSUZ), X(SOWIL), X(DAGAZ), X(FE), X(GEBO), X(HAGLZ), X(JERAN), X(KAUNA), X(LAUKZ), XXXXXXX, NM(SCLN) },
|
||||||
|
{MT_QUOT, XXXXXXX, X(ALGIZ), X(THURS), X(KAUNA), X(WUNJO), X(BEORC), X(NAUDZ), X(MANNZ), KC_COMM, FK(DOT), RS(SLSH) },
|
||||||
|
{LC(ESC), XXXXXXX, LG(LBRC), LA(RBRC), NM(BSPC), XXXXXXX, XXXXXXX, SM(SPC), XXXXXXX, RA(MINS), RG(EQL), RC(ENT) }
|
||||||
|
},
|
||||||
|
#endif
|
||||||
|
[_EDITOR] = {
|
||||||
|
//┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
|
{KC_GRV, _______, _______, KC_END, _______, KC_F5, _______, _______, KC_INS, _______, KC_PGUP, KC_DELT },
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
|
||||||
|
{_______, KC_HOME, _______, KC_DELT, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, KC_SCLN },
|
||||||
|
//├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
|
||||||
|
{_______, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PGDN, _______, KC_SCLN, KC_QUOT, KC_BSLS },
|
||||||
|
//├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
|
||||||
|
{_______, XXXXXXX, _______, _______, KC_EQL, XXXXXXX, XXXXXXX, KC_MINS, XXXXXXX, KC_COLN, KC_DQUO, KC_PIPE }
|
||||||
|
//└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
|
||||||
|
},
|
||||||
|
[_NUMBER] = {
|
||||||
|
//┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
|
{KC_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC },
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
|
||||||
|
{_______, KC_4, KC_5, KC_6, KC_PAST, _______, KC_PPLS, KC_4, KC_5, KC_6, XXXXXXX, _______ },
|
||||||
|
//├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
|
||||||
|
{_______, KC_7, KC_8, KC_9, KC_SLSH, _______, _______, KC_MINS, KC_1, KC_2, KC_3, _______ },
|
||||||
|
//├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
|
||||||
|
{_______, XXXXXXX, KC_0, _______, _______, XXXXXXX, XXXXXXX, KC_0, XXXXXXX, KC_DOT, _______, _______ }
|
||||||
|
//└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
|
||||||
|
},
|
||||||
|
[_SYMBOL] = {
|
||||||
|
//┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
|
{KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DELT },
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
|
||||||
|
{_______, _______, _______, _______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, XXXXXXX, _______ },
|
||||||
|
//├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
|
||||||
|
{_______, XXXXXXX, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_SCLN, KC_QUOT, KC_BSLS },
|
||||||
|
//├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
|
||||||
|
{_______, XXXXXXX, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, KC_COLN, KC_DQUO, KC_PIPE }
|
||||||
|
//└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
|
||||||
|
},
|
||||||
|
[_SECRET] = {
|
||||||
|
//┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
|
{RESET, _______, _______, _______, SECRET0, SECRET1, _______, _______, _______, _______, VERSION, _______ },
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
|
||||||
|
{_______, SECRET4, SECRET8, DEBUG, _______, _______, _______, _______, _______, SECRET7, XXXXXXX, MAKE },
|
||||||
|
//├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
|
||||||
|
{_______, XXXXXXX, SECRET6, _______, SECRET2, SECRET5, _______, _______, SECRET3, _______, _______, _______ },
|
||||||
|
//├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
|
||||||
|
{_______, XXXXXXX, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, _______, _______, _______ }
|
||||||
|
//└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
|
||||||
|
},
|
||||||
|
[_F_KEYS] = {
|
||||||
|
//┌────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┬────────┐
|
||||||
|
{KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11 },
|
||||||
|
//├────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┴────────┤
|
||||||
|
{_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, _______ },
|
||||||
|
//├────────┴────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┼────────┬────────┤
|
||||||
|
{_______, XXXXXXX, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ },
|
||||||
|
//├─────────────────┼────────┼────────┼────────┴────────┼────────┴────────┼────────┴────────┼────────┼────────┤
|
||||||
|
{_______, XXXXXXX, _______, _______, _______, XXXXXXX, XXXXXXX, _______, XXXXXXX, _______, _______, _______ }
|
||||||
|
//└─────────────────┴────────┴────────┴─────────────────┴─────────────────┴─────────────────┴────────┴────────┘
|
||||||
|
},
|
||||||
|
};
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# Handwire of Minorca using teensy 2.0
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
MCU = atmega32u4
|
||||||
|
BOOTLOADER = halfkay
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change to "no" to disable the options, or define them in the Makefile in
|
||||||
|
# the appropriate keymap folder that will get included automatically
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
UNICODE_ENABLE = no # Unicode
|
||||||
|
UNICODEMAP_ENABLE = yes # Unicode Map
|
||||||
@@ -32,7 +32,7 @@ This keymap is designed based off my typing habits and is subject to change. Inf
|
|||||||
|
|
||||||
### QWERTY
|
### QWERTY
|
||||||
```c
|
```c
|
||||||
/* Keymap 0: QWERTY
|
/* QWERTY
|
||||||
*
|
*
|
||||||
* ,--------------------------------------------------. ,--------------------------------------------------.
|
* ,--------------------------------------------------. ,--------------------------------------------------.
|
||||||
* | ` | 1 | 2 | 3 | 4 | 5 | Play | |K_LOCK | 6 | 7 | 8 | 9 | 0 | - |
|
* | ` | 1 | 2 | 3 | 4 | 5 | Play | |K_LOCK | 6 | 7 | 8 | 9 | 0 | - |
|
||||||
@@ -43,7 +43,7 @@ This keymap is designed based off my typing habits and is subject to change. Inf
|
|||||||
* |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
|
* |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
|
||||||
* | LShift | Z | X | C | V | B | | | | N | M | , | . | / | = |
|
* | LShift | Z | X | C | V | B | | | | N | M | , | . | / | = |
|
||||||
* `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
|
* `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
|
||||||
* |M_SHFT| | Alt | | Ctl | | BkSP | Del |LOWER |M_XXX1|M_PYNV|
|
* | | | Alt | | Ctl | | BkSP | Del |LOWER | | |
|
||||||
* `----------------------------------' `----------------------------------'
|
* `----------------------------------' `----------------------------------'
|
||||||
* ,-------------. ,-------------.
|
* ,-------------. ,-------------.
|
||||||
* | Up | Down | | Left | Right|
|
* | Up | Down | | Left | Right|
|
||||||
@@ -57,16 +57,16 @@ This keymap is designed based off my typing habits and is subject to change. Inf
|
|||||||
|
|
||||||
### LOWER
|
### LOWER
|
||||||
```c
|
```c
|
||||||
/* Keymap 1: LOWER
|
/* LOWER
|
||||||
*
|
*
|
||||||
* ,--------------------------------------------------. ,----------------------------------------------------.
|
* ,--------------------------------------------------. ,----------------------------------------------------.
|
||||||
* | F11 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F12 |
|
* | F11 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F12 |
|
||||||
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
|
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
|
||||||
* | | | |KC_BRU| Play | Mute | | | | PgUp | Home | Up | End | | |
|
* | | |KC_BRU| Play | Mute | | | | | PgUp | Home | Up | End | | |
|
||||||
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
||||||
* | | | |KC_BRD| Next |VolUp |------| |-------| PgDn | Left | Down |Right |K_LOCK | |
|
* | | |KC_BRD| Next |VolUp | |------| |-------| PgDn | Left | Down |Right |K_LOCK | |
|
||||||
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
||||||
* | | | | | Prev |VolDn | | | | | | | | | |
|
* | | | | Prev |VolDn | | | | | | | | | | |
|
||||||
* `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
|
* `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
|
||||||
* | | | | | | | | | |M_CODE | |
|
* | | | | | | | | | |M_CODE | |
|
||||||
* `----------------------------------' `-----------------------------------'
|
* `----------------------------------' `-----------------------------------'
|
||||||
@@ -82,16 +82,16 @@ This keymap is designed based off my typing habits and is subject to change. Inf
|
|||||||
|
|
||||||
### RAISE
|
### RAISE
|
||||||
```c
|
```c
|
||||||
/* Keymap 2: RAISE
|
/* RAISE
|
||||||
*
|
*
|
||||||
* ,--------------------------------------------------. ,----------------------------------------------------.
|
* ,--------------------------------------------------. ,----------------------------------------------------.
|
||||||
* | | | | |K_CSCN| | | | | | | | | | |
|
* | | | | | | | | | | | | | | | |
|
||||||
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
|
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
|
||||||
* | M_MAKE | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | | | |
|
* | | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | | | |
|
||||||
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
||||||
* | M_VRSN | | MS_L | MS_D | MS_R | WH_D |------| |-------| | | | | | |
|
* | | | MS_L | MS_D | MS_R | WH_D |------| |-------| | | | | | |
|
||||||
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
||||||
* | M_FLSH | | | | | | | | | | | | | | |
|
* | | | | | | | | | | | | | | | |
|
||||||
* `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
|
* `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
|
||||||
* | | | | | | | | | | | |
|
* | | | | | | | | | | | |
|
||||||
* `----------------------------------' `-----------------------------------'
|
* `----------------------------------' `-----------------------------------'
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
|
* |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
|
||||||
* | LShift | Z | X | C | V | B | | | | N | M | , | . | / | = |
|
* | LShift | Z | X | C | V | B | | | | N | M | , | . | / | = |
|
||||||
* `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
|
* `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
|
||||||
* |M_SHFT| | Alt | | Ctl | | BkSP | Del |LOWER |M_XXX1|M_PYNV|
|
* | | | Alt | | Ctl | | BkSP | Del |LOWER | | |
|
||||||
* `----------------------------------' `----------------------------------'
|
* `----------------------------------' `----------------------------------'
|
||||||
* ,-------------. ,-------------.
|
* ,-------------. ,-------------.
|
||||||
* | Up | Down | | Left | Right|
|
* | Up | Down | | Left | Right|
|
||||||
@@ -41,10 +41,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
[_QWERTY] = LAYOUT_ergodox_wrapper(
|
[_QWERTY] = LAYOUT_ergodox_wrapper(
|
||||||
// LEFT HAND
|
// LEFT HAND
|
||||||
_____________________NUM_LEFT_______________________, KC_MPLY,
|
_____________________NUM_LEFT_______________________, KC_MPLY,
|
||||||
_____________________QWERTY_L1______________________, KC_NO,
|
_____________________QWERTY_L1______________________, XXXXXXX,
|
||||||
_____________________QWERTY_L2______________________,
|
_____________________QWERTY_L2______________________,
|
||||||
_____________________QWERTY_L3______________________, T_LBRC,
|
_____________________QWERTY_L3______________________, T_LBRC,
|
||||||
M_SHFT, KC_NO, ________MOD_LEFT_________,
|
XXXXXXX, XXXXXXX, ________MOD_LEFT_________,
|
||||||
// LEFT THUMB
|
// LEFT THUMB
|
||||||
KC_UP, KC_DOWN,
|
KC_UP, KC_DOWN,
|
||||||
KC_HOME,
|
KC_HOME,
|
||||||
@@ -53,10 +53,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
//RIGHT HAND
|
//RIGHT HAND
|
||||||
K_LOCK, _____________________NUM_RIGHT______________________,
|
K_LOCK, _____________________NUM_RIGHT______________________,
|
||||||
KC_NO, _____________________QWERTY_R1______________________,
|
XXXXXXX,_____________________QWERTY_R1______________________,
|
||||||
_____________________QWERTY_R2______________________,
|
_____________________QWERTY_R2______________________,
|
||||||
T_RBRC, _____________________QWERTY_R3______________________,
|
T_RBRC, _____________________QWERTY_R3______________________,
|
||||||
________MOD_RIGHT________, M_XXX1, M_PYNV,
|
________MOD_RIGHT________, XXXXXXX, XXXXXXX,
|
||||||
// RIGHT THUMB
|
// RIGHT THUMB
|
||||||
KC_LEFT, KC_RGHT,
|
KC_LEFT, KC_RGHT,
|
||||||
KC_PGUP,
|
KC_PGUP,
|
||||||
@@ -75,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
|
* |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
|
||||||
* | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | = |
|
* | LShift | ; | Q | J | K | X | | | | B | M | W | V | Z | = |
|
||||||
* `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
|
* `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
|
||||||
* |M_SHFT| | Alt | | Ctl | | BkSP | Del |LOWER |M_XXX1|M_PYNV|
|
* | | | Alt | | Ctl | | BkSP | Del |LOWER | | |
|
||||||
* `----------------------------------' `----------------------------------'
|
* `----------------------------------' `----------------------------------'
|
||||||
* ,-------------. ,-------------.
|
* ,-------------. ,-------------.
|
||||||
* | Up | Down | | Left | Right|
|
* | Up | Down | | Left | Right|
|
||||||
@@ -88,10 +88,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
[_DVORAK] = LAYOUT_ergodox_wrapper(
|
[_DVORAK] = LAYOUT_ergodox_wrapper(
|
||||||
// LEFT HAND
|
// LEFT HAND
|
||||||
_____________________NUM_LEFT_______________________, KC_MPLY,
|
_____________________NUM_LEFT_______________________, KC_MPLY,
|
||||||
_____________________DVORAK_L1______________________, KC_NO,
|
_____________________DVORAK_L1______________________, XXXXXXX,
|
||||||
_____________________DVORAK_L2______________________,
|
_____________________DVORAK_L2______________________,
|
||||||
_____________________DVORAK_L3______________________, T_LBRC,
|
_____________________DVORAK_L3______________________, T_LBRC,
|
||||||
M_SHFT, KC_NO, ________MOD_LEFT_________,
|
XXXXXXX, XXXXXXX, ________MOD_LEFT_________,
|
||||||
// LEFT THUMB
|
// LEFT THUMB
|
||||||
KC_UP, KC_DOWN,
|
KC_UP, KC_DOWN,
|
||||||
KC_HOME,
|
KC_HOME,
|
||||||
@@ -100,10 +100,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
//RIGHT HAND
|
//RIGHT HAND
|
||||||
K_LOCK, _____________________NUM_RIGHT______________________,
|
K_LOCK, _____________________NUM_RIGHT______________________,
|
||||||
KC_NO, _____________________DVORAK_R1______________________,
|
XXXXXXX,_____________________DVORAK_R1______________________,
|
||||||
_____________________DVORAK_R2______________________,
|
_____________________DVORAK_R2______________________,
|
||||||
T_RBRC, _____________________DVORAK_R3______________________,
|
T_RBRC, _____________________DVORAK_R3______________________,
|
||||||
________MOD_RIGHT________, M_XXX1, M_PYNV,
|
________MOD_RIGHT________, XXXXXXX, XXXXXXX,
|
||||||
// RIGHT THUMB
|
// RIGHT THUMB
|
||||||
KC_LEFT, KC_RGHT,
|
KC_LEFT, KC_RGHT,
|
||||||
KC_PGUP,
|
KC_PGUP,
|
||||||
@@ -122,7 +122,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
|
* |--------+------+------+------+------+------| [ | | ] |------+------+------+------+------+--------|
|
||||||
* | LShift | Z | X | C | V | B | | | | K | M | , | . | / | = |
|
* | LShift | Z | X | C | V | B | | | | K | M | , | . | / | = |
|
||||||
* `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
|
* `--------+------+------+------+------+-------------' `--------------+------+------+------+------+--------'
|
||||||
* |M_SHFT| | Alt | | Ctl | | BkSP | Del |LOWER |M_XXX1|M_PYNV|
|
* | | | Alt | | Ctl | | BkSP | Del |LOWER | | |
|
||||||
* `----------------------------------' `----------------------------------'
|
* `----------------------------------' `----------------------------------'
|
||||||
* ,-------------. ,-------------.
|
* ,-------------. ,-------------.
|
||||||
* | Up | Down | | Left | Right|
|
* | Up | Down | | Left | Right|
|
||||||
@@ -135,10 +135,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
[_COLEMAK] = LAYOUT_ergodox_wrapper(
|
[_COLEMAK] = LAYOUT_ergodox_wrapper(
|
||||||
// LEFT HAND
|
// LEFT HAND
|
||||||
_____________________NUM_LEFT_______________________, KC_MPLY,
|
_____________________NUM_LEFT_______________________, KC_MPLY,
|
||||||
_____________________COLEMAK_L1_____________________, KC_NO,
|
_____________________COLEMAK_L1_____________________, XXXXXXX,
|
||||||
_____________________COLEMAK_L2_____________________,
|
_____________________COLEMAK_L2_____________________,
|
||||||
_____________________COLEMAK_L3_____________________, T_LBRC,
|
_____________________COLEMAK_L3_____________________, T_LBRC,
|
||||||
M_SHFT, KC_NO, ________MOD_LEFT_________,
|
XXXXXXX, XXXXXXX, ________MOD_LEFT_________,
|
||||||
// LEFT THUMB
|
// LEFT THUMB
|
||||||
KC_UP, KC_DOWN,
|
KC_UP, KC_DOWN,
|
||||||
KC_HOME,
|
KC_HOME,
|
||||||
@@ -147,10 +147,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
//RIGHT HAND
|
//RIGHT HAND
|
||||||
K_LOCK, _____________________NUM_RIGHT______________________,
|
K_LOCK, _____________________NUM_RIGHT______________________,
|
||||||
KC_NO, _____________________COLEMAK_R1_____________________,
|
XXXXXXX,_____________________COLEMAK_R1_____________________,
|
||||||
_____________________COLEMAK_R2_____________________,
|
_____________________COLEMAK_R2_____________________,
|
||||||
T_RBRC, _____________________COLEMAK_R3_____________________,
|
T_RBRC, _____________________COLEMAK_R3_____________________,
|
||||||
________MOD_RIGHT________, M_XXX1, M_PYNV,
|
________MOD_RIGHT________, XXXXXXX, XXXXXXX,
|
||||||
// RIGHT THUMB
|
// RIGHT THUMB
|
||||||
KC_LEFT, KC_RGHT,
|
KC_LEFT, KC_RGHT,
|
||||||
KC_PGUP,
|
KC_PGUP,
|
||||||
@@ -163,11 +163,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
* ,--------------------------------------------------. ,----------------------------------------------------.
|
* ,--------------------------------------------------. ,----------------------------------------------------.
|
||||||
* | F11 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F12 |
|
* | F11 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F12 |
|
||||||
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
|
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
|
||||||
* | | | |KC_BRU| Play | Mute | | | | PgUp | Home | Up | End | | |
|
* | | |KC_BRU| Play | Mute | | | | | PgUp | Home | Up | End | | |
|
||||||
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
||||||
* | | | |KC_BRD| Next |VolUp |------| |-------| PgDn | Left | Down |Right |K_LOCK | |
|
* | | |KC_BRD| Next |VolUp | |------| |-------| PgDn | Left | Down |Right |K_LOCK | |
|
||||||
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
||||||
* | | | | | Prev |VolDn | | | | | | | | | |
|
* | | | | Prev |VolDn | | | | | | | | | | |
|
||||||
* `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
|
* `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
|
||||||
* | | | | | | | | | |M_CODE | |
|
* | | | | | | | | | |M_CODE | |
|
||||||
* `----------------------------------' `-----------------------------------'
|
* `----------------------------------' `-----------------------------------'
|
||||||
@@ -182,9 +182,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
[_LOWER] = LAYOUT_ergodox_wrapper(
|
[_LOWER] = LAYOUT_ergodox_wrapper(
|
||||||
//LEFT HAND
|
//LEFT HAND
|
||||||
_____________________FUNC_LEFT______________________, _______,
|
_____________________FUNC_LEFT______________________, _______,
|
||||||
_______, _______, _______, _________MEDIA_1_________, _______,
|
_____________________LOWER_L1_______________________, _______,
|
||||||
_______, _______, _______, _________MEDIA_2_________,
|
_____________________LOWER_L2_______________________,
|
||||||
_______, _______, _______, _________MEDIA_3_________, _______,
|
_____________________LOWER_L3_______________________, _______,
|
||||||
_______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______,
|
||||||
// LEFT THUMB
|
// LEFT THUMB
|
||||||
_______, _______,
|
_______, _______,
|
||||||
@@ -194,9 +194,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
//RIGHT HAND
|
//RIGHT HAND
|
||||||
_______, _____________________FUNC_RIGHT_____________________,
|
_______, _____________________FUNC_RIGHT_____________________,
|
||||||
_______, _______________NAV_1______________, _______, _______,
|
_______, _____________________LOWER_R1_______________________,
|
||||||
_______________NAV_2______________, K_LOCK, _______,
|
_____________________LOWER_R2_______________________,
|
||||||
_______, _______, _______, _______, _______, _______, _______,
|
_______, _____________________LOWER_R3_______________________,
|
||||||
_______, _______, _______, M_CODE, _______,
|
_______, _______, _______, M_CODE, _______,
|
||||||
// RIGHT THUMB
|
// RIGHT THUMB
|
||||||
_______, _______,
|
_______, _______,
|
||||||
@@ -208,7 +208,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
/* RAISE
|
/* RAISE
|
||||||
*
|
*
|
||||||
* ,--------------------------------------------------. ,----------------------------------------------------.
|
* ,--------------------------------------------------. ,----------------------------------------------------.
|
||||||
* | | | | |K_CSCN| | | | | | | | | | |
|
* | | | | | | | | | | | | | | | |
|
||||||
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
|
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
|
||||||
* | | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | | | |
|
* | | | MS_1 | MS_U | MS_2 | WH_U | | | | | | | | | |
|
||||||
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
||||||
@@ -228,7 +228,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
*/
|
*/
|
||||||
[_RAISE] = LAYOUT_ergodox_wrapper(
|
[_RAISE] = LAYOUT_ergodox_wrapper(
|
||||||
//LEFT HAND
|
//LEFT HAND
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, K_CSCN, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
XXXXXXX, XXXXXXX, _____________MOUSE_1______________, XXXXXXX,
|
XXXXXXX, XXXXXXX, _____________MOUSE_1______________, XXXXXXX,
|
||||||
XXXXXXX, XXXXXXX, _____________MOUSE_2______________,
|
XXXXXXX, XXXXXXX, _____________MOUSE_2______________,
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
@@ -255,11 +255,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
/* ADJUST
|
/* ADJUST
|
||||||
*
|
*
|
||||||
* ,--------------------------------------------------. ,----------------------------------------------------.
|
* ,--------------------------------------------------. ,----------------------------------------------------.
|
||||||
* | | | | | | | | | | | | |COLMAK|DVORAK |QWERTY |
|
* | | | | | | | | | | | | | | | |
|
||||||
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
|
* |--------+------+------+------+------+-------------| |-------+------+------+------+------+-------+--------|
|
||||||
* | M_MAKE | | | | | | | | | | | | | | |
|
* | M_MAKE |RESET | | | | | | | | | | |COLMAK|DVORAK |QWERTY |
|
||||||
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
||||||
* | M_VRSN | | | | | |------| |-------| | | | | | |
|
* | M_VRSN |M_MALL| | | | |------| |-------| | | | | | |
|
||||||
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
* |--------+------+------+------+------+------| | | |------+------+------+------+-------+--------|
|
||||||
* | M_FLSH | | | | | | | | | | | | | | |
|
* | M_FLSH | | | | | | | | | | | | | | |
|
||||||
* `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
|
* `--------+------+------+------+------+-------------' `--------------+------+------+------+-------+--------'
|
||||||
@@ -276,9 +276,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
[_ADJUST] = LAYOUT_ergodox_wrapper(
|
[_ADJUST] = LAYOUT_ergodox_wrapper(
|
||||||
//LEFT HAND
|
//LEFT HAND
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
M_MAKE, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
_____________________ADJUST_L1______________________, XXXXXXX,
|
||||||
M_VRSN, M_MALL, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
_____________________ADJUST_L1______________________,
|
||||||
M_FLSH, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
_____________________ADJUST_L1______________________, XXXXXXX,
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
// LEFT THUMB
|
// LEFT THUMB
|
||||||
_______, _______,
|
_______, _______,
|
||||||
@@ -287,10 +287,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
_______,
|
_______,
|
||||||
|
|
||||||
//RIGHT HAND
|
//RIGHT HAND
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, COLEMAK, DVORAK, QWERTY,
|
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
XXXXXXX, _____________________ADJUST_R1______________________,
|
||||||
|
_____________________ADJUST_R1______________________,
|
||||||
|
XXXXXXX, _____________________ADJUST_R1______________________,
|
||||||
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
// RIGHT THUMB
|
// RIGHT THUMB
|
||||||
_______, _______,
|
_______, _______,
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
LINK_TIME_OPTIMIZATION_ENABLE = yes
|
||||||
@@ -10,10 +10,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
[1] = LAYOUT_65_ansi_blocker(
|
[1] = LAYOUT_65_ansi_blocker(
|
||||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL,
|
||||||
KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, KC_TRNS, RGB_SAI, RGB_HUI, KC_TRNS, KC_TRNS, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUS, KC_TRNS, KC_END,
|
_______, _______, RGB_VAI, _______, _______, RGB_SAI, RGB_HUI, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, KC_END,
|
||||||
KC_TRNS, RGB_SPD, RGB_VAD, RGB_SPI, KC_TRNS, RGB_SAD, RGB_HUD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU,
|
_______, RGB_SPD, RGB_VAD, RGB_SPI, _______, RGB_SAD, RGB_HUD, _______, _______, _______, _______, _______, _______, KC_VOLU,
|
||||||
KC_TRNS, RGB_RMOD, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, KC_TRNS, KC_PGUP, KC_VOLD,
|
_______, RGB_RMOD, RGB_TOG, RGB_MOD, _______, _______, _______, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_VOLD,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END
|
_______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
This is the c configuration file for the keymap
|
||||||
|
|
||||||
|
Copyright 2012 Jun Wako <[email protected]>
|
||||||
|
Copyright 2015 Jack Humbert
|
||||||
|
Copyright 2018 Danny Nguyen <[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
|
||||||
|
|
||||||
|
/* Use I2C or Serial, not both */
|
||||||
|
|
||||||
|
#define USE_SERIAL
|
||||||
|
// #define USE_I2C
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
#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 {
|
||||||
|
_BASE,
|
||||||
|
_FN1,
|
||||||
|
_RGB2,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum custom_keycodes {
|
||||||
|
QWERTY = SAFE_RANGE,
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/**
|
||||||
|
LA1, LA2, LA3, LA4, LA5, LA6, LA7, RA1, RA2, RA3, RA4, RA5, RA6, RA7, RA8, RA9, \
|
||||||
|
LB1, LB2, LB3, LB4, LB5, LB6, RB1, RB2, RB3, RB4, RB5, RB6, RB7, RB8, RB9, \
|
||||||
|
LC1, LC2, LC3, LC4, LC5, LC6, RC1, RC2, RC3, RC4, RC5, RC6, RC8, RC9, \
|
||||||
|
LD1, LD3, LD4, LD5, LD6, LD7, RD1, RD2, RD3, RD4, RD6, RD7, RD8, RD9, \
|
||||||
|
LE1, LE2, LE3, LE5, LE7, RE1, RE2, RE4, RE5, RE6, RE7, RE8, RE9 \
|
||||||
|
) \
|
||||||
|
**/
|
||||||
|
[_BASE] = LAYOUT_65(
|
||||||
|
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, _______, KC_BSPC, KC_HOME, \
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_END, \
|
||||||
|
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_PGUP, \
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN, \
|
||||||
|
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, MO(_FN1), KC_SPC, _______, KC_RALT, KC_RCTL, MO(_FN1), KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN1] = LAYOUT_65(
|
||||||
|
KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_MUTE, KC_BRMU, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_BRMD, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLU, _______, \
|
||||||
|
_______, _______, _______, TG(_RGB2), _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_MNXT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_RGB2] = LAYOUT_65(
|
||||||
|
KC_GESC, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, RGB_M_T, _______, _______, _______, _______, _______, RGB_VAI, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAD, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SAI, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAD, \
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_RMOD, RGB_HUD, RGB_MOD
|
||||||
|
)
|
||||||
|
};
|
||||||
+20
-2
@@ -1,4 +1,4 @@
|
|||||||
/* Copyright 2019 Mechlovin
|
/* Copyright 2020 ninjonas
|
||||||
*
|
*
|
||||||
* 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
|
||||||
@@ -16,4 +16,22 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
// place overrides here
|
#define TAPPING_TERM 200
|
||||||
|
|
||||||
|
#ifdef OLED_DRIVER_ENABLE
|
||||||
|
#define OLED_DISPLAY_128X64
|
||||||
|
#define OLED_TIMEOUT 15000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef RGBLIGHT_ENABLE
|
||||||
|
# define RGBLIGHT_SLEEP
|
||||||
|
# define RGBLIGHT_LIMIT_VAL 200
|
||||||
|
# define RGBLIGHT_HUE_STEP 8
|
||||||
|
# define RGBLIGHT_SAT_STEP 8
|
||||||
|
# define RGBLIGHT_VAL_STEP 8
|
||||||
|
# define RGBLIGHT_SPLIT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// If you are using an Elite C rev3 on the slave side, uncomment the lines below:
|
||||||
|
#define SPLIT_USB_DETECT
|
||||||
|
#define SPLIT_USB_TIMEOUT 1000
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
/* Copyright 2020 ninjonas
|
||||||
|
*
|
||||||
|
* 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 "ninjonas.h"
|
||||||
|
|
||||||
|
#ifdef ENCODER_ENABLE
|
||||||
|
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
if (index == 0) {
|
||||||
|
switch (get_highest_layer(layer_state)) {
|
||||||
|
case _LOWER:
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code16(SGUI(KC_TAB));
|
||||||
|
} else {
|
||||||
|
tap_code16(LGUI(KC_TAB));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case _RAISE:
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_PGUP);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_PGDN);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case _ADJUST:
|
||||||
|
if (clockwise) {
|
||||||
|
rgblight_increase_hue();
|
||||||
|
} else {
|
||||||
|
rgblight_decrease_hue();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_BRIU);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_BRID);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
} else if (index == 1) {
|
||||||
|
switch (get_highest_layer(layer_state)) {
|
||||||
|
case _LOWER:
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_UP);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_DOWN);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case _RAISE:
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code16(LCTL(KC_TAB));
|
||||||
|
} else {
|
||||||
|
tap_code16(LCTL(LSFT(KC_TAB)));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case _ADJUST:
|
||||||
|
if (clockwise) {
|
||||||
|
rgblight_increase_val();
|
||||||
|
} else {
|
||||||
|
rgblight_decrease_val();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_VOLU);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_VOLD);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,105 @@
|
|||||||
|
/* Copyright 2020 ninjonas
|
||||||
|
*
|
||||||
|
* 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 "ninjonas.h"
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[_QWERTY] = LAYOUT_wrapper(
|
||||||
|
// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
|
||||||
|
_____________________QWERTY_L1______________________, _____________________QWERTY_R1______________________,
|
||||||
|
// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
|
||||||
|
_____________________QWERTY_L2______________________, _____________________QWERTY_R2______________________,
|
||||||
|
// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
|
||||||
|
_____________________QWERTY_L3______________________,XXXXXXX,KC_LALT, M_COPA,XXXXXXX,_____________________QWERTY_R3______________________,
|
||||||
|
// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
|
||||||
|
_____________MOD_LEFT_____________,T_LBRC, T_RBRC,________MOD_RIGHT________,KC_MUTE
|
||||||
|
// `----------------------------------------' `----------------------------------------'
|
||||||
|
),
|
||||||
|
|
||||||
|
[_DVORAK] = LAYOUT_wrapper(
|
||||||
|
// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
|
||||||
|
_____________________DVORAK_L1______________________, _____________________DVORAK_R1______________________,
|
||||||
|
// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
|
||||||
|
_____________________DVORAK_L2______________________, _____________________DVORAK_R2______________________,
|
||||||
|
// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
|
||||||
|
_____________________DVORAK_L3______________________,XXXXXXX,KC_LALT, M_COPA,XXXXXXX,_____________________DVORAK_R3______________________,
|
||||||
|
// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
|
||||||
|
_____________MOD_LEFT_____________,T_LBRC, T_RBRC,________MOD_RIGHT________,KC_MUTE
|
||||||
|
// `----------------------------------------' `----------------------------------------'
|
||||||
|
),
|
||||||
|
|
||||||
|
[_COLEMAK] = LAYOUT_wrapper(
|
||||||
|
// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
|
||||||
|
_____________________COLEMAK_L1_____________________, _____________________COLEMAK_R1_____________________,
|
||||||
|
// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
|
||||||
|
_____________________COLEMAK_L2_____________________, _____________________COLEMAK_R2_____________________,
|
||||||
|
// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
|
||||||
|
_____________________COLEMAK_L3_____________________,XXXXXXX,KC_LALT, M_COPA,XXXXXXX,_____________________COLEMAK_R3_____________________,
|
||||||
|
// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
|
||||||
|
_____________MOD_LEFT_____________,T_LBRC, T_RBRC,________MOD_RIGHT________,KC_MUTE
|
||||||
|
// `----------------------------------------' `----------------------------------------'
|
||||||
|
),
|
||||||
|
|
||||||
|
[_LOWER] = LAYOUT_wrapper(
|
||||||
|
// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
|
||||||
|
_____________________LOWER_L1_______________________, _____________________LOWER_R1_______________________,
|
||||||
|
// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
|
||||||
|
_____________________LOWER_L2_______________________, _____________________LOWER_R2_______________________,
|
||||||
|
// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
|
||||||
|
_____________________LOWER_L3_______________________,_______,_______, _______,_______,_____________________LOWER_R3_______________________,
|
||||||
|
// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
|
||||||
|
_______,_______,_______,_______,_______, _______,_______,_______,_______,_______
|
||||||
|
// `----------------------------------------' `----------------------------------------'
|
||||||
|
),
|
||||||
|
|
||||||
|
[_RAISE] = LAYOUT_wrapper(
|
||||||
|
// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
|
||||||
|
_____________________NUM_LEFT_______________________, _____________________NUM_RIGHT______________________,
|
||||||
|
// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
|
||||||
|
_____________________SYM_LEFT_______________________, _____________________SYM_RIGHT______________________,
|
||||||
|
// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
|
||||||
|
_____________________FUNC_LEFT______________________,_______,_______, K_CPRF,_______,_____________________FUNC_RIGHT_____________________,
|
||||||
|
// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
|
||||||
|
_______,_______,_______,_______,_______, _______,_______,_______,_______,_______
|
||||||
|
// `----------------------------------------' `----------------------------------------'
|
||||||
|
),
|
||||||
|
|
||||||
|
[_ADJUST] = LAYOUT_wrapper(
|
||||||
|
// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
|
||||||
|
_____________________ADJUST_L1______________________, _____________________ADJUST_R1______________________,
|
||||||
|
// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
|
||||||
|
_____________________ADJUST_L2______________________, _____________________ADJUST_R2______________________,
|
||||||
|
// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
|
||||||
|
_____________________ADJUST_L3______________________,_______,_______, _______,_______,_____________________ADJUST_R3______________________,
|
||||||
|
// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
|
||||||
|
_______,_______,_______,_______,_______, _______,_______,_______,_______,_______
|
||||||
|
// `----------------------------------------' `----------------------------------------'
|
||||||
|
),
|
||||||
|
/*
|
||||||
|
[_TEMPLATE] = LAYOUT_wrapper(
|
||||||
|
// ,------—————————-------------------------------------. ,--------—————————-----------------------------------.
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
// |--------+-----——-+——------+-——-----+——------+——-----| |------—+——------+——------+——------+——------+--------|
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
// |--------+-----——-+——------+-——-----+——------+——-----+———-----------. ,——————————————+------—+——------+——------+——------+——------+--------|
|
||||||
|
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
|
||||||
|
// `--------------------------+--------+--------+-------+-------+------| |------+-------+-------+--------+--------+--------+--------+--------'
|
||||||
|
XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX,XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX
|
||||||
|
// `----------------------------------------' `----------------------------------------'
|
||||||
|
),
|
||||||
|
*/
|
||||||
|
};
|
||||||
@@ -0,0 +1,168 @@
|
|||||||
|
/* Copyright 2020 ninjonas
|
||||||
|
*
|
||||||
|
* 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 "ninjonas.h"
|
||||||
|
|
||||||
|
#ifdef OLED_DRIVER_ENABLE
|
||||||
|
oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_180; }
|
||||||
|
|
||||||
|
static void render_logo(void) {
|
||||||
|
static const char PROGMEM logo[] = {
|
||||||
|
// Converter: https://javl.github.io/image2cpp/
|
||||||
|
// Image Dimensions: 128x64
|
||||||
|
// Code Output Format: Plain Bytes
|
||||||
|
// Draw Mode: Vertical, 1 bit per pixel
|
||||||
|
0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x00, 0x00, 0xe0,
|
||||||
|
0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x80, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00, 0xe0, 0xe0, 0xe0,
|
||||||
|
0xe0, 0x00, 0x60, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0, 0xe0, 0x80, 0x00, 0x00,
|
||||||
|
0xc0, 0xe0, 0xe0, 0xe0, 0x20, 0x60, 0xe0, 0xe0, 0xe0, 0xe0, 0x00, 0x00, 0x00, 0xe0, 0xe0, 0xe0,
|
||||||
|
0xe0, 0x00, 0x00, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0xc0, 0x00, 0x00, 0x00,
|
||||||
|
0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0xe0, 0xe0, 0xfc, 0xfe,
|
||||||
|
0xfe, 0xfe, 0xee, 0xee, 0x0e, 0x80, 0xc0, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0x80, 0xc0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x79, 0xfd, 0xfd, 0xfd, 0xec, 0xee, 0x76, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00,
|
||||||
|
0x07, 0x3f, 0xff, 0xfc, 0xf8, 0xff, 0x7f, 0x07, 0x0f, 0x7f, 0xff, 0xf8, 0xfc, 0xff, 0x3f, 0x07,
|
||||||
|
0x00, 0x00, 0x00, 0x03, 0x1f, 0xff, 0xfe, 0xf0, 0xff, 0x7f, 0x0f, 0x07, 0x3f, 0xff, 0xfc, 0xf8,
|
||||||
|
0xff, 0x7f, 0x0f, 0x01, 0x00, 0x00, 0x01, 0x0f, 0x3f, 0xff, 0xfe, 0xf8, 0xff, 0xff, 0x1f, 0x03,
|
||||||
|
0x00, 0x00, 0x1f, 0x7f, 0x7f, 0xff, 0xf6, 0xe6, 0xe6, 0xf7, 0xf7, 0x77, 0x37, 0x17, 0x00, 0x30,
|
||||||
|
0x79, 0xfd, 0xfd, 0xfd, 0xee, 0xee, 0x76, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff,
|
||||||
|
0xff, 0xff, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0x7f, 0xff, 0xf1, 0xe0, 0xe0, 0xff, 0xff, 0x7f, 0x3f,
|
||||||
|
0x0e, 0x00, 0x0e, 0x3f, 0x7f, 0xff, 0xff, 0xe0, 0xe0, 0xe1, 0xff, 0x7f, 0x7f, 0x3f, 0x04, 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, 0x80, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0,
|
||||||
|
0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x0e, 0x0e, 0x0f, 0x0f, 0x07, 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, 0x0c, 0x3c, 0xfc, 0xfc, 0xfc, 0xc0, 0x00, 0xe0, 0xfc, 0xfc, 0x7c, 0x1c, 0x00, 0xf0, 0xf8,
|
||||||
|
0xf8, 0xfc, 0xdc, 0xdc, 0xdc, 0xfc, 0xfc, 0xf8, 0xf0, 0xe0, 0x00, 0x00, 0x30, 0xb8, 0xbc, 0xbc,
|
||||||
|
0xdc, 0xdc, 0xdc, 0xfc, 0xfc, 0xf8, 0xf0, 0x00, 0x1c, 0x1c, 0xff, 0xff, 0xff, 0xff, 0x1d, 0x1d,
|
||||||
|
0x00, 0xf0, 0xf8, 0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0xfc, 0xfc, 0xf8, 0xf0, 0xc0, 0x00, 0xe0, 0xf0,
|
||||||
|
0xf8, 0xfc, 0x3c, 0x1c, 0x1c, 0x3c, 0xfc, 0xf8, 0xf8, 0xe0, 0x00, 0x00, 0x20, 0xb8, 0xbc, 0xbc,
|
||||||
|
0xbc, 0xdc, 0xdc, 0xfc, 0xfc, 0xfc, 0xf8, 0xe0, 0x00, 0x0c, 0x7c, 0xfc, 0xfc, 0xc0, 0x00, 0xe0,
|
||||||
|
0xfc, 0xfc, 0xfc, 0xfc, 0xf0, 0x80, 0x00, 0xf8, 0xfc, 0xfc, 0x3c, 0x04, 0x0c, 0x7c, 0xfc, 0xfc,
|
||||||
|
0xf0, 0x00, 0xc0, 0xfc, 0xfc, 0x7c, 0xfc, 0xf8, 0xc0, 0x00, 0xf0, 0xfc, 0xfc, 0x7c, 0x0c, 0x00,
|
||||||
|
0x00, 0x00, 0xc0, 0xc1, 0xc7, 0xff, 0xff, 0xff, 0x7f, 0x1f, 0x03, 0x00, 0x00, 0x00, 0x07, 0x0f,
|
||||||
|
0x1f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1e, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x06, 0x0f, 0x1f, 0x1f, 0x1f,
|
||||||
|
0x1d, 0x1d, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00,
|
||||||
|
0x00, 0x07, 0x0f, 0x0f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x03, 0x07,
|
||||||
|
0x0f, 0x1f, 0x1e, 0x1c, 0x1c, 0x1e, 0x1f, 0x0f, 0x0f, 0x03, 0x00, 0x00, 0x0f, 0x1f, 0x1f, 0x1f,
|
||||||
|
0x1d, 0x1d, 0x0c, 0x0f, 0x1f, 0x1f, 0x1f, 0x1f, 0x00, 0x00, 0x00, 0x03, 0x1f, 0x1f, 0x1e, 0x1f,
|
||||||
|
0x0f, 0x01, 0x00, 0x07, 0x1f, 0x1f, 0x1f, 0x1f, 0x0f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0f,
|
||||||
|
0x1f, 0x1e, 0x1f, 0x1f, 0x03, 0x00, 0x03, 0x1f, 0x1f, 0x1e, 0x1f, 0x0f, 0x01, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x80, 0xc1, 0xf1, 0xf9, 0xf9, 0xf9, 0xb8, 0xb8, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
|
||||||
|
0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x80, 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00,
|
||||||
|
0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00,
|
||||||
|
0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x7c, 0xfe, 0xff, 0xff, 0xc7, 0x83, 0x83,
|
||||||
|
0xc7, 0xff, 0xff, 0xff, 0x7c, 0x00, 0x00, 0x7c, 0xff, 0xff, 0xff, 0xc7, 0x83, 0x83, 0xc7, 0xff,
|
||||||
|
0xff, 0xfe, 0x7c, 0x00, 0xc0, 0xe6, 0xf7, 0xf7, 0xf7, 0xbb, 0xbb, 0xdb, 0xff, 0xff, 0xff, 0xfe,
|
||||||
|
0x00, 0x00, 0x03, 0x1f, 0xff, 0xff, 0xf0, 0xe0, 0xfe, 0xff, 0x1f, 0x3f, 0xff, 0xfe, 0xe0, 0xf0,
|
||||||
|
0xff, 0xff, 0x1f, 0x03, 0x00, 0x01, 0x0f, 0x7f, 0xff, 0xf8, 0xc0, 0xfc, 0xff, 0x3f, 0x1f, 0xff,
|
||||||
|
0xfe, 0xf0, 0xe0, 0xff, 0xff, 0x3f, 0x07, 0x00, 0x01, 0x07, 0x3f, 0xff, 0xff, 0xf8, 0xe0, 0xfc,
|
||||||
|
0xff, 0x7f, 0x0f, 0x03, 0x00, 0xfe, 0xff, 0xff, 0xff, 0xdb, 0x9b, 0x9b, 0xdf, 0xdf, 0xdf, 0xde,
|
||||||
|
0x1c, 0x00, 0xc0, 0xe6, 0xf7, 0xf7, 0xf7, 0xbb, 0xbb, 0xdb, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
|
||||||
|
0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03,
|
||||||
|
0x03, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
|
||||||
|
0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x03, 0x03, 0x03, 0x03,
|
||||||
|
0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03,
|
||||||
|
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00,
|
||||||
|
0x03, 0x03, 0x03, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x38, 0x38, 0x38, 0x3f, 0x3f, 0x1f, 0x0f,
|
||||||
|
0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x00,
|
||||||
|
0x00, 0x00, 0x00, 0x01, 0x03, 0x03, 0x03, 0x03, 0x03, 0x01, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00
|
||||||
|
};
|
||||||
|
oled_write_raw_P(logo, sizeof(logo));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void render_qmk_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);
|
||||||
|
}
|
||||||
|
|
||||||
|
void oled_white_space(void){
|
||||||
|
oled_write_P(PSTR(" "), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void render_layout_state(void) {
|
||||||
|
oled_write_P(PSTR("\nLayout: "), false);
|
||||||
|
switch (biton32(default_layer_state)) {
|
||||||
|
case _COLEMAK:
|
||||||
|
oled_write_P(PSTR("Colemak"), false);
|
||||||
|
break;
|
||||||
|
case _DVORAK:
|
||||||
|
oled_write_P(PSTR("Dvorak"), false);
|
||||||
|
break;
|
||||||
|
case _QWERTY:
|
||||||
|
oled_write_P(PSTR("Qwerty"), false);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
oled_write_ln_P(PSTR("Undefined"), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void render_layer_state(void) {
|
||||||
|
oled_write_P(PSTR("\nLayer:"), false);
|
||||||
|
bool lower = layer_state_is(_LOWER) & !layer_state_is(_ADJUST);
|
||||||
|
bool raise = layer_state_is(_RAISE) & !layer_state_is(_ADJUST);
|
||||||
|
bool adjust = layer_state_is(_ADJUST);
|
||||||
|
|
||||||
|
if(lower){
|
||||||
|
oled_write_P(PSTR(" Lower "), true);
|
||||||
|
} else if(raise){
|
||||||
|
oled_write_P(PSTR(" Raise "), true);
|
||||||
|
} else if(adjust){
|
||||||
|
oled_write_P(PSTR(" Adjust "), true);
|
||||||
|
} else {
|
||||||
|
oled_write_P(PSTR(" Default"), false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void render_mod_state(uint8_t modifiers) {
|
||||||
|
oled_write_P(PSTR("\nMods: "), false);
|
||||||
|
oled_write_P(PSTR("SHF"), (modifiers & MOD_MASK_SHIFT));
|
||||||
|
oled_white_space();
|
||||||
|
oled_write_P(PSTR("CTL"), (modifiers & MOD_MASK_CTRL));
|
||||||
|
oled_white_space();
|
||||||
|
oled_write_P(PSTR("ALT"), (modifiers & MOD_MASK_ALT));
|
||||||
|
oled_white_space();
|
||||||
|
oled_write_P(PSTR("GUI"), (modifiers & MOD_MASK_GUI));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void render_status(void) {
|
||||||
|
render_qmk_logo();
|
||||||
|
render_layout_state();
|
||||||
|
render_layer_state();
|
||||||
|
render_mod_state(get_mods()|get_oneshot_mods());
|
||||||
|
}
|
||||||
|
|
||||||
|
void oled_task_user(void) {
|
||||||
|
if (is_keyboard_master()) {
|
||||||
|
render_status();
|
||||||
|
} else {
|
||||||
|
render_logo();
|
||||||
|
oled_scroll_left();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
OLED_DRIVER_ENABLE = yes # Enables the use of OLED displays
|
||||||
|
ENCODER_ENABLE = yes # Enables the use of one or more encoders
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
LINK_TIME_OPTIMIZATION_ENABLE = yes
|
||||||
|
|
||||||
|
SRC += encoder.c \
|
||||||
|
oled.c
|
||||||
@@ -37,7 +37,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
_____________________QWERTY_L1______________________, _____________________QWERTY_R1______________________, \
|
_____________________QWERTY_L1______________________, _____________________QWERTY_R1______________________, \
|
||||||
_____________________QWERTY_L2______________________, _____________________QWERTY_R2______________________, \
|
_____________________QWERTY_L2______________________, _____________________QWERTY_R2______________________, \
|
||||||
_____________________QWERTY_L3______________________, T_LBRC, T_RBRC, _____________________QWERTY_R3______________________, \
|
_____________________QWERTY_L3______________________, T_LBRC, T_RBRC, _____________________QWERTY_R3______________________, \
|
||||||
________MOD_LEFT_________, LT_RAI, LT_LOW, ________MOD_RIGHT________ \
|
_____________MOD_LEFT_____________, _____________MOD_RIGHT____________ \
|
||||||
),
|
),
|
||||||
|
|
||||||
/* DVORAK
|
/* DVORAK
|
||||||
@@ -59,7 +59,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
_____________________DVORAK_L1______________________, _____________________DVORAK_R1______________________, \
|
_____________________DVORAK_L1______________________, _____________________DVORAK_R1______________________, \
|
||||||
_____________________DVORAK_L2______________________, _____________________DVORAK_R2______________________, \
|
_____________________DVORAK_L2______________________, _____________________DVORAK_R2______________________, \
|
||||||
_____________________DVORAK_L3______________________, T_LBRC, T_RBRC, _____________________DVORAK_R3______________________, \
|
_____________________DVORAK_L3______________________, T_LBRC, T_RBRC, _____________________DVORAK_R3______________________, \
|
||||||
________MOD_LEFT_________, LT_RAI, LT_LOW, ________MOD_RIGHT________ \
|
_____________MOD_LEFT_____________, _____________MOD_RIGHT____________ \
|
||||||
),
|
),
|
||||||
|
|
||||||
/* COLEMAK
|
/* COLEMAK
|
||||||
@@ -81,7 +81,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
_____________________COLEMAK_L1_____________________, _____________________COLEMAK_R1_____________________, \
|
_____________________COLEMAK_L1_____________________, _____________________COLEMAK_R1_____________________, \
|
||||||
_____________________COLEMAK_L2_____________________, _____________________COLEMAK_R2_____________________, \
|
_____________________COLEMAK_L2_____________________, _____________________COLEMAK_R2_____________________, \
|
||||||
_____________________COLEMAK_L3_____________________, T_LBRC, T_RBRC, _____________________COLEMAK_R3_____________________, \
|
_____________________COLEMAK_L3_____________________, T_LBRC, T_RBRC, _____________________COLEMAK_R3_____________________, \
|
||||||
________MOD_LEFT_________, LT_RAI, LT_LOW, ________MOD_RIGHT________ \
|
_____________MOD_LEFT_____________, _____________MOD_RIGHT____________ \
|
||||||
),
|
),
|
||||||
|
|
||||||
/* LOWER
|
/* LOWER
|
||||||
|
|||||||
@@ -20,12 +20,10 @@ 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 0x4D4C // ML-MechLovin'
|
||||||
#define PRODUCT_ID 0x0000
|
#define MANUFACTURER Mechlovin
|
||||||
#define DEVICE_VER 0x0001
|
#define PRODUCT Mechlovin Hannah910
|
||||||
#define MANUFACTURER Mechlovin
|
#define DESCRIPTION Mechlovin Hannah910
|
||||||
#define PRODUCT Hannah910
|
|
||||||
#define DESCRIPTION A replace PCB for TGR910 keyboard
|
|
||||||
|
|
||||||
/* key matrix size */
|
/* key matrix size */
|
||||||
#define MATRIX_ROWS 5
|
#define MATRIX_ROWS 5
|
||||||
@@ -54,32 +52,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define BACKLIGHT_LEVELS 3
|
#define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
#define RGB_DI_PIN E2
|
#define RGB_DI_PIN E2
|
||||||
// #ifdef RGB_DI_PIN
|
#define RGBLIGHT_LIMIT_VAL 255
|
||||||
#define RGBLED_NUM 9
|
|
||||||
// #define RGBLIGHT_HUE_STEP 8
|
|
||||||
// #define RGBLIGHT_SAT_STEP 8
|
|
||||||
// #define RGBLIGHT_VAL_STEP 8
|
|
||||||
#define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
|
|
||||||
// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
|
|
||||||
// /*== all animations enable ==*/
|
|
||||||
#define RGBLIGHT_ANIMATIONS
|
#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
|
|
||||||
// /*== customize breathing effect ==*/
|
|
||||||
// /*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
|
|
||||||
// #define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
|
|
||||||
// /*==== use exp() and sin() ====*/
|
|
||||||
// #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
|
|
||||||
// #define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
|
|
||||||
// #endif
|
|
||||||
|
|
||||||
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
#define DEBOUNCE 5
|
#define DEBOUNCE 5
|
||||||
|
|||||||
@@ -17,54 +17,8 @@
|
|||||||
|
|
||||||
#include "quantum.h"
|
#include "quantum.h"
|
||||||
|
|
||||||
/* This a shortcut to help you visually see your layout.
|
#ifdef KEYBOARD_mechlovin_hannah910_rev1
|
||||||
*
|
#include "rev1.h"
|
||||||
* The first section contains all of the arguments representing the physical
|
#elif KEYBOARD_mechlovin_hannah910_rev2
|
||||||
* layout of the board and position of the keys.
|
#include "rev2.h"
|
||||||
*
|
#endif
|
||||||
* The second converts the arguments into a two-dimensional array which
|
|
||||||
* represents the switch matrix.
|
|
||||||
*/
|
|
||||||
#define LAYOUT_all( \
|
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, \
|
|
||||||
k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
|
|
||||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45, \
|
|
||||||
k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, \
|
|
||||||
k61, k62, k63, k64, k65, k66, k67, k68, k69, k70, k71 \
|
|
||||||
) \
|
|
||||||
{ \
|
|
||||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14 }, \
|
|
||||||
{ k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
|
|
||||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45 }, \
|
|
||||||
{ k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 }, \
|
|
||||||
{ k61, k62, k63, KC_NO, k64, KC_NO, k65, KC_NO, k66, KC_NO, k67, k68, k69, k70, k71 }, \
|
|
||||||
}
|
|
||||||
#define LAYOUT_iso( \
|
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, \
|
|
||||||
k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k29, \
|
|
||||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45, \
|
|
||||||
k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, \
|
|
||||||
k61, k62, k63, k65, k67, k68, k69, k70, k71 \
|
|
||||||
) \
|
|
||||||
{ \
|
|
||||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14 }, \
|
|
||||||
{ k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, KC_NO, k29 }, \
|
|
||||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45 }, \
|
|
||||||
{ k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 }, \
|
|
||||||
{ k61, k62, k63, KC_NO, KC_NO, KC_NO, k65, KC_NO, KC_NO, KC_NO, k67, k68, k69, k70, k71 }, \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define LAYOUT_ansi( \
|
|
||||||
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, \
|
|
||||||
k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
|
|
||||||
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k43, k45, \
|
|
||||||
k46, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, \
|
|
||||||
k61, k62, k63, k65, k67, k68, k69, k70, k71 \
|
|
||||||
) \
|
|
||||||
{ \
|
|
||||||
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, KC_NO }, \
|
|
||||||
{ k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
|
|
||||||
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, KC_NO, k43, k45 }, \
|
|
||||||
{ k46, KC_NO, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 }, \
|
|
||||||
{ k61, k62, k63, KC_NO, KC_NO, KC_NO, k65, KC_NO, KC_NO, KC_NO, k67, k68, k69, k70, k71 }, \
|
|
||||||
}
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# The ansi keymap for hannah910
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
/* Copyright 2019 Mechlovin
|
|
||||||
*
|
|
||||||
* This program is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 2 of the License, or
|
|
||||||
* (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
// place overrides here
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
# The default keymap for hannah910
|
|
||||||
@@ -4,12 +4,18 @@
|
|||||||
|
|
||||||
Replacement PCB and plate for TGR 910 keyboard
|
Replacement PCB and plate for TGR 910 keyboard
|
||||||
|
|
||||||
Keyboard Maintainer: [Mechlovin'](https://github.com/mechlovin)
|
* Keyboard Maintainer: [Mechlovin'](https://github.com/mechlovin)
|
||||||
Hardware Supported: TGR910 CE, TGR910 SE
|
* Hardware Supported: TGR910 CE, TGR910 SE
|
||||||
Hardware Availability: [Reddit Group Buy](https://www.reddit.com/r/mechmarket/comments/dhwvbn/gb_1015_update_hannah_910_group_buy_tgr_910/)
|
* Hardware Availability: [Reddit Group Buy](https://www.reddit.com/r/mechmarket/comments/dhwvbn/gb_1015_update_hannah_910_group_buy_tgr_910/)
|
||||||
|
|
||||||
Make example for this keyboard (after setting up your build environment):
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
make mechlovin/hannah910:default
|
make mechlovin/hannah910/rev1:default
|
||||||
|
make mechlovin/hannah910/rev2:default
|
||||||
|
|
||||||
|
Make firmware for keymap with VIA:
|
||||||
|
|
||||||
|
make mechlovin/hannah910/rev1:via
|
||||||
|
make mechlovin/hannah910/rev2:via
|
||||||
|
|
||||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define PRODUCT_ID 0x9101
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
|
||||||
|
#define RGBLED_NUM 9
|
||||||
File renamed without changes.
+15
-1
@@ -23,7 +23,21 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
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_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
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
),
|
),
|
||||||
[1] = LAYOUT_ansi( /* Base */
|
[1] = LAYOUT_ansi( /* Layer2 */
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
[2] = LAYOUT_ansi( /* Layer2 */
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_ansi( /* Layer2 */
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, 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 @@
|
|||||||
|
# The ansi keymap for hannah910v1
|
||||||
+18
-3
@@ -15,15 +15,30 @@
|
|||||||
*/
|
*/
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[0] = LAYOUT_all( /* Base */
|
[0] = LAYOUT_all( /* Base */
|
||||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
|
||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_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_INS,
|
||||||
LT(1,KC_CAPS), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUBS, KC_ENT, KC_HOME,
|
LT(1,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_HOME,
|
||||||
KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
|
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_END,
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
),
|
),
|
||||||
[1] = LAYOUT_all( /* Base */
|
[1] = LAYOUT_all( /* Layer2 */
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_all( /* Layer2 */
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( /* Layer2 */
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, 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 @@
|
|||||||
|
# The default keymap for hannah910v1
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
/* Copyright 2019 Mechlovin
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[0] = LAYOUT_all( /* Base */
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS,
|
||||||
|
LT(1,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_HOME,
|
||||||
|
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_END,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT_all( /* Layer2 */
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_all( /* Layer2 */
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( /* Layer2 */
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 @@
|
|||||||
|
# The default keymap (VIA support) for hannah910v1
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# hannah910
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Replacement PCB and plate for TGR 910 keyboard
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Mechlovin'](https://github.com/mechlovin)
|
||||||
|
* Hardware Supported: TGR910 CE, TGR910 SE
|
||||||
|
* Hardware Availability: [Reddit Group Buy](https://www.reddit.com/r/mechmarket/comments/dhwvbn/gb_1015_update_hannah_910_group_buy_tgr_910/)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make mechlovin/hannah910/rev1:default
|
||||||
|
|
||||||
|
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, \
|
||||||
|
k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
|
||||||
|
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45, \
|
||||||
|
k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, \
|
||||||
|
k61, k62, k63, k64, k65, k66, k67, k68, k69, k70, k71 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14 }, \
|
||||||
|
{ k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
|
||||||
|
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45 }, \
|
||||||
|
{ k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 }, \
|
||||||
|
{ k61, k62, k63, KC_NO, k64, KC_NO, k65, KC_NO, k66, KC_NO, k67, k68, k69, k70, k71 }, \
|
||||||
|
}
|
||||||
|
#define LAYOUT_iso( \
|
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, \
|
||||||
|
k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k29, \
|
||||||
|
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45, \
|
||||||
|
k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, \
|
||||||
|
k61, k62, k63, k65, k67, k68, k69, k70, k71 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14 }, \
|
||||||
|
{ k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, KC_NO, k29 }, \
|
||||||
|
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45 }, \
|
||||||
|
{ k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 }, \
|
||||||
|
{ k61, k62, k63, KC_NO, KC_NO, KC_NO, k65, KC_NO, KC_NO, KC_NO, k67, k68, k69, k70, k71 }, \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_ansi( \
|
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, \
|
||||||
|
k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
|
||||||
|
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k43, k45, \
|
||||||
|
k46, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, \
|
||||||
|
k61, k62, k63, k65, k67, k68, k69, k70, k71 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, KC_NO }, \
|
||||||
|
{ k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
|
||||||
|
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, KC_NO, k43, k45 }, \
|
||||||
|
{ k46, KC_NO, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 }, \
|
||||||
|
{ k61, k62, k63, KC_NO, KC_NO, KC_NO, k65, KC_NO, KC_NO, KC_NO, k67, k68, k69, k70, k71 }, \
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
# Teensy halfkay
|
||||||
|
# Pro Micro caterina
|
||||||
|
# Atmel DFU atmel-dfu
|
||||||
|
# LUFA DFU lufa-dfu
|
||||||
|
# QMK DFU qmk-dfu
|
||||||
|
# ATmega32A bootloadHID
|
||||||
|
# ATmega328P USBasp
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
MIDI_ENABLE = no # MIDI support
|
||||||
|
UNICODE_ENABLE = no # Unicode
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
AUDIO_ENABLE = no # Audio output on port C6
|
||||||
|
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
||||||
|
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define PRODUCT_ID 0x9102
|
||||||
|
#define DEVICE_VER 0x0002
|
||||||
|
|
||||||
|
#define RGBLED_NUM 28
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "Hannah910 Rev.2",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "Team Mechlovin'",
|
||||||
|
"width": 16,
|
||||||
|
"height": 5,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT": {
|
||||||
|
"key_count": 72,
|
||||||
|
"layout": [
|
||||||
|
{"label":"K00 (B0,B5)", "x":0, "y":0},
|
||||||
|
{"label":"K01 (B0,B6)", "x":1, "y":0},
|
||||||
|
{"label":"K02 (B0,B7)", "x":2, "y":0},
|
||||||
|
{"label":"K03 (B0,C0)", "x":3, "y":0},
|
||||||
|
{"label":"K04 (B0,C1)", "x":4, "y":0},
|
||||||
|
{"label":"K05 (B0,C2)", "x":5, "y":0},
|
||||||
|
{"label":"K06 (B0,C3)", "x":6, "y":0},
|
||||||
|
{"label":"K07 (B0,C4)", "x":7, "y":0},
|
||||||
|
{"label":"K08 (B0,C5)", "x":8, "y":0},
|
||||||
|
{"label":"K09 (B0,C6)", "x":9, "y":0},
|
||||||
|
{"label":"K0A (B0,C7)", "x":10, "y":0},
|
||||||
|
{"label":"K0B (B0,D0)", "x":11, "y":0},
|
||||||
|
{"label":"K0C (B0,D1)", "x":12, "y":0},
|
||||||
|
{"label":"K0D (B0,D2)", "x":13, "y":0},
|
||||||
|
{"label":"K0E (B0,D3)", "x":14, "y":0},
|
||||||
|
{"label":"K49 (B4,C6)", "x":15, "y":0},
|
||||||
|
{"label":"K10 (B1,B5)", "x":0, "y":1, "w":1.5},
|
||||||
|
{"label":"K11 (B1,B6)", "x":1.5, "y":1},
|
||||||
|
{"label":"K12 (B1,B7)", "x":2.5, "y":1},
|
||||||
|
{"label":"K13 (B1,C0)", "x":3.5, "y":1},
|
||||||
|
{"label":"K14 (B1,C1)", "x":4.5, "y":1},
|
||||||
|
{"label":"K15 (B1,C2)", "x":5.5, "y":1},
|
||||||
|
{"label":"K16 (B1,C3)", "x":6.5, "y":1},
|
||||||
|
{"label":"K17 (B1,C4)", "x":7.5, "y":1},
|
||||||
|
{"label":"K18 (B1,C5)", "x":8.5, "y":1},
|
||||||
|
{"label":"K19 (B1,C6)", "x":9.5, "y":1},
|
||||||
|
{"label":"K1A (B1,C7)", "x":10.5, "y":1},
|
||||||
|
{"label":"K1B (B1,D0)", "x":11.5, "y":1},
|
||||||
|
{"label":"K1C (B1,D1)", "x":12.5, "y":1},
|
||||||
|
{"label":"K1D (B1,D2)", "x":13.5, "y":1, "w":1.5},
|
||||||
|
{"label":"K1E (B1,D3)", "x":15, "y":1},
|
||||||
|
{"label":"K20 (B2,B5)", "x":0, "y":2, "w":1.75},
|
||||||
|
{"label":"K21 (B2,B6)", "x":1.75, "y":2},
|
||||||
|
{"label":"K22 (B2,B7)", "x":2.75, "y":2},
|
||||||
|
{"label":"K23 (B2,C0)", "x":3.75, "y":2},
|
||||||
|
{"label":"K24 (B2,C1)", "x":4.75, "y":2},
|
||||||
|
{"label":"K25 (B2,C2)", "x":5.75, "y":2},
|
||||||
|
{"label":"K26 (B2,C3)", "x":6.75, "y":2},
|
||||||
|
{"label":"K27 (B2,C4)", "x":7.75, "y":2},
|
||||||
|
{"label":"K28 (B2,C5)", "x":8.75, "y":2},
|
||||||
|
{"label":"K29 (B2,C6)", "x":9.75, "y":2},
|
||||||
|
{"label":"K2A (B2,C7)", "x":10.75, "y":2},
|
||||||
|
{"label":"K2B (B2,D0)", "x":11.75, "y":2},
|
||||||
|
{"label":"K2C (B2,D1)", "x":12.75, "y":2},
|
||||||
|
{"label":"K2D (B2,D2)", "x":13.75, "y":2, "w":1.25},
|
||||||
|
{"label":"K2E (B2,D3)", "x":15, "y":2},
|
||||||
|
{"label":"K30 (B3,B5)", "x":0, "y":3, "w":1.25},
|
||||||
|
{"label":"K31 (B3,B6)", "x":1.25, "y":3},
|
||||||
|
{"label":"K32 (B3,B7)", "x":2.25, "y":3},
|
||||||
|
{"label":"K33 (B3,C0)", "x":3.25, "y":3},
|
||||||
|
{"label":"K34 (B3,C1)", "x":4.25, "y":3},
|
||||||
|
{"label":"K35 (B3,C2)", "x":5.25, "y":3},
|
||||||
|
{"label":"K36 (B3,C3)", "x":6.25, "y":3},
|
||||||
|
{"label":"K37 (B3,C4)", "x":7.25, "y":3},
|
||||||
|
{"label":"K38 (B3,C5)", "x":8.25, "y":3},
|
||||||
|
{"label":"K39 (B3,C6)", "x":9.25, "y":3},
|
||||||
|
{"label":"K3A (B3,C7)", "x":10.25, "y":3},
|
||||||
|
{"label":"K3B (B3,D0)", "x":11.25, "y":3},
|
||||||
|
{"label":"K3C (B3,D1)", "x":12.25, "y":3, "w":1.75},
|
||||||
|
{"label":"K3D (B3,D2)", "x":14, "y":3},
|
||||||
|
{"label":"K3E (B3,D3)", "x":15, "y":3},
|
||||||
|
{"label":"K40 (B4,B5)", "x":0, "y":4, "w":1.25},
|
||||||
|
{"label":"K41 (B4,B6)", "x":1.25, "y":4, "w":1.25},
|
||||||
|
{"label":"K42 (B4,B7)", "x":2.5, "y":4, "w":1.25},
|
||||||
|
{"label":"K44 (B4,C1)", "x":3.75, "y":4, "w":2.75},
|
||||||
|
{"label":"K46 (B4,C3)", "x":6.5, "y":4, "w":1.25},
|
||||||
|
{"label":"K48 (B4,C5)", "x":7.75, "y":4, "w":2.25},
|
||||||
|
{"label":"K4A (B4,C7)", "x":10, "y":4, "w":1.25},
|
||||||
|
{"label":"K4B (B4,D0)", "x":11.25, "y":4, "w":1.25},
|
||||||
|
{"label":"K4C (B4,D1)", "x":13, "y":4},
|
||||||
|
{"label":"K4D (B4,D2)", "x":14, "y":4},
|
||||||
|
{"label":"K4E (B4,D3)", "x":15, "y":4}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
|
||||||
|
}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
/* Copyright 2019 Mechlovin
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_ansi( /* Base */
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_PSCR,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS,
|
||||||
|
LT(1,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_HOME,
|
||||||
|
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
|
||||||
|
),
|
||||||
|
[1] = LAYOUT_ansi( /* Layer2 */
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
[2] = LAYOUT_ansi( /* Layer2 */
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_ansi( /* Layer2 */
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 ansi keymap for hannah910v2
|
||||||
|
GB PCB rev.2 here: https://www.reddit.com/r/mechmarket/comments/esv0um/gb_team_mechlovin_hannah_910_v2_infinity_ce_jane/
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
/* Copyright 2019 Mechlovin
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT_all( /* Base */
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_PSCR,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS,
|
||||||
|
LT(1,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_HOME,
|
||||||
|
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_END,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT_all(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_all(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
[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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
|
||||||
|
),
|
||||||
|
};
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
# The ansi keymap for hannah910v2
|
||||||
|
GB PCB rev.2 here: https://www.reddit.com/r/mechmarket/comments/esv0um/gb_team_mechlovin_hannah_910_v2_infinity_ce_jane/
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
/* Copyright 2019 Mechlovin
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
[0] = LAYOUT_all( /* Base */
|
||||||
|
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_PSCR,
|
||||||
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INS,
|
||||||
|
LT(1,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_HOME,
|
||||||
|
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_END,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
[1] = LAYOUT_all( /* Layer2 */
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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_all( /* Layer2 */
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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( /* Layer2 */
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 keymap (VIA support) for hannah910v2
|
||||||
|
GB PCB rev.2 here: https://www.reddit.com/r/mechmarket/comments/esv0um/gb_team_mechlovin_hannah_910_v2_infinity_ce_jane/
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
VIA_ENABLE = yes
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
# hannah910v2
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
Replacement PCB and plate for TGR 910 keyboard (maybe fit with dolinger 65)
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Mechlovin'](https://github.com/mechlovin)
|
||||||
|
* Hardware Supported: TGR910 CE, TGR910 SE
|
||||||
|
* Hardware Availability: [Reddit Group Buy](https://www.reddit.com/r/mechmarket/comments/dhwvbn/gb_1015_update_hannah_910_group_buy_tgr_910/)
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make mechlovin/hannah910/rev2:default
|
||||||
|
|
||||||
|
Build firmware for VIA:
|
||||||
|
|
||||||
|
make mechlovin/hannah910/rev2:via
|
||||||
|
|
||||||
|
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,50 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, k67, \
|
||||||
|
k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
|
||||||
|
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45, \
|
||||||
|
k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, \
|
||||||
|
k61, k62, k63, k64, k65, k66, k68, k69, k70, k71, k72 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14 }, \
|
||||||
|
{ k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
|
||||||
|
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45 }, \
|
||||||
|
{ k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 }, \
|
||||||
|
{ k61, k62, k63, KC_NO, k64, KC_NO, k65, KC_NO, k66, k67, k68, k69, k70, k71, k72 }, \
|
||||||
|
}
|
||||||
|
#define LAYOUT_iso( \
|
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, k66, \
|
||||||
|
k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k29, \
|
||||||
|
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45, \
|
||||||
|
k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, \
|
||||||
|
k61, k62, k63, k65, k67, k68, k69, k70, k71 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14 }, \
|
||||||
|
{ k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, KC_NO, k29 }, \
|
||||||
|
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k42, k43, k45 }, \
|
||||||
|
{ k46, k47, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 }, \
|
||||||
|
{ k61, k62, k63, KC_NO, KC_NO, KC_NO, k65, KC_NO, KC_NO, k66, k67, k68, k69, k70, k71 }, \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_ansi( \
|
||||||
|
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k66, \
|
||||||
|
k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, \
|
||||||
|
k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, k43, k45, \
|
||||||
|
k46, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60, \
|
||||||
|
k61, k62, k63, k65, k67, k68, k69, k70, k71 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, KC_NO }, \
|
||||||
|
{ k15, k16, k17, k18, k19, k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
|
||||||
|
{ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k40, k41, KC_NO, k43, k45 }, \
|
||||||
|
{ k46, KC_NO, k48, k49, k50, k51, k52, k53, k54, k55, k56, k57, k58, k59, k60 }, \
|
||||||
|
{ k61, k62, k63, KC_NO, KC_NO, KC_NO, k65, KC_NO, KC_NO, k66, k67, k68, k69, k70, k71 }, \
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = atmega32u4
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
# Teensy halfkay
|
||||||
|
# Pro Micro caterina
|
||||||
|
# Atmel DFU atmel-dfu
|
||||||
|
# LUFA DFU lufa-dfu
|
||||||
|
# QMK DFU qmk-dfu
|
||||||
|
# ATmega32A bootloadHID
|
||||||
|
# ATmega328P USBasp
|
||||||
|
BOOTLOADER = atmel-dfu
|
||||||
|
|
||||||
|
# Build Options
|
||||||
|
# change yes to no to disable
|
||||||
|
#
|
||||||
|
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
||||||
|
MOUSEKEY_ENABLE = no # Mouse keys
|
||||||
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
|
COMMAND_ENABLE = no # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
|
MIDI_ENABLE = no # MIDI support
|
||||||
|
UNICODE_ENABLE = no # Unicode
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
AUDIO_ENABLE = no # Audio output on port C6
|
||||||
|
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
||||||
|
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
|
||||||
@@ -1,33 +1 @@
|
|||||||
# MCU name
|
DEFAULT_FOLDER = mechlovin/hannah910/rev1
|
||||||
MCU = atmega32u4
|
|
||||||
|
|
||||||
# Bootloader selection
|
|
||||||
# Teensy halfkay
|
|
||||||
# Pro Micro caterina
|
|
||||||
# Atmel DFU atmel-dfu
|
|
||||||
# LUFA DFU lufa-dfu
|
|
||||||
# QMK DFU qmk-dfu
|
|
||||||
# ATmega32A bootloadHID
|
|
||||||
# ATmega328P USBasp
|
|
||||||
BOOTLOADER = atmel-dfu
|
|
||||||
|
|
||||||
# Build Options
|
|
||||||
# change yes to no to disable
|
|
||||||
#
|
|
||||||
BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
|
|
||||||
MOUSEKEY_ENABLE = no # Mouse keys
|
|
||||||
EXTRAKEY_ENABLE = yes # Audio control and System control
|
|
||||||
CONSOLE_ENABLE = no # Console for debug
|
|
||||||
COMMAND_ENABLE = no # Commands for debug and configuration
|
|
||||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
|
||||||
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
|
||||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
|
||||||
NKRO_ENABLE = no # USB Nkey Rollover
|
|
||||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
|
||||||
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
|
||||||
MIDI_ENABLE = no # MIDI support
|
|
||||||
UNICODE_ENABLE = no # Unicode
|
|
||||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
|
||||||
AUDIO_ENABLE = no # Audio output on port C6
|
|
||||||
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
|
||||||
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
|
|
||||||
@@ -6,7 +6,17 @@
|
|||||||
"height": 3,
|
"height": 3,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT": {
|
"LAYOUT": {
|
||||||
"layout": [{"x":0, "y":0}, {"label":"Encoder", "x":1, "y":0}, {"x":2, "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}]
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"label":"Encoder", "x":1, "y":0},
|
||||||
|
{"x":2, "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}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
/* LAYER 0
|
||||||
|
* ,-----------------------.
|
||||||
|
* | << | MUTE | >> | ENCODER - PRESS (MUTE) / KNOB (Brush size)
|
||||||
|
* |-------+-------+-------|
|
||||||
|
* | STOP | PLAY | MEDIA |
|
||||||
|
* |-------+-------+-------|
|
||||||
|
* | CALC | MAIL | PC/FN |
|
||||||
|
* `-----------------------'
|
||||||
|
*/
|
||||||
|
[0] = LAYOUT(
|
||||||
|
KC_MPRV, KC_MUTE, KC_MNXT,
|
||||||
|
KC_MSTP, KC_MPLY, KC_MSEL,
|
||||||
|
KC_CALC, KC_MAIL, LT(1, KC_MYCM)
|
||||||
|
),
|
||||||
|
|
||||||
|
/* LAYER 1
|
||||||
|
* ,-----------------------.
|
||||||
|
* |BL TOG | | BREATH|
|
||||||
|
* |-------+-------+-------|
|
||||||
|
* | BL + | BL - |BL CYCL|
|
||||||
|
* |-------+-------+-------|
|
||||||
|
* | BL ON | BL OFF| |
|
||||||
|
* `-----------------------'
|
||||||
|
*/
|
||||||
|
[1] = LAYOUT(
|
||||||
|
BL_TOGG, KC_TRNS, BL_BRTG,
|
||||||
|
BL_INC, BL_DEC, BL_STEP,
|
||||||
|
BL_ON, BL_OFF, KC_TRNS
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
void encoder_update_user(uint8_t index, bool clockwise) {
|
||||||
|
if (index == 0) { /* First encoder */
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_RBRC);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_LBRC);
|
||||||
|
}
|
||||||
|
} else if (index == 1) { /* Second encoder */
|
||||||
|
if (clockwise) {
|
||||||
|
tap_code(KC_RBRC);
|
||||||
|
} else {
|
||||||
|
tap_code(KC_LBRC);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -28,43 +28,10 @@ void matrix_init_kb(void) {
|
|||||||
matrix_init_user();
|
matrix_init_user();
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
bool led_update_kb(led_t led_state) {
|
||||||
void matrix_scan_kb(void) {
|
if(led_update_user(led_state)) {
|
||||||
// put your looping keyboard code here
|
writePin(D5, led_state.caps_lock);
|
||||||
// runs every cycle (a lot)
|
writePin(D0, led_state.scroll_lock);
|
||||||
|
|
||||||
matrix_scan_user();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
|
|
||||||
// put your per-action keyboard code here
|
|
||||||
// runs for every action, just before processing by the firmware
|
|
||||||
|
|
||||||
return process_record_user(keycode, record);
|
|
||||||
}
|
|
||||||
|
|
||||||
void led_set_kb(uint8_t usb_led) {
|
|
||||||
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
|
|
||||||
|
|
||||||
led_set_user(usb_led);
|
|
||||||
}
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
void led_set_kb(uint8_t usb_led) {
|
|
||||||
|
|
||||||
if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
|
|
||||||
writePinLow(D5);
|
|
||||||
} else {
|
|
||||||
writePinHigh(D5);
|
|
||||||
}
|
}
|
||||||
|
return true;
|
||||||
if (IS_LED_ON(usb_led, USB_LED_SCROLL_LOCK)) {
|
|
||||||
writePinLow(D0);
|
|
||||||
} else {
|
|
||||||
writePinHigh(D0);
|
|
||||||
}
|
|
||||||
|
|
||||||
led_set_user(usb_led);
|
|
||||||
}
|
}
|
||||||
@@ -1,20 +1,280 @@
|
|||||||
{
|
{
|
||||||
"keyboard_name": "Skog Lite",
|
"keyboard_name": "Skog Lite",
|
||||||
"url": "",
|
"url": "",
|
||||||
"maintainer": "qmk",
|
"maintainer": "qmk",
|
||||||
"width": 18.25,
|
"width": 18.25,
|
||||||
"height": 6.5,
|
"height": 6.25,
|
||||||
"layouts": {
|
"layouts": {
|
||||||
"LAYOUT_tkl_ansi": {
|
"LAYOUT_tkl_ansi": {
|
||||||
"layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.5}, {"x":1, "y":1.5}, {"x":2, "y":1.5}, {"x":3, "y":1.5}, {"x":4, "y":1.5}, {"x":5, "y":1.5}, {"x":6, "y":1.5}, {"x":7, "y":1.5}, {"x":8, "y":1.5}, {"x":9, "y":1.5}, {"x":10, "y":1.5}, {"x":11, "y":1.5}, {"x":12, "y":1.5}, {"x":13, "y":1.5, "w":2}, {"x":15.25, "y":1.5}, {"x":16.25, "y":1.5}, {"x":17.25, "y":1.5}, {"x":0, "y":2.5, "w":1.5}, {"x":1.5, "y":2.5}, {"x":2.5, "y":2.5}, {"x":3.5, "y":2.5}, {"x":4.5, "y":2.5}, {"x":5.5, "y":2.5}, {"x":6.5, "y":2.5}, {"x":7.5, "y":2.5}, {"x":8.5, "y":2.5}, {"x":9.5, "y":2.5}, {"x":10.5, "y":2.5}, {"x":11.5, "y":2.5}, {"x":12.5, "y":2.5}, {"x":13.5, "y":2.5, "w":1.5}, {"x":15.25, "y":2.5}, {"x":16.25, "y":2.5}, {"x":17.25, "y":2.5}, {"x":0, "y":3.5, "w":1.75}, {"x":1.75, "y":3.5}, {"x":2.75, "y":3.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5, "w":2.25}, {"x":0, "y":4.5, "w":2.25}, {"x":2.25, "y":4.5}, {"x":3.25, "y":4.5}, {"x":4.25, "y":4.5}, {"x":5.25, "y":4.5}, {"x":6.25, "y":4.5}, {"x":7.25, "y":4.5}, {"x":8.25, "y":4.5}, {"x":9.25, "y":4.5}, {"x":10.25, "y":4.5}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5, "w":2.75}, {"x":16.25, "y":4.5}, {"x":0, "y":5.5, "w":1.25}, {"x":1.25, "y":5.5, "w":1.25}, {"x":2.5, "y":5.5, "w":1.25}, {"x":3.75, "y":5.5, "w":6.25}, {"x":10, "y":5.5, "w":1.25}, {"x":11.25, "y":5.5, "w":1.25}, {"x":12.5, "y":5.5, "w":1.25}, {"x":13.75, "y":5.5, "w":1.25}, {"x":15.25, "y":5.5}, {"x":16.25, "y":5.5}, {"x":17.25, "y":5.5}]
|
"layout": [
|
||||||
},
|
{"x":0, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6.5, "y":0},
|
||||||
|
{"x":7.5, "y":0},
|
||||||
|
{"x":8.5, "y":0},
|
||||||
|
{"x":9.5, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0},
|
||||||
|
{"x":14, "y":0},
|
||||||
|
{"x":15.25, "y":0.5},
|
||||||
|
{"x":16.25, "y":0.5},
|
||||||
|
{"x":17.25, "y":0.5},
|
||||||
|
{"x":0, "y":1.25},
|
||||||
|
{"x":1, "y":1.25},
|
||||||
|
{"x":2, "y":1.25},
|
||||||
|
{"x":3, "y":1.25},
|
||||||
|
{"x":4, "y":1.25},
|
||||||
|
{"x":5, "y":1.25},
|
||||||
|
{"x":6, "y":1.25},
|
||||||
|
{"x":7, "y":1.25},
|
||||||
|
{"x":8, "y":1.25},
|
||||||
|
{"x":9, "y":1.25},
|
||||||
|
{"x":10, "y":1.25},
|
||||||
|
{"x":11, "y":1.25},
|
||||||
|
{"x":12, "y":1.25},
|
||||||
|
{"x":13, "y":1.25, "w":2},
|
||||||
|
{"x":15.25, "y":1.75},
|
||||||
|
{"x":16.25, "y":1.75},
|
||||||
|
{"x":17.25, "y":1.75},
|
||||||
|
{"x":0, "y":2.25, "w":1.5},
|
||||||
|
{"x":1.5, "y":2.25},
|
||||||
|
{"x":2.5, "y":2.25},
|
||||||
|
{"x":3.5, "y":2.25},
|
||||||
|
{"x":4.5, "y":2.25},
|
||||||
|
{"x":5.5, "y":2.25},
|
||||||
|
{"x":6.5, "y":2.25},
|
||||||
|
{"x":7.5, "y":2.25},
|
||||||
|
{"x":8.5, "y":2.25},
|
||||||
|
{"x":9.5, "y":2.25},
|
||||||
|
{"x":10.5, "y":2.25},
|
||||||
|
{"x":11.5, "y":2.25},
|
||||||
|
{"x":12.5, "y":2.25},
|
||||||
|
{"x":13.5, "y":2.25, "w":1.5},
|
||||||
|
{"x":15.25, "y":2.75},
|
||||||
|
{"x":16.25, "y":2.75},
|
||||||
|
{"x":17.25, "y":2.75},
|
||||||
|
{"x":0, "y":3.25, "w":1.75},
|
||||||
|
{"x":1.75, "y":3.25},
|
||||||
|
{"x":2.75, "y":3.25},
|
||||||
|
{"x":3.75, "y":3.25},
|
||||||
|
{"x":4.75, "y":3.25},
|
||||||
|
{"x":5.75, "y":3.25},
|
||||||
|
{"x":6.75, "y":3.25},
|
||||||
|
{"x":7.75, "y":3.25},
|
||||||
|
{"x":8.75, "y":3.25},
|
||||||
|
{"x":9.75, "y":3.25},
|
||||||
|
{"x":10.75, "y":3.25},
|
||||||
|
{"x":11.75, "y":3.25},
|
||||||
|
{"x":12.75, "y":3.25, "w":2.25},
|
||||||
|
{"x":0, "y":4.25, "w":2.25},
|
||||||
|
{"x":2.25, "y":4.25},
|
||||||
|
{"x":3.25, "y":4.25},
|
||||||
|
{"x":4.25, "y":4.25},
|
||||||
|
{"x":5.25, "y":4.25},
|
||||||
|
{"x":6.25, "y":4.25},
|
||||||
|
{"x":7.25, "y":4.25},
|
||||||
|
{"x":8.25, "y":4.25},
|
||||||
|
{"x":9.25, "y":4.25},
|
||||||
|
{"x":10.25, "y":4.25},
|
||||||
|
{"x":11.25, "y":4.25},
|
||||||
|
{"x":12.25, "y":4.25, "w":2.75},
|
||||||
|
{"x":16.25, "y":4.25},
|
||||||
|
{"x":0, "y":5.25, "w":1.25},
|
||||||
|
{"x":1.25, "y":5.25, "w":1.25},
|
||||||
|
{"x":2.5, "y":5.25, "w":1.25},
|
||||||
|
{"x":3.75, "y":5.25, "w":6.25},
|
||||||
|
{"x":10, "y":5.25, "w":1.25},
|
||||||
|
{"x":11.25, "y":5.25, "w":1.25},
|
||||||
|
{"x":12.5, "y":5.25, "w":1.25},
|
||||||
|
{"x":13.75, "y":5.25, "w":1.25},
|
||||||
|
{"x":15.25, "y":5.25},
|
||||||
|
{"x":16.25, "y":5.25},
|
||||||
|
{"x":17.25, "y":5.25}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
"LAYOUT_tkl_7u_ansi": {
|
"LAYOUT_tkl_7u_ansi": {
|
||||||
"layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.5}, {"x":1, "y":1.5}, {"x":2, "y":1.5}, {"x":3, "y":1.5}, {"x":4, "y":1.5}, {"x":5, "y":1.5}, {"x":6, "y":1.5}, {"x":7, "y":1.5}, {"x":8, "y":1.5}, {"x":9, "y":1.5}, {"x":10, "y":1.5}, {"x":11, "y":1.5}, {"x":12, "y":1.5}, {"x":13, "y":1.5, "w":2}, {"x":15.25, "y":1.5}, {"x":16.25, "y":1.5}, {"x":17.25, "y":1.5}, {"x":0, "y":2.5, "w":1.5}, {"x":1.5, "y":2.5}, {"x":2.5, "y":2.5}, {"x":3.5, "y":2.5}, {"x":4.5, "y":2.5}, {"x":5.5, "y":2.5}, {"x":6.5, "y":2.5}, {"x":7.5, "y":2.5}, {"x":8.5, "y":2.5}, {"x":9.5, "y":2.5}, {"x":10.5, "y":2.5}, {"x":11.5, "y":2.5}, {"x":12.5, "y":2.5}, {"x":13.5, "y":2.5, "w":1.5}, {"x":15.25, "y":2.5}, {"x":16.25, "y":2.5}, {"x":17.25, "y":2.5}, {"x":0, "y":3.5, "w":1.75}, {"x":1.75, "y":3.5}, {"x":2.75, "y":3.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5, "w":2.25}, {"x":0, "y":4.5, "w":2.25}, {"x":2.25, "y":4.5}, {"x":3.25, "y":4.5}, {"x":4.25, "y":4.5}, {"x":5.25, "y":4.5}, {"x":6.25, "y":4.5}, {"x":7.25, "y":4.5}, {"x":8.25, "y":4.5}, {"x":9.25, "y":4.5}, {"x":10.25, "y":4.5}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5, "w":2.75}, {"x":16.25, "y":4.5}, {"x":0, "y":5.5, "w":1.5}, {"x":1.5, "y":5.5}, {"x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"x":11, "y":5.5, "w":1.5}, {"x":12.5, "y":5.5}, {"x":13.5, "y":5.5, "w":1.5}, {"x":15.25, "y":5.5}, {"x":16.25, "y":5.5}, {"x":17.25, "y":5.5}]
|
"layout": [
|
||||||
},
|
{"x":0, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6.5, "y":0},
|
||||||
|
{"x":7.5, "y":0},
|
||||||
|
{"x":8.5, "y":0},
|
||||||
|
{"x":9.5, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0},
|
||||||
|
{"x":14, "y":0},
|
||||||
|
{"x":15.25, "y":0.5},
|
||||||
|
{"x":16.25, "y":0.5},
|
||||||
|
{"x":17.25, "y":0.5},
|
||||||
|
{"x":0, "y":1.25},
|
||||||
|
{"x":1, "y":1.25},
|
||||||
|
{"x":2, "y":1.25},
|
||||||
|
{"x":3, "y":1.25},
|
||||||
|
{"x":4, "y":1.25},
|
||||||
|
{"x":5, "y":1.25},
|
||||||
|
{"x":6, "y":1.25},
|
||||||
|
{"x":7, "y":1.25},
|
||||||
|
{"x":8, "y":1.25},
|
||||||
|
{"x":9, "y":1.25},
|
||||||
|
{"x":10, "y":1.25},
|
||||||
|
{"x":11, "y":1.25},
|
||||||
|
{"x":12, "y":1.25},
|
||||||
|
{"x":13, "y":1.25, "w":2},
|
||||||
|
{"x":15.25, "y":1.75},
|
||||||
|
{"x":16.25, "y":1.75},
|
||||||
|
{"x":17.25, "y":1.75},
|
||||||
|
{"x":0, "y":2.25, "w":1.5},
|
||||||
|
{"x":1.5, "y":2.25},
|
||||||
|
{"x":2.5, "y":2.25},
|
||||||
|
{"x":3.5, "y":2.25},
|
||||||
|
{"x":4.5, "y":2.25},
|
||||||
|
{"x":5.5, "y":2.25},
|
||||||
|
{"x":6.5, "y":2.25},
|
||||||
|
{"x":7.5, "y":2.25},
|
||||||
|
{"x":8.5, "y":2.25},
|
||||||
|
{"x":9.5, "y":2.25},
|
||||||
|
{"x":10.5, "y":2.25},
|
||||||
|
{"x":11.5, "y":2.25},
|
||||||
|
{"x":12.5, "y":2.25},
|
||||||
|
{"x":13.5, "y":2.25, "w":1.5},
|
||||||
|
{"x":15.25, "y":2.75},
|
||||||
|
{"x":16.25, "y":2.75},
|
||||||
|
{"x":17.25, "y":2.75},
|
||||||
|
{"x":0, "y":3.25, "w":1.75},
|
||||||
|
{"x":1.75, "y":3.25},
|
||||||
|
{"x":2.75, "y":3.25},
|
||||||
|
{"x":3.75, "y":3.25},
|
||||||
|
{"x":4.75, "y":3.25},
|
||||||
|
{"x":5.75, "y":3.25},
|
||||||
|
{"x":6.75, "y":3.25},
|
||||||
|
{"x":7.75, "y":3.25},
|
||||||
|
{"x":8.75, "y":3.25},
|
||||||
|
{"x":9.75, "y":3.25},
|
||||||
|
{"x":10.75, "y":3.25},
|
||||||
|
{"x":11.75, "y":3.25},
|
||||||
|
{"x":12.75, "y":3.25, "w":2.25},
|
||||||
|
{"x":0, "y":4.25, "w":2.25},
|
||||||
|
{"x":2.25, "y":4.25},
|
||||||
|
{"x":3.25, "y":4.25},
|
||||||
|
{"x":4.25, "y":4.25},
|
||||||
|
{"x":5.25, "y":4.25},
|
||||||
|
{"x":6.25, "y":4.25},
|
||||||
|
{"x":7.25, "y":4.25},
|
||||||
|
{"x":8.25, "y":4.25},
|
||||||
|
{"x":9.25, "y":4.25},
|
||||||
|
{"x":10.25, "y":4.25},
|
||||||
|
{"x":11.25, "y":4.25},
|
||||||
|
{"x":12.25, "y":4.25, "w":2.75},
|
||||||
|
{"x":16.25, "y":4.25},
|
||||||
|
{"x":0, "y":5.25, "w":1.5},
|
||||||
|
{"x":1.5, "y":5.25},
|
||||||
|
{"x":2.5, "y":5.25, "w":1.5},
|
||||||
|
{"x":4, "y":5.25, "w":7},
|
||||||
|
{"x":11, "y":5.25, "w":1.5},
|
||||||
|
{"x":12.5, "y":5.25},
|
||||||
|
{"x":13.5, "y":5.25, "w":1.5},
|
||||||
|
{"x":15.25, "y":5.25},
|
||||||
|
{"x":16.25, "y":5.25},
|
||||||
|
{"x":17.25, "y":5.25}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
|
||||||
"LAYOUT_tkl_7u_ansi_blocker": {
|
"LAYOUT_tkl_7u_ansi_blocker": {
|
||||||
"layout": [{"x":0, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6.5, "y":0}, {"x":7.5, "y":0}, {"x":8.5, "y":0}, {"x":9.5, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":15.25, "y":0}, {"x":16.25, "y":0}, {"x":17.25, "y":0}, {"x":0, "y":1.5}, {"x":1, "y":1.5}, {"x":2, "y":1.5}, {"x":3, "y":1.5}, {"x":4, "y":1.5}, {"x":5, "y":1.5}, {"x":6, "y":1.5}, {"x":7, "y":1.5}, {"x":8, "y":1.5}, {"x":9, "y":1.5}, {"x":10, "y":1.5}, {"x":11, "y":1.5}, {"x":12, "y":1.5}, {"x":13, "y":1.5, "w":2}, {"x":15.25, "y":1.5}, {"x":16.25, "y":1.5}, {"x":17.25, "y":1.5}, {"x":0, "y":2.5, "w":1.5}, {"x":1.5, "y":2.5}, {"x":2.5, "y":2.5}, {"x":3.5, "y":2.5}, {"x":4.5, "y":2.5}, {"x":5.5, "y":2.5}, {"x":6.5, "y":2.5}, {"x":7.5, "y":2.5}, {"x":8.5, "y":2.5}, {"x":9.5, "y":2.5}, {"x":10.5, "y":2.5}, {"x":11.5, "y":2.5}, {"x":12.5, "y":2.5}, {"x":13.5, "y":2.5, "w":1.5}, {"x":15.25, "y":2.5}, {"x":16.25, "y":2.5}, {"x":17.25, "y":2.5}, {"x":0, "y":3.5, "w":1.75}, {"x":1.75, "y":3.5}, {"x":2.75, "y":3.5}, {"x":3.75, "y":3.5}, {"x":4.75, "y":3.5}, {"x":5.75, "y":3.5}, {"x":6.75, "y":3.5}, {"x":7.75, "y":3.5}, {"x":8.75, "y":3.5}, {"x":9.75, "y":3.5}, {"x":10.75, "y":3.5}, {"x":11.75, "y":3.5}, {"x":12.75, "y":3.5, "w":2.25}, {"x":0, "y":4.5, "w":2.25}, {"x":2.25, "y":4.5}, {"x":3.25, "y":4.5}, {"x":4.25, "y":4.5}, {"x":5.25, "y":4.5}, {"x":6.25, "y":4.5}, {"x":7.25, "y":4.5}, {"x":8.25, "y":4.5}, {"x":9.25, "y":4.5}, {"x":10.25, "y":4.5}, {"x":11.25, "y":4.5}, {"x":12.25, "y":4.5, "w":2.75}, {"x":16.25, "y":4.5}, {"x":0, "y":5.5, "w":1.5}, {"x":2.5, "y":5.5, "w":1.5}, {"x":4, "y":5.5, "w":7}, {"x":11, "y":5.5, "w":1.5}, {"x":13.5, "y":5.5, "w":1.5}, {"x":15.25, "y":5.5}, {"x":16.25, "y":5.5}, {"x":17.25, "y":5.5}]
|
"layout": [
|
||||||
}
|
{"x":0, "y":0},
|
||||||
}
|
{"x":2, "y":0},
|
||||||
|
{"x":3, "y":0},
|
||||||
|
{"x":4, "y":0},
|
||||||
|
{"x":5, "y":0},
|
||||||
|
{"x":6.5, "y":0},
|
||||||
|
{"x":7.5, "y":0},
|
||||||
|
{"x":8.5, "y":0},
|
||||||
|
{"x":9.5, "y":0},
|
||||||
|
{"x":11, "y":0},
|
||||||
|
{"x":12, "y":0},
|
||||||
|
{"x":13, "y":0},
|
||||||
|
{"x":14, "y":0},
|
||||||
|
{"x":15.25, "y":0.5},
|
||||||
|
{"x":16.25, "y":0.5},
|
||||||
|
{"x":17.25, "y":0.5},
|
||||||
|
{"x":0, "y":1.25},
|
||||||
|
{"x":1, "y":1.25},
|
||||||
|
{"x":2, "y":1.25},
|
||||||
|
{"x":3, "y":1.25},
|
||||||
|
{"x":4, "y":1.25},
|
||||||
|
{"x":5, "y":1.25},
|
||||||
|
{"x":6, "y":1.25},
|
||||||
|
{"x":7, "y":1.25},
|
||||||
|
{"x":8, "y":1.25},
|
||||||
|
{"x":9, "y":1.25},
|
||||||
|
{"x":10, "y":1.25},
|
||||||
|
{"x":11, "y":1.25},
|
||||||
|
{"x":12, "y":1.25},
|
||||||
|
{"x":13, "y":1.25, "w":2},
|
||||||
|
{"x":15.25, "y":1.75},
|
||||||
|
{"x":16.25, "y":1.75},
|
||||||
|
{"x":17.25, "y":1.75},
|
||||||
|
{"x":0, "y":2.25, "w":1.5},
|
||||||
|
{"x":1.5, "y":2.25},
|
||||||
|
{"x":2.5, "y":2.25},
|
||||||
|
{"x":3.5, "y":2.25},
|
||||||
|
{"x":4.5, "y":2.25},
|
||||||
|
{"x":5.5, "y":2.25},
|
||||||
|
{"x":6.5, "y":2.25},
|
||||||
|
{"x":7.5, "y":2.25},
|
||||||
|
{"x":8.5, "y":2.25},
|
||||||
|
{"x":9.5, "y":2.25},
|
||||||
|
{"x":10.5, "y":2.25},
|
||||||
|
{"x":11.5, "y":2.25},
|
||||||
|
{"x":12.5, "y":2.25},
|
||||||
|
{"x":13.5, "y":2.25, "w":1.5},
|
||||||
|
{"x":15.25, "y":2.75},
|
||||||
|
{"x":16.25, "y":2.75},
|
||||||
|
{"x":17.25, "y":2.75},
|
||||||
|
{"x":0, "y":3.25, "w":1.75},
|
||||||
|
{"x":1.75, "y":3.25},
|
||||||
|
{"x":2.75, "y":3.25},
|
||||||
|
{"x":3.75, "y":3.25},
|
||||||
|
{"x":4.75, "y":3.25},
|
||||||
|
{"x":5.75, "y":3.25},
|
||||||
|
{"x":6.75, "y":3.25},
|
||||||
|
{"x":7.75, "y":3.25},
|
||||||
|
{"x":8.75, "y":3.25},
|
||||||
|
{"x":9.75, "y":3.25},
|
||||||
|
{"x":10.75, "y":3.25},
|
||||||
|
{"x":11.75, "y":3.25},
|
||||||
|
{"x":12.75, "y":3.25, "w":2.25},
|
||||||
|
{"x":0, "y":4.25, "w":2.25},
|
||||||
|
{"x":2.25, "y":4.25},
|
||||||
|
{"x":3.25, "y":4.25},
|
||||||
|
{"x":4.25, "y":4.25},
|
||||||
|
{"x":5.25, "y":4.25},
|
||||||
|
{"x":6.25, "y":4.25},
|
||||||
|
{"x":7.25, "y":4.25},
|
||||||
|
{"x":8.25, "y":4.25},
|
||||||
|
{"x":9.25, "y":4.25},
|
||||||
|
{"x":10.25, "y":4.25},
|
||||||
|
{"x":11.25, "y":4.25},
|
||||||
|
{"x":12.25, "y":4.25, "w":2.75},
|
||||||
|
{"x":16.25, "y":4.25},
|
||||||
|
{"x":0, "y":5.25, "w":1.5},
|
||||||
|
{"x":2.5, "y":5.25, "w":1.5},
|
||||||
|
{"x":4, "y":5.25, "w":7},
|
||||||
|
{"x":11, "y":5.25, "w":1.5},
|
||||||
|
{"x":13.5, "y":5.25, "w":1.5},
|
||||||
|
{"x":15.25, "y":5.25},
|
||||||
|
{"x":16.25, "y":5.25},
|
||||||
|
{"x":17.25, "y":5.25}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -11,14 +11,16 @@ MCU = atmega32a
|
|||||||
# ATmega328P USBasp
|
# ATmega328P USBasp
|
||||||
BOOTLOADER = bootloadHID
|
BOOTLOADER = bootloadHID
|
||||||
|
|
||||||
# build options
|
# Build Options
|
||||||
BOOTMAGIC_ENABLE = no
|
# change yes to no to disable
|
||||||
MOUSEKEY_ENABLE = yes
|
#
|
||||||
EXTRAKEY_ENABLE = yes
|
BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
|
||||||
CONSOLE_ENABLE = yes
|
MOUSEKEY_ENABLE = yes # Mouse keys
|
||||||
COMMAND_ENABLE = yes
|
EXTRAKEY_ENABLE = yes # Audio control and System control
|
||||||
BACKLIGHT_ENABLE = yes
|
CONSOLE_ENABLE = no # Console for debug
|
||||||
RGBLIGHT_ENABLE = yes
|
COMMAND_ENABLE = yes # Commands for debug and configuration
|
||||||
|
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
|
||||||
WS2812_DRIVER = i2c
|
WS2812_DRIVER = i2c
|
||||||
|
|
||||||
OPT_DEFS = -DDEBUG_LEVEL=0
|
OPT_DEFS = -DDEBUG_LEVEL=0
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# Switchplate Peripherals
|
||||||
|
All keyboards under the Switchplate Peripherals brand
|
||||||
|
|
||||||
|
Website: [here](https://switchplate.co/)
|
||||||
@@ -0,0 +1,143 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2020 Ryota Goto
|
||||||
|
|
||||||
|
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 0xA103
|
||||||
|
#define PRODUCT_ID 0x0017
|
||||||
|
#define DEVICE_VER 0x0001
|
||||||
|
#define MANUFACTURER Switchplate Peripherals
|
||||||
|
#define PRODUCT Southpaw Fullsize
|
||||||
|
#define DESCRIPTION A large custom keyboard
|
||||||
|
|
||||||
|
/* key matrix size */
|
||||||
|
#define MATRIX_ROWS 6
|
||||||
|
#define MATRIX_COLS 22
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 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 { E1, C0, C1, C2, C3, C4 }
|
||||||
|
#define MATRIX_COL_PINS { A7, C7, C6, C5, F0, F1, F2, F3, F4, F5, F6, F7, A0, A1, A2, A3, A4, A5, A6, E0, D7, D6 }
|
||||||
|
#define UNUSED_PINS
|
||||||
|
|
||||||
|
/* COL2ROW, ROW2COL*/
|
||||||
|
#define DIODE_DIRECTION COL2ROW
|
||||||
|
|
||||||
|
#define BACKLIGHT_PIN B7
|
||||||
|
// #define BACKLIGHT_BREATHING
|
||||||
|
#define BACKLIGHT_LEVELS 3
|
||||||
|
|
||||||
|
/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
|
||||||
|
#define DEBOUNCE 5
|
||||||
|
|
||||||
|
/* define if matrix has ghost (lacks anti-ghosting diodes) */
|
||||||
|
//#define MATRIX_HAS_GHOST
|
||||||
|
|
||||||
|
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
|
||||||
|
#define LOCKING_SUPPORT_ENABLE
|
||||||
|
/* Locking resynchronize hack */
|
||||||
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Magic Key Options
|
||||||
|
*
|
||||||
|
* Magic keys are hotkey commands that allow control over firmware functions of
|
||||||
|
* the keyboard. They are best used in combination with the HID Listen program,
|
||||||
|
* found here: https://www.pjrc.com/teensy/hid_listen.html
|
||||||
|
*
|
||||||
|
* The options below allow the magic key functionality to be changed. This is
|
||||||
|
* useful if your keyboard/keypad is missing keys and you want magic key support.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* key combination for magic key command */
|
||||||
|
/* defined by default; to change, uncomment and set to the combination you want */
|
||||||
|
// #define IS_COMMAND() (get_mods() == MOD_MASK_SHIFT)
|
||||||
|
|
||||||
|
/* control how magic key switches layers */
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false
|
||||||
|
|
||||||
|
/* override magic key keymap */
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS
|
||||||
|
//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM
|
||||||
|
//#define MAGIC_KEY_HELP H
|
||||||
|
//#define MAGIC_KEY_HELP_ALT SLASH
|
||||||
|
//#define MAGIC_KEY_DEBUG D
|
||||||
|
//#define MAGIC_KEY_DEBUG_MATRIX X
|
||||||
|
//#define MAGIC_KEY_DEBUG_KBD K
|
||||||
|
//#define MAGIC_KEY_DEBUG_MOUSE M
|
||||||
|
//#define MAGIC_KEY_VERSION V
|
||||||
|
//#define MAGIC_KEY_STATUS S
|
||||||
|
//#define MAGIC_KEY_CONSOLE C
|
||||||
|
//#define MAGIC_KEY_LAYER0 0
|
||||||
|
//#define MAGIC_KEY_LAYER0_ALT GRAVE
|
||||||
|
//#define MAGIC_KEY_LAYER1 1
|
||||||
|
//#define MAGIC_KEY_LAYER2 2
|
||||||
|
//#define MAGIC_KEY_LAYER3 3
|
||||||
|
//#define MAGIC_KEY_LAYER4 4
|
||||||
|
//#define MAGIC_KEY_LAYER5 5
|
||||||
|
//#define MAGIC_KEY_LAYER6 6
|
||||||
|
//#define MAGIC_KEY_LAYER7 7
|
||||||
|
//#define MAGIC_KEY_LAYER8 8
|
||||||
|
//#define MAGIC_KEY_LAYER9 9
|
||||||
|
//#define MAGIC_KEY_BOOTLOADER B
|
||||||
|
//#define MAGIC_KEY_BOOTLOADER_ALT ESC
|
||||||
|
//#define MAGIC_KEY_LOCK CAPS
|
||||||
|
//#define MAGIC_KEY_EEPROM E
|
||||||
|
//#define MAGIC_KEY_EEPROM_CLEAR BSPACE
|
||||||
|
//#define MAGIC_KEY_NKRO N
|
||||||
|
//#define MAGIC_KEY_SLEEP_LED Z
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Feature disable options
|
||||||
|
* These options are also useful to firmware size reduction.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* disable debug print */
|
||||||
|
//#define NO_DEBUG
|
||||||
|
|
||||||
|
/* disable print */
|
||||||
|
//#define NO_PRINT
|
||||||
|
|
||||||
|
/* disable action features */
|
||||||
|
//#define NO_ACTION_LAYER
|
||||||
|
//#define NO_ACTION_TAPPING
|
||||||
|
//#define NO_ACTION_ONESHOT
|
||||||
|
|
||||||
|
/* disable these deprecated features by default */
|
||||||
|
#ifndef LINK_TIME_OPTIMIZATION_ENABLE
|
||||||
|
#define NO_ACTION_MACRO
|
||||||
|
#define NO_ACTION_FUNCTION
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Bootmagic Lite key configuration */
|
||||||
|
// #define BOOTMAGIC_LITE_ROW 0
|
||||||
|
// #define BOOTMAGIC_LITE_COLUMN 0
|
||||||
@@ -0,0 +1,242 @@
|
|||||||
|
{
|
||||||
|
"keyboard_name": "southpaw_fullsize",
|
||||||
|
"url": "",
|
||||||
|
"maintainer": "ai03",
|
||||||
|
"width": 22.5,
|
||||||
|
"height": 6.25,
|
||||||
|
"layouts": {
|
||||||
|
"LAYOUT_all": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":4.25, "y":0},
|
||||||
|
{"x":6.25, "y":0},
|
||||||
|
{"x":7.25, "y":0},
|
||||||
|
{"x":8.25, "y":0},
|
||||||
|
{"x":9.25, "y":0},
|
||||||
|
{"x":10.75, "y":0},
|
||||||
|
{"x":11.75, "y":0},
|
||||||
|
{"x":12.75, "y":0},
|
||||||
|
{"x":13.75, "y":0},
|
||||||
|
{"x":15.25, "y":0},
|
||||||
|
{"x":16.25, "y":0},
|
||||||
|
{"x":17.25, "y":0},
|
||||||
|
{"x":18.25, "y":0},
|
||||||
|
{"x":19.5, "y":0},
|
||||||
|
{"x":20.5, "y":0},
|
||||||
|
{"x":21.5, "y":0},
|
||||||
|
{"x":0, "y":1.25},
|
||||||
|
{"x":1, "y":1.25},
|
||||||
|
{"x":2, "y":1.25},
|
||||||
|
{"x":3, "y":1.25},
|
||||||
|
{"x":4.25, "y":1.25},
|
||||||
|
{"x":5.25, "y":1.25},
|
||||||
|
{"x":6.25, "y":1.25},
|
||||||
|
{"x":7.25, "y":1.25},
|
||||||
|
{"x":8.25, "y":1.25},
|
||||||
|
{"x":9.25, "y":1.25},
|
||||||
|
{"x":10.25, "y":1.25},
|
||||||
|
{"x":11.25, "y":1.25},
|
||||||
|
{"x":12.25, "y":1.25},
|
||||||
|
{"x":13.25, "y":1.25},
|
||||||
|
{"x":14.25, "y":1.25},
|
||||||
|
{"x":15.25, "y":1.25},
|
||||||
|
{"x":16.25, "y":1.25},
|
||||||
|
{"x":17.25, "y":1.25},
|
||||||
|
{"x":18.25, "y":1.25},
|
||||||
|
{"x":19.5, "y":1.25},
|
||||||
|
{"x":20.5, "y":1.25},
|
||||||
|
{"x":21.5, "y":1.25},
|
||||||
|
{"x":0, "y":2.25},
|
||||||
|
{"x":1, "y":2.25},
|
||||||
|
{"x":2, "y":2.25},
|
||||||
|
{"x":3, "y":2.25},
|
||||||
|
{"x":4.25, "y":2.25, "w":1.5},
|
||||||
|
{"x":5.75, "y":2.25},
|
||||||
|
{"x":6.75, "y":2.25},
|
||||||
|
{"x":7.75, "y":2.25},
|
||||||
|
{"x":8.75, "y":2.25},
|
||||||
|
{"x":9.75, "y":2.25},
|
||||||
|
{"x":10.75, "y":2.25},
|
||||||
|
{"x":11.75, "y":2.25},
|
||||||
|
{"x":12.75, "y":2.25},
|
||||||
|
{"x":13.75, "y":2.25},
|
||||||
|
{"x":14.75, "y":2.25},
|
||||||
|
{"x":15.75, "y":2.25},
|
||||||
|
{"x":16.75, "y":2.25},
|
||||||
|
{"x":17.75, "y":2.25, "w":1.5},
|
||||||
|
{"x":19.5, "y":2.25},
|
||||||
|
{"x":20.5, "y":2.25},
|
||||||
|
{"x":21.5, "y":2.25},
|
||||||
|
{"x":0, "y":3.25},
|
||||||
|
{"x":1, "y":3.25},
|
||||||
|
{"x":2, "y":3.25},
|
||||||
|
{"x":3, "y":3.25},
|
||||||
|
{"x":4.25, "y":3.25, "w":1.75},
|
||||||
|
{"x":6, "y":3.25},
|
||||||
|
{"x":7, "y":3.25},
|
||||||
|
{"x":8, "y":3.25},
|
||||||
|
{"x":9, "y":3.25},
|
||||||
|
{"x":10, "y":3.25},
|
||||||
|
{"x":11, "y":3.25},
|
||||||
|
{"x":12, "y":3.25},
|
||||||
|
{"x":13, "y":3.25},
|
||||||
|
{"x":14, "y":3.25},
|
||||||
|
{"x":15, "y":3.25},
|
||||||
|
{"x":16, "y":3.25},
|
||||||
|
{"x":17, "y":3.25},
|
||||||
|
{"x":18, "y":3.25, "w":1.25},
|
||||||
|
{"x":0, "y":4.25},
|
||||||
|
{"x":1, "y":4.25},
|
||||||
|
{"x":2, "y":4.25},
|
||||||
|
{"x":3, "y":4.25},
|
||||||
|
{"x":4.25, "y":4.25, "w":1.25},
|
||||||
|
{"x":5.5, "y":4.25},
|
||||||
|
{"x":6.5, "y":4.25},
|
||||||
|
{"x":7.5, "y":4.25},
|
||||||
|
{"x":8.5, "y":4.25},
|
||||||
|
{"x":9.5, "y":4.25},
|
||||||
|
{"x":10.5, "y":4.25},
|
||||||
|
{"x":11.5, "y":4.25},
|
||||||
|
{"x":12.5, "y":4.25},
|
||||||
|
{"x":13.5, "y":4.25},
|
||||||
|
{"x":14.5, "y":4.25},
|
||||||
|
{"x":15.5, "y":4.25},
|
||||||
|
{"x":16.5, "y":4.25, "w":1.75},
|
||||||
|
{"x":18.25, "y":4.25},
|
||||||
|
{"x":20.5, "y":4.25},
|
||||||
|
{"x":0, "y":5.25},
|
||||||
|
{"x":1, "y":5.25},
|
||||||
|
{"x":2, "y":5.25},
|
||||||
|
{"x":3, "y":5.25},
|
||||||
|
{"x":4.25, "y":5.25, "w":1.25},
|
||||||
|
{"x":5.5, "y":5.25, "w":1.25},
|
||||||
|
{"x":6.75, "y":5.25, "w":1.25},
|
||||||
|
{"x":8, "y":5.25, "w":6.25},
|
||||||
|
{"x":14.25, "y":5.25, "w":1.25},
|
||||||
|
{"x":15.5, "y":5.25, "w":1.25},
|
||||||
|
{"x":16.75, "y":5.25, "w":1.25},
|
||||||
|
{"x":18, "y":5.25, "w":1.25},
|
||||||
|
{"x":19.5, "y":5.25},
|
||||||
|
{"x":20.5, "y":5.25},
|
||||||
|
{"x":21.5, "y":5.25}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"LAYOUT_ansi_wkl": {
|
||||||
|
"layout": [
|
||||||
|
{"x":0, "y":0},
|
||||||
|
{"x":1, "y":0},
|
||||||
|
{"x":2, "y":0},
|
||||||
|
{"x":4.25, "y":0},
|
||||||
|
{"x":6.25, "y":0},
|
||||||
|
{"x":7.25, "y":0},
|
||||||
|
{"x":8.25, "y":0},
|
||||||
|
{"x":9.25, "y":0},
|
||||||
|
{"x":10.75, "y":0},
|
||||||
|
{"x":11.75, "y":0},
|
||||||
|
{"x":12.75, "y":0},
|
||||||
|
{"x":13.75, "y":0},
|
||||||
|
{"x":15.25, "y":0},
|
||||||
|
{"x":16.25, "y":0},
|
||||||
|
{"x":17.25, "y":0},
|
||||||
|
{"x":18.25, "y":0},
|
||||||
|
{"x":19.5, "y":0},
|
||||||
|
{"x":20.5, "y":0},
|
||||||
|
{"x":21.5, "y":0},
|
||||||
|
{"x":0, "y":1.25},
|
||||||
|
{"x":1, "y":1.25},
|
||||||
|
{"x":2, "y":1.25},
|
||||||
|
{"x":3, "y":1.25},
|
||||||
|
{"x":4.25, "y":1.25},
|
||||||
|
{"x":5.25, "y":1.25},
|
||||||
|
{"x":6.25, "y":1.25},
|
||||||
|
{"x":7.25, "y":1.25},
|
||||||
|
{"x":8.25, "y":1.25},
|
||||||
|
{"x":9.25, "y":1.25},
|
||||||
|
{"x":10.25, "y":1.25},
|
||||||
|
{"x":11.25, "y":1.25},
|
||||||
|
{"x":12.25, "y":1.25},
|
||||||
|
{"x":13.25, "y":1.25},
|
||||||
|
{"x":14.25, "y":1.25},
|
||||||
|
{"x":15.25, "y":1.25},
|
||||||
|
{"x":16.25, "y":1.25},
|
||||||
|
{"x":17.25, "y":1.25},
|
||||||
|
{"x":18.25, "y":1.25},
|
||||||
|
{"x":19.5, "y":1.25},
|
||||||
|
{"x":20.5, "y":1.25},
|
||||||
|
{"x":21.5, "y":1.25},
|
||||||
|
{"x":0, "y":2.25},
|
||||||
|
{"x":1, "y":2.25},
|
||||||
|
{"x":2, "y":2.25},
|
||||||
|
{"x":3, "y":2.25},
|
||||||
|
{"x":4.25, "y":2.25, "w":1.5},
|
||||||
|
{"x":5.75, "y":2.25},
|
||||||
|
{"x":6.75, "y":2.25},
|
||||||
|
{"x":7.75, "y":2.25},
|
||||||
|
{"x":8.75, "y":2.25},
|
||||||
|
{"x":9.75, "y":2.25},
|
||||||
|
{"x":10.75, "y":2.25},
|
||||||
|
{"x":11.75, "y":2.25},
|
||||||
|
{"x":12.75, "y":2.25},
|
||||||
|
{"x":13.75, "y":2.25},
|
||||||
|
{"x":14.75, "y":2.25},
|
||||||
|
{"x":15.75, "y":2.25},
|
||||||
|
{"x":16.75, "y":2.25},
|
||||||
|
{"x":17.75, "y":2.25, "w":1.5},
|
||||||
|
{"x":19.5, "y":2.25},
|
||||||
|
{"x":20.5, "y":2.25},
|
||||||
|
{"x":21.5, "y":2.25},
|
||||||
|
{"x":0, "y":3.25},
|
||||||
|
{"x":1, "y":3.25},
|
||||||
|
{"x":2, "y":3.25},
|
||||||
|
{"x":3, "y":3.25},
|
||||||
|
{"x":4.25, "y":3.25, "w":1.75},
|
||||||
|
{"x":6, "y":3.25},
|
||||||
|
{"x":7, "y":3.25},
|
||||||
|
{"x":8, "y":3.25},
|
||||||
|
{"x":9, "y":3.25},
|
||||||
|
{"x":10, "y":3.25},
|
||||||
|
{"x":11, "y":3.25},
|
||||||
|
{"x":12, "y":3.25},
|
||||||
|
{"x":13, "y":3.25},
|
||||||
|
{"x":14, "y":3.25},
|
||||||
|
{"x":15, "y":3.25},
|
||||||
|
{"x":16, "y":3.25},
|
||||||
|
{"x":17, "y":3.25, "w":2.25},
|
||||||
|
{"x":0, "y":4.25},
|
||||||
|
{"x":1, "y":4.25},
|
||||||
|
{"x":2, "y":4.25},
|
||||||
|
{"x":3, "y":4.25},
|
||||||
|
{"x":4.25, "y":4.25, "w":2.25},
|
||||||
|
{"x":6.5, "y":4.25},
|
||||||
|
{"x":7.5, "y":4.25},
|
||||||
|
{"x":8.5, "y":4.25},
|
||||||
|
{"x":9.5, "y":4.25},
|
||||||
|
{"x":10.5, "y":4.25},
|
||||||
|
{"x":11.5, "y":4.25},
|
||||||
|
{"x":12.5, "y":4.25},
|
||||||
|
{"x":13.5, "y":4.25},
|
||||||
|
{"x":14.5, "y":4.25},
|
||||||
|
{"x":15.5, "y":4.25},
|
||||||
|
{"x":16.5, "y":4.25, "w":1.75},
|
||||||
|
{"x":18.25, "y":4.25},
|
||||||
|
{"x":20.5, "y":4.25},
|
||||||
|
{"x":0, "y":5.25},
|
||||||
|
{"x":1, "y":5.25},
|
||||||
|
{"x":2, "y":5.25},
|
||||||
|
{"x":3, "y":5.25},
|
||||||
|
{"x":4.25, "y":5.25, "w":1.5},
|
||||||
|
{"x":5.75, "y":5.25},
|
||||||
|
{"x":6.75, "y":5.25, "w":1.5},
|
||||||
|
{"x":8.25, "y":5.25, "w":7},
|
||||||
|
{"x":15.25, "y":5.25, "w":1.5},
|
||||||
|
{"x":16.75, "y":5.25},
|
||||||
|
{"x":17.75, "y":5.25, "w":1.5},
|
||||||
|
{"x":19.5, "y":5.25},
|
||||||
|
{"x":20.5, "y":5.25},
|
||||||
|
{"x":21.5, "y":5.25}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
/* Copyright 2020 Ryota Goto
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
// Defines names for use in layer keycodes and the keymap
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
_FN
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/* Base */
|
||||||
|
[_BASE] = LAYOUT_all (
|
||||||
|
BL_STEP, BL_TOGG, MO(1) , KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
|
||||||
|
KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||||
|
KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||||
|
KC_P4, KC_P5, KC_P6, KC_PPLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT,
|
||||||
|
KC_P1, KC_P2, KC_P3, KC_PENT, 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_LSFT, KC_LSFT, KC_UP,
|
||||||
|
KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN] = LAYOUT_all (
|
||||||
|
_______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||||
|
};
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# The default keymap for southpaw fullsize
|
||||||
|
|
||||||
|
Nothing special
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
/* Copyright 2020 Ryota Goto
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
// Defines names for use in layer keycodes and the keymap
|
||||||
|
enum layer_names {
|
||||||
|
_BASE,
|
||||||
|
_FN
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
/* Base */
|
||||||
|
[_BASE] = LAYOUT_ansi_wkl (
|
||||||
|
BL_STEP, BL_TOGG, MO(1) , KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS,
|
||||||
|
KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP,
|
||||||
|
KC_P7, KC_P8, KC_P9, KC_PPLS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN,
|
||||||
|
KC_P4, KC_P5, KC_P6, KC_PPLS, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
|
||||||
|
KC_P1, KC_P2, KC_P3, KC_PENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LSFT, KC_LSFT, KC_UP,
|
||||||
|
KC_P0, KC_P0, KC_PDOT, KC_PENT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
|
||||||
|
[_FN] = LAYOUT_ansi_wkl (
|
||||||
|
_______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______),
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
# The default WKL keymap for southpaw fullsize
|
||||||
|
|
||||||
|
Nothing special
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
# Southpaw Full Size
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
A fullsize keyboard with southpaw numpad
|
||||||
|
|
||||||
|
* Keyboard Maintainer: [Switchplate Peripherals](https://switchplate.co/)/[ai03](https://github.com/ai03-2725)
|
||||||
|
* Hardware Supported: The Southpaw Full Size PCB
|
||||||
|
* Hardware Availability: GB
|
||||||
|
|
||||||
|
Make example for this keyboard (after setting up your build environment):
|
||||||
|
|
||||||
|
make switchplate/southpaw_fullsize: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,32 @@
|
|||||||
|
# MCU name
|
||||||
|
MCU = at90usb1286
|
||||||
|
|
||||||
|
# Bootloader selection
|
||||||
|
# Teensy halfkay
|
||||||
|
# Pro Micro caterina
|
||||||
|
# Atmel DFU atmel-dfu
|
||||||
|
# LUFA DFU lufa-dfu
|
||||||
|
# QMK DFU qmk-dfu
|
||||||
|
# ATmega32A bootloadHID
|
||||||
|
# ATmega328P USBasp
|
||||||
|
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 = yes # Commands for debug and configuration
|
||||||
|
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
|
||||||
|
SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
|
||||||
|
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
|
||||||
|
NKRO_ENABLE = no # USB Nkey Rollover
|
||||||
|
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
|
||||||
|
RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
|
||||||
|
MIDI_ENABLE = no # MIDI support
|
||||||
|
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
|
||||||
|
AUDIO_ENABLE = no # Audio output on port C6
|
||||||
|
FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches
|
||||||
|
HD44780_ENABLE = no # Enable support for HD44780 based LCDs
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
/* Copyright 2020 Ryota Goto
|
||||||
|
*
|
||||||
|
* 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 "southpaw_fullsize.h"
|
||||||
|
|
||||||
|
// Optional override functions below.
|
||||||
|
// You can leave any or all of these undefined.
|
||||||
|
// These are only required if you want to perform custom actions.
|
||||||
|
|
||||||
|
#define INDICATOR_NUM D3
|
||||||
|
#define INDICATOR_CAPS D4
|
||||||
|
#define INDICATOR_SCR D5
|
||||||
|
|
||||||
|
|
||||||
|
void matrix_init_kb(void) {
|
||||||
|
// put your keyboard start-up code here
|
||||||
|
// runs once when the firmware starts up
|
||||||
|
|
||||||
|
// D3 Numlock, D4 Capslock, D5 Scrlock
|
||||||
|
setPinOutput(INDICATOR_NUM);
|
||||||
|
setPinOutput(INDICATOR_CAPS);
|
||||||
|
setPinOutput(INDICATOR_SCR);
|
||||||
|
|
||||||
|
matrix_init_user();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool led_update_kb(led_t led_state) {
|
||||||
|
// put your keyboard LED indicator (ex: Caps Lock LED) toggling code here
|
||||||
|
bool res = led_update_user(led_state);
|
||||||
|
if (res)
|
||||||
|
{
|
||||||
|
writePin(INDICATOR_NUM, !led_state.num_lock);
|
||||||
|
writePin(INDICATOR_CAPS, !led_state.caps_lock);
|
||||||
|
writePin(INDICATOR_SCR, !led_state.scroll_lock);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
/* Copyright 2020 Ryota Goto
|
||||||
|
*
|
||||||
|
* This program is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 2 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This program is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "quantum.h"
|
||||||
|
|
||||||
|
/* This is a shortcut to help you visually see your layout.
|
||||||
|
*
|
||||||
|
* The first section contains all of the arguments representing the physical
|
||||||
|
* layout of the board and position of the keys.
|
||||||
|
*
|
||||||
|
* The second converts the arguments into a two-dimensional array which
|
||||||
|
* represents the switch matrix.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define LAYOUT_all( \
|
||||||
|
K000, K001, K002, K004, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K019, K020, K021, \
|
||||||
|
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121, \
|
||||||
|
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, K219, K220, K221, \
|
||||||
|
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, K317, \
|
||||||
|
K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, K416, K418, K420, \
|
||||||
|
K500, K501, K502, K503, K504, K505, K506, K510, K513, K514, K515, K516, K519, K520, K521 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ K000, K001, K002, KC_NO, K004, KC_NO, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, KC_NO, K019, K020, K021 }, \
|
||||||
|
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121 }, \
|
||||||
|
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, KC_NO, K219, K220, K221 }, \
|
||||||
|
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, K317, KC_NO, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, K416, KC_NO, K418, KC_NO, K420, KC_NO }, \
|
||||||
|
{ K500, K501, K502, K503, K504, K505, K506, KC_NO, KC_NO, KC_NO, K510, KC_NO, KC_NO, K513, K514, K515, K516, KC_NO, KC_NO, K519, K520, K521 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define LAYOUT_ansi_wkl( \
|
||||||
|
K000, K001, K002, K004, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K019, K020, K021, \
|
||||||
|
K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121, \
|
||||||
|
K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, K219, K220, K221, \
|
||||||
|
K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K317, \
|
||||||
|
K400, K401, K402, K403, K404, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, K416, K418, K420, \
|
||||||
|
K500, K501, K502, K503, K504, K505, K506, K510, K514, K515, K516, K519, K520, K521 \
|
||||||
|
) \
|
||||||
|
{ \
|
||||||
|
{ K000, K001, K002, KC_NO, K004, KC_NO, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, KC_NO, K019, K020, K021 }, \
|
||||||
|
{ K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, K115, K116, K117, K118, K119, K120, K121 }, \
|
||||||
|
{ K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, K215, K216, K217, KC_NO, K219, K220, K221 }, \
|
||||||
|
{ K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, KC_NO, K317, KC_NO, KC_NO, KC_NO, KC_NO }, \
|
||||||
|
{ K400, K401, K402, K403, K404, KC_NO, K406, K407, K408, K409, K410, K411, K412, K413, K414, K415, K416, KC_NO, K418, KC_NO, K420, KC_NO }, \
|
||||||
|
{ K500, K501, K502, K503, K504, K505, K506, KC_NO, KC_NO, KC_NO, K510, KC_NO, KC_NO, KC_NO, K514, K515, K516, KC_NO, KC_NO, K519, K520, K521 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
/* Copyright 2017 Wunder
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// 2019/03/04 takashiski
|
||||||
|
// NORTICE
|
||||||
|
// This layout is for Japanese Keyboard User.
|
||||||
|
// So there are logicalparing symbols and special keycode like a KC_RO, KC_HENK, KC_MHEN, KC_JYEN.
|
||||||
|
// 日本語キーボードとして認識させて使うことが前提なので、記号位置が英語キーボードとは異なります。
|
||||||
|
// また、日本語キーボードでないと認識されない特殊なキーコードが含まれています。
|
||||||
|
|
||||||
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
|
||||||
|
// Layer shorthand
|
||||||
|
enum LAYER{
|
||||||
|
_QW,
|
||||||
|
_EASY_QW,
|
||||||
|
_CURSOR,
|
||||||
|
_RS,
|
||||||
|
_LW
|
||||||
|
};
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
|
//qwerty layer(almost use default)
|
||||||
|
[_QW] = 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_JYEN, 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_ENT, 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_BSLS, KC_ENT, KC_ENT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, KC_RSFT,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, LT(_LW,KC_TAB), KC_SPC, LT(_CURSOR,KC_ENT), LT(_RS,KC_BSPC), KC_HENK, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
//4th row shifted 1u from regular ortholinear.
|
||||||
|
[_EASY_QW] = 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_JYEN, 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_ENT, 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_BSLS, KC_ENT, KC_ENT,
|
||||||
|
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_RO, KC_UP, KC_RSFT,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, LT(_LW,KC_TAB), KC_SPC, LT(_CURSOR,KC_ENT), LT(_RS,KC_BSPC), KC_HENK, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
),
|
||||||
|
//LOWER
|
||||||
|
[_LW] = LAYOUT(
|
||||||
|
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_PSCR,
|
||||||
|
_______, 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_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, _______, _______, _______,
|
||||||
|
KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_SLCK,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
|
||||||
|
),
|
||||||
|
|
||||||
|
//RAISE
|
||||||
|
[_RS] = LAYOUT(
|
||||||
|
KC_NLCK, 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_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR,
|
||||||
|
KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, _______, _______, _______,
|
||||||
|
RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, _______,KC_WH_U, KC_MS_U, KC_WH_D,
|
||||||
|
RESET , DF(_QW), DF(_EASY_QW), _______, _______, KC_BTN1, KC_BTN2, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R
|
||||||
|
),
|
||||||
|
[_CURSOR] = 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_JYEN, 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_ENT, KC_DEL,
|
||||||
|
KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_G, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_ENT,
|
||||||
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, KC_RSFT,
|
||||||
|
KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, LT(_LW,KC_TAB), KC_SPC, KC_ENT, LT(_RS,KC_BSPC), KC_HENK, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
|
)
|
||||||
|
|
||||||
|
};
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
# atomic style jp
|
||||||
|
|
||||||
|
This layout is based Standard Japanese Layout and atomic style layout.
|
||||||
|
|
||||||
@@ -4,23 +4,30 @@
|
|||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_BL] = LAYOUT_60_ansi(
|
[_BL] = LAYOUT_60_ansi(
|
||||||
KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \
|
KC_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_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_BSLASH, \
|
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_BSLASH, \
|
||||||
KC_CTCP, 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_CTCP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_FNX, KC_RALT, KC_RGUI, KC_RCTL),
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_FNX, KC_RALT, KC_RGUI, KC_RCTL),
|
||||||
|
|
||||||
[_FL] = LAYOUT_60_ansi(
|
[_FL] = LAYOUT_60_ansi(
|
||||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \
|
||||||
BL_TOGG, BL_INC, BL_DEC, BL_STEP, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
BL_TOGG, BL_INC, BL_DEC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||||
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||||
VLK_TOG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, \
|
VLK_TOG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, \
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
KC_TRNS, KC_TRNS, KC_TRNS, MO(_CL), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
[_AL] = LAYOUT_60_ansi(
|
[_AL] = LAYOUT_60_ansi(
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RSFT_T(KC_UP), \
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, \
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT)
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||||
|
|
||||||
|
[_CL] = LAYOUT_60_ansi(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
# MechMerlin's Standard ANSI 60% Layout
|
# MechMerlin's Standard ANSI 60% Layout
|
||||||
|
|
||||||
This is the 60% layout used by u/merlin36, host of the [MechMerlin](www.youtube.com/mechmerlin)
|
This is the standard 60% layout used by u/merlin36, host of the [MechMerlin](www.youtube.com/mechmerlin)
|
||||||
YouTube channel.
|
YouTube channel.
|
||||||
|
|
||||||
It is used on his
|
It is used on his
|
||||||
[1up60HSE](https://github.com/qmk/qmk_firmware/tree/master/keyboards/1upkeyboards/1up60hse)
|
* [1up60HSE](https://github.com/qmk/qmk_firmware/tree/master/keyboards/1upkeyboards/1up60hse)
|
||||||
[dz60rgb-ansi](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dztech/dz60rgb)
|
* [dz60rgb-ansi](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dztech/dz60rgb)
|
||||||
[HS60 V2](https://github.com/qmk/qmk_firmware/tree/master/keyboards/hs60/v2)
|
* [HS60 V2](https://github.com/qmk/qmk_firmware/tree/master/keyboards/hs60/v2)
|
||||||
|
|
||||||
## Keymap Notes
|
## Keymap Notes
|
||||||
- Arrow toggle switch is tapping the `FN` key once.
|
- Arrow toggle switch is tapping the `FN` key once.
|
||||||
|
|||||||
@@ -4,23 +4,30 @@
|
|||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_BL] = LAYOUT_60_ansi_split_bs_rshift(
|
[_BL] = LAYOUT_60_ansi_split_bs_rshift(
|
||||||
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_BSPC, \
|
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_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_BSLASH, \
|
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_BSLASH, \
|
||||||
KC_CTCP, 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_CTCP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, \
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TG(2), \
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, TG(_AL), \
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(1), KC_RALT, KC_RGUI, KC_RCTL),
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(_FL), KC_RALT, KC_RGUI, KC_RCTL),
|
||||||
|
|
||||||
[_FL] = LAYOUT_60_ansi_split_bs_rshift(
|
[_FL] = LAYOUT_60_ansi_split_bs_rshift(
|
||||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, \
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_DEL, \
|
||||||
BL_TOGG, BL_INC, BL_DEC, BL_STEP, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
BL_TOGG, BL_INC, BL_DEC, BL_STEP, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||||
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||||
VLK_TOG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, \
|
VLK_TOG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
KC_TRNS, KC_TRNS, KC_TRNS, MO(_CL), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
[_AL] = LAYOUT_60_ansi_split_bs_rshift(
|
[_AL] = LAYOUT_60_ansi_split_bs_rshift(
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RSFT_T(KC_UP), KC_TRNS, \
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, \
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT)
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT),
|
||||||
|
|
||||||
|
[_CL] = LAYOUT_60_ansi_split_bs_rshift(
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -5,11 +5,11 @@ host of the [MechMerlin](www.youtube.com/mechmerlin) YouTube channel.
|
|||||||
|
|
||||||
It is used on his
|
It is used on his
|
||||||
|
|
||||||
[DO60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/do60)
|
* [DO60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/do60)
|
||||||
[DP60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dp60)
|
* [DP60](https://github.com/qmk/qmk_firmware/tree/master/keyboards/dp60)
|
||||||
[Sentraq S60-X RGB](https://github.com/qmk/qmk_firmware/tree/master/keyboards/s60_x)
|
* [Sentraq S60-X RGB](https://github.com/qmk/qmk_firmware/tree/master/keyboards/s60_x)
|
||||||
[Waldo](https://github.com/qmk/qmk_firmware/tree/master/keyboards/waldo)
|
* [Waldo](https://github.com/qmk/qmk_firmware/tree/master/keyboards/waldo)
|
||||||
[Zeal60 Rev4](https://github.com/qmk/qmk_firmware/tree/master/keyboards/zeal60)
|
* [Zeal60 Rev4](https://github.com/qmk/qmk_firmware/tree/master/keyboards/zeal60)
|
||||||
|
|
||||||
## Keymap Notes
|
## Keymap Notes
|
||||||
- Highly influenced by the KBP V60 and WKL B.Face standard layouts
|
- Highly influenced by the KBP V60 and WKL B.Face standard layouts
|
||||||
|
|||||||
@@ -40,10 +40,18 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
[_FL] = LAYOUT_65_ansi(
|
[_FL] = LAYOUT_65_ansi(
|
||||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______,
|
KC_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, _______, _______,
|
||||||
_______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_PGUP, _______,
|
_______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_PGUP, _______,
|
||||||
_______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
|
_______, _______, _______, MO(_CL), _______, _______, _______, KC_HOME, KC_PGDN, KC_END
|
||||||
|
),
|
||||||
|
|
||||||
|
[_CL] = LAYOUT_65_ansi(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -22,15 +22,23 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
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_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_CTCP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
|
KC_CTCP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_PGUP,
|
||||||
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_PGDN,
|
||||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT
|
||||||
),
|
),
|
||||||
|
|
||||||
[_FL] = LAYOUT_65_ansi_blocker(
|
[_FL] = LAYOUT_65_ansi_blocker(
|
||||||
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_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, _______, _______,
|
||||||
_______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
_______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_PGUP, _______,
|
_______, RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, KC_PGUP, _______,
|
||||||
_______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
|
_______, _______, _______, MO(_CL), _______, _______, KC_HOME, KC_PGDN, KC_END
|
||||||
|
),
|
||||||
|
|
||||||
|
[_CL] = LAYOUT_65_ansi_blocker(
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, EEP_RST, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
|
_______, _______, _______, _______, _______, _______, _______, _______, _______,
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -4,8 +4,8 @@ This is the 65% layout used by u/merlin36, host of the [MechMerlin](www.youtube.
|
|||||||
YouTube channel.
|
YouTube channel.
|
||||||
|
|
||||||
It is used on his
|
It is used on his
|
||||||
[RGB Doro67](https://github.com/qmk/qmk_firmware/tree/master/keyboards/doro67/rgb)
|
* [RGB Doro67](https://github.com/qmk/qmk_firmware/tree/master/keyboards/doro67/rgb)
|
||||||
[KBD67 mkii](https://github.com/qmk/qmk_firmware/tree/master/keyboards/kbdfans/kbd67/mkiirgb)
|
* [KBD67 mkii](https://github.com/qmk/qmk_firmware/tree/master/keyboards/kbdfans/kbd67/mkiirgb/v1)
|
||||||
|
|
||||||
### Build
|
### Build
|
||||||
To build the firmware file associated with this keymap, simply run `make your_keyboard:mechmerlin`.
|
To build the firmware file associated with this keymap, simply run `make your_keyboard:mechmerlin`.
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
#include "mechmerlin.h"
|
#include "mechmerlin.h"
|
||||||
|
|
||||||
#define _CL 2
|
|
||||||
|
|
||||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
[_BL] = LAYOUT_66_ansi(
|
[_BL] = LAYOUT_66_ansi(
|
||||||
KC_GESC,KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_BSPC, KC_PGUP, \
|
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_PGUP, \
|
||||||
@@ -13,15 +11,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
[_FL] = LAYOUT_66_ansi(
|
[_FL] = LAYOUT_66_ansi(
|
||||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_VOLU, \
|
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_VOLU, \
|
||||||
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_VOLD, \
|
BL_TOGG,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_VOLD, \
|
||||||
_______,_______,MO(_CL),_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
|
RGB_TOG,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
|
||||||
_______, _______,_______,_______,_______,_______,_______,KC_MUTE,KC_VOLD,KC_VOLU,_______, _______, KC_PGUP, \
|
_______, _______,_______,_______,_______,_______,_______,KC_MUTE,KC_VOLD,KC_VOLU,_______, _______, KC_PGUP, \
|
||||||
_______,_______,_______, _______, _______,_______,_______,KC_HOME,KC_PGDN,KC_END),
|
_______,_______,_______, MO(_CL), _______,_______,_______,KC_HOME,KC_PGDN,KC_END),
|
||||||
|
|
||||||
[_CL] = LAYOUT_66_ansi(
|
[_CL] = LAYOUT_66_ansi(
|
||||||
BL_STEP,RGB_M_P,RGB_M_B,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______, _______, RGB_VAI, \
|
BL_STEP,RGB_M_P,RGB_M_B,RGB_M_R,RGB_M_SW,RGB_M_SN,RGB_M_K,RGB_M_X,RGB_M_G,_______,_______,_______,_______, _______, RGB_VAI, \
|
||||||
BL_TOGG,_______,_______,_______,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_VAD, \
|
_______,_______,_______,EEP_RST,RESET, _______,_______,_______,_______,_______,_______,_______,_______,_______, RGB_VAD, \
|
||||||
RGB_TOG,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
|
_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, \
|
||||||
VLK_TOG, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, RGB_SAI, \
|
VLK_TOG, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, RGB_SAI, \
|
||||||
CK_TOGG,_______,_______, RGB_MOD, _______,_______,_______,RGB_HUD,RGB_SAD,RGB_HUI),
|
CK_TOGG,_______,_______, _______, _______,_______,_______,RGB_HUD,RGB_SAD,RGB_HUI),
|
||||||
};
|
};
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
# MechMerlin's 66_ansi layout
|
||||||
|
|
||||||
|
This is the 66 key layout used by u/merlin36, host of the [MechMerlin](www.youtube.com/mechmerlin)
|
||||||
|
YouTube channel.
|
||||||
|
|
||||||
|
It is used on his
|
||||||
|
* [Clueboard 66 rev4](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66/rev4)
|
||||||
|
* [Clueboard 66 hotswap gen1](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66_hotswap/gen1)
|
||||||
|
* [Clueboard 66 hotswap prototype](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66_hotswap/prototype)
|
||||||
|
* [Clueboard 66 rev1](https://github.com/qmk/qmk_firmware/tree/master/keyboards/clueboard/66/rev1)
|
||||||
|
|
||||||
|
### Build
|
||||||
|
To build the firmware file associated with this keymap, simply run `make your_keyboard:mechmerlin`.
|
||||||
@@ -14,5 +14,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS,
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, MO(_CL), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
|
[_CL] = LAYOUT_68_ansi(\
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
};
|
};
|
||||||
@@ -9,7 +9,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGUP,
|
||||||
KC_CTCP, 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_CTCP, 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_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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
|
||||||
|
|
||||||
[_FL] = LAYOUT_75_ansi(\
|
[_FL] = LAYOUT_75_ansi(\
|
||||||
RESET, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
RESET, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
@@ -17,5 +17,15 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
BL_TOGG, BL_INC, BL_DEC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
BL_TOGG, BL_INC, BL_DEC, BL_STEP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
RGB_TOG, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
VLK_TOG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS,
|
VLK_TOG, RGB_RMOD, RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD, KC_TRNS, KC_MUTE, KC_VOLD, KC_VOLU, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS,
|
||||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END)
|
KC_TRNS, KC_TRNS, KC_TRNS, MO(_CL), KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END),
|
||||||
|
|
||||||
|
[_CL] = LAYOUT_75_ansi(\
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS,
|
||||||
|
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -4,8 +4,8 @@ This is the 75% layout used by u/merlin36, host of the [MechMerlin](www.youtube.
|
|||||||
YouTube channel.
|
YouTube channel.
|
||||||
|
|
||||||
It is used on his
|
It is used on his
|
||||||
[Duck Octagon V2](https://github.com/qmk/qmk_firmware/tree/master/keyboards/duck/octagon/v2)
|
* [Duck Octagon V2](https://github.com/qmk/qmk_firmware/tree/master/keyboards/duck/octagon/v2)
|
||||||
[XD84](https://github.com/qmk/qmk_firmware/tree/master/keyboards/xd84)
|
* [XD84](https://github.com/qmk/qmk_firmware/tree/master/keyboards/xd84)
|
||||||
|
|
||||||
### Build
|
### Build
|
||||||
To build the firmware file associated with this keymap, simply run `make your_keyboard:mechmerlin-ansi`.
|
To build the firmware file associated with this keymap, simply run `make your_keyboard:mechmerlin-ansi`.
|
||||||
@@ -29,6 +29,7 @@ def cformat(cli):
|
|||||||
for dirpath, dirnames, filenames in os.walk(dir):
|
for dirpath, dirnames, filenames in os.walk(dir):
|
||||||
if any(i in dirpath for i in ignores):
|
if any(i in dirpath for i in ignores):
|
||||||
dirnames.clear()
|
dirnames.clear()
|
||||||
|
continue
|
||||||
|
|
||||||
for name in filenames:
|
for name in filenames:
|
||||||
if name.endswith(('.c', '.h', '.cpp')):
|
if name.endswith(('.c', '.h', '.cpp')):
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ def yesno(prompt, *args, default=None, **kwargs):
|
|||||||
|
|
||||||
Arguments:
|
Arguments:
|
||||||
prompt
|
prompt
|
||||||
The prompt to present to the user. Can include ANSI and format strings like milc's `cli.print()`.
|
The prompt to present to the user. Can include ANSI and format strings like milc's `cli.echo()`.
|
||||||
|
|
||||||
default
|
default
|
||||||
Whether to default to a Yes or No when the user presses enter.
|
Whether to default to a Yes or No when the user presses enter.
|
||||||
@@ -43,9 +43,9 @@ def yesno(prompt, *args, default=None, **kwargs):
|
|||||||
prompt = prompt + ' [y/N] '
|
prompt = prompt + ' [y/N] '
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
print()
|
cli.echo('')
|
||||||
answer = input(format_ansi(prompt % args))
|
answer = input(format_ansi(prompt % args))
|
||||||
print()
|
cli.echo('')
|
||||||
|
|
||||||
if not answer and prompt is not None:
|
if not answer and prompt is not None:
|
||||||
return default
|
return default
|
||||||
@@ -57,17 +57,26 @@ def yesno(prompt, *args, default=None, **kwargs):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
def question(prompt, *args, default=None, confirm=False, answer_type=str, **kwargs):
|
def question(prompt, *args, default=None, confirm=False, answer_type=str, validate=None, **kwargs):
|
||||||
"""Prompt the user to answer a question with a free-form input.
|
"""Prompt the user to answer a question with a free-form input.
|
||||||
|
|
||||||
|
Arguments:
|
||||||
prompt
|
prompt
|
||||||
The prompt to present to the user. Can include ANSI and format strings like milc's `cli.print()`.
|
The prompt to present to the user. Can include ANSI and format strings like milc's `cli.echo()`.
|
||||||
|
|
||||||
default
|
default
|
||||||
The value to return when the user doesn't enter any value. Use None to prompt until they enter a value.
|
The value to return when the user doesn't enter any value. Use None to prompt until they enter a value.
|
||||||
|
|
||||||
|
confirm
|
||||||
|
Present the user with a confirmation dialog before accepting their answer.
|
||||||
|
|
||||||
answer_type
|
answer_type
|
||||||
Specify a type function for the answer. Will re-prompt the user if the function raises any errors. Common choices here include int, float, and decimal.Decimal.
|
Specify a type function for the answer. Will re-prompt the user if the function raises any errors. Common choices here include int, float, and decimal.Decimal.
|
||||||
|
|
||||||
|
validate
|
||||||
|
This is an optional function that can be used to validate the answer. It should return True or False and have the following signature:
|
||||||
|
|
||||||
|
def function_name(answer, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
if not args and kwargs:
|
if not args and kwargs:
|
||||||
args = kwargs
|
args = kwargs
|
||||||
@@ -76,17 +85,21 @@ def question(prompt, *args, default=None, confirm=False, answer_type=str, **kwar
|
|||||||
prompt = '%s [%s] ' % (prompt, default)
|
prompt = '%s [%s] ' % (prompt, default)
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
print()
|
cli.echo('')
|
||||||
answer = input(format_ansi(prompt % args))
|
answer = input(format_ansi(prompt % args))
|
||||||
print()
|
cli.echo('')
|
||||||
|
|
||||||
if answer:
|
if answer:
|
||||||
if confirm:
|
if validate is not None and not validate(answer, *args, **kwargs):
|
||||||
|
continue
|
||||||
|
|
||||||
|
elif confirm:
|
||||||
if yesno('Is the answer "%s" correct?', answer, default=True):
|
if yesno('Is the answer "%s" correct?', answer, default=True):
|
||||||
try:
|
try:
|
||||||
return answer_type(answer)
|
return answer_type(answer)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
cli.log.error('Could not convert answer (%s) to type %s: %s', answer, answer_type.__name__, str(e))
|
cli.log.error('Could not convert answer (%s) to type %s: %s', answer, answer_type.__name__, str(e))
|
||||||
|
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
return answer_type(answer)
|
return answer_type(answer)
|
||||||
@@ -95,3 +108,71 @@ def question(prompt, *args, default=None, confirm=False, answer_type=str, **kwar
|
|||||||
|
|
||||||
elif default is not None:
|
elif default is not None:
|
||||||
return default
|
return default
|
||||||
|
|
||||||
|
|
||||||
|
def choice(heading, options, *args, default=None, confirm=False, prompt='Please enter your choice: ', **kwargs):
|
||||||
|
"""Present the user with a list of options and let them pick one.
|
||||||
|
|
||||||
|
Users can enter either the number or the text of their choice.
|
||||||
|
|
||||||
|
This will return the value of the item they choose, not the numerical index.
|
||||||
|
|
||||||
|
Arguments:
|
||||||
|
heading
|
||||||
|
The text to place above the list of options.
|
||||||
|
|
||||||
|
options
|
||||||
|
A sequence of items to choose from.
|
||||||
|
|
||||||
|
default
|
||||||
|
The index of the item to return when the user doesn't enter any value. Use None to prompt until they enter a value.
|
||||||
|
|
||||||
|
confirm
|
||||||
|
Present the user with a confirmation dialog before accepting their answer.
|
||||||
|
|
||||||
|
prompt
|
||||||
|
The prompt to present to the user. Can include ANSI and format strings like milc's `cli.echo()`.
|
||||||
|
"""
|
||||||
|
if not args and kwargs:
|
||||||
|
args = kwargs
|
||||||
|
|
||||||
|
if prompt and default:
|
||||||
|
prompt = prompt + ' [%s] ' % (default + 1,)
|
||||||
|
|
||||||
|
while True:
|
||||||
|
# Prompt for an answer.
|
||||||
|
cli.echo('')
|
||||||
|
cli.echo(heading % args)
|
||||||
|
cli.echo('')
|
||||||
|
for i, option in enumerate(options, 1):
|
||||||
|
cli.echo('\t{fg_cyan}%d.{fg_reset} %s', i, option)
|
||||||
|
|
||||||
|
cli.echo('')
|
||||||
|
answer = input(format_ansi(prompt))
|
||||||
|
cli.echo('')
|
||||||
|
|
||||||
|
# If the user types in one of the options exactly use that
|
||||||
|
if answer in options:
|
||||||
|
return answer
|
||||||
|
|
||||||
|
# Massage the answer into a valid integer
|
||||||
|
if answer == '' and default:
|
||||||
|
answer = default
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
answer = int(answer) - 1
|
||||||
|
except Exception:
|
||||||
|
# Normally we would log the exception here, but in the interest of clean UI we do not.
|
||||||
|
cli.log.error('Invalid choice: %s', answer + 1)
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Validate the answer
|
||||||
|
if answer >= len(options) or answer < 0:
|
||||||
|
cli.log.error('Invalid choice: %s', answer + 1)
|
||||||
|
continue
|
||||||
|
|
||||||
|
if confirm and not yesno('Is the answer "%s" correct?', answer + 1, default=True):
|
||||||
|
continue
|
||||||
|
|
||||||
|
# Return the answer they chose.
|
||||||
|
return options[answer]
|
||||||
+3
-6
@@ -50,15 +50,12 @@ MSG_EXTENDED_LISTING = Creating Extended Listing:
|
|||||||
MSG_SYMBOL_TABLE = Creating Symbol Table:
|
MSG_SYMBOL_TABLE = Creating Symbol Table:
|
||||||
MSG_LINKING = Linking:
|
MSG_LINKING = Linking:
|
||||||
MSG_COMPILING = Compiling:
|
MSG_COMPILING = Compiling:
|
||||||
MSG_COMPILING_CPP = Compiling:
|
MSG_COMPILING_CXX = Compiling:
|
||||||
MSG_ASSEMBLING = Assembling:
|
MSG_ASSEMBLING = Assembling:
|
||||||
MSG_CLEANING = Cleaning project:
|
MSG_CLEANING = Cleaning project:
|
||||||
MSG_CREATING_LIBRARY = Creating library:
|
MSG_CREATING_LIBRARY = Creating library:
|
||||||
MSG_SUBMODULE_DIRTY = $(WARN_COLOR)WARNING:$(NO_COLOR)\n \
|
MSG_SUBMODULE_DIRTY = $(WARN_COLOR)WARNING:$(NO_COLOR) Some git submodules are out of date or modified.\n\
|
||||||
Some git sub-modules are out of date or modified, please consider running:$(BOLD)\n\
|
Please consider running $(BOLD)make git-submodule$(NO_COLOR).\n\n
|
||||||
make git-submodule\n\
|
|
||||||
You can ignore this warning if you are not compiling any ChibiOS keyboards,\n\
|
|
||||||
or if you have modified the ChibiOS libraries yourself. \n\n$(NO_COLOR)
|
|
||||||
MSG_NO_CMP = $(ERROR_COLOR)Error:$(NO_COLOR)$(BOLD) cmp command not found, please install diffutils\n$(NO_COLOR)
|
MSG_NO_CMP = $(ERROR_COLOR)Error:$(NO_COLOR)$(BOLD) cmp command not found, please install diffutils\n$(NO_COLOR)
|
||||||
|
|
||||||
define GENERATE_MSG_MAKE_KB
|
define GENERATE_MSG_MAKE_KB
|
||||||
|
|||||||
@@ -29,8 +29,8 @@ COMPILEFLAGS += -mthumb
|
|||||||
|
|
||||||
CFLAGS += $(COMPILEFLAGS)
|
CFLAGS += $(COMPILEFLAGS)
|
||||||
|
|
||||||
CPPFLAGS += $(COMPILEFLAGS)
|
CXXFLAGS += $(COMPILEFLAGS)
|
||||||
CPPFLAGS += -fno-exceptions -std=c++11
|
CXXFLAGS += -fno-exceptions -std=c++11
|
||||||
|
|
||||||
LDFLAGS +=-Wl,--gc-sections
|
LDFLAGS +=-Wl,--gc-sections
|
||||||
LDFLAGS += -Wl,-Map="%OUT%%PROJ_NAME%.map"
|
LDFLAGS += -Wl,-Map="%OUT%%PROJ_NAME%.map"
|
||||||
|
|||||||
+2
-2
@@ -25,8 +25,8 @@ CFLAGS += $(COMPILEFLAGS)
|
|||||||
CFLAGS += -fno-inline-small-functions
|
CFLAGS += -fno-inline-small-functions
|
||||||
CFLAGS += -fno-strict-aliasing
|
CFLAGS += -fno-strict-aliasing
|
||||||
|
|
||||||
CPPFLAGS += $(COMPILEFLAGS)
|
CXXFLAGS += $(COMPILEFLAGS)
|
||||||
CPPFLAGS += -fno-exceptions -std=c++11
|
CXXFLAGS += -fno-exceptions -std=c++11
|
||||||
|
|
||||||
LDFLAGS +=-Wl,--gc-sections
|
LDFLAGS +=-Wl,--gc-sections
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -167,8 +167,8 @@ CFLAGS += $(COMPILEFLAGS)
|
|||||||
|
|
||||||
ASFLAGS += $(THUMBFLAGS)
|
ASFLAGS += $(THUMBFLAGS)
|
||||||
|
|
||||||
CPPFLAGS += $(COMPILEFLAGS)
|
CXXFLAGS += $(COMPILEFLAGS)
|
||||||
CPPFLAGS += -fno-rtti
|
CXXFLAGS += -fno-rtti
|
||||||
|
|
||||||
LDFLAGS +=-Wl,--gc-sections
|
LDFLAGS +=-Wl,--gc-sections
|
||||||
LDFLAGS +=-Wl,--no-wchar-size-warning
|
LDFLAGS +=-Wl,--no-wchar-size-warning
|
||||||
|
|||||||
@@ -28,6 +28,6 @@ uint32_t timer_read32(void) {
|
|||||||
return current_time_ms;
|
return current_time_ms;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t timer_elapsed(uint16_t last) { return timer_read() - last; }
|
uint16_t timer_elapsed(uint16_t last) { return TIMER_DIFF_16(timer_read(), last); }
|
||||||
|
|
||||||
uint32_t timer_elapsed32(uint32_t last) { return timer_read32() - last; }
|
uint32_t timer_elapsed32(uint32_t last) { return TIMER_DIFF_32(timer_read32(), last); }
|
||||||
@@ -150,6 +150,11 @@ typedef union {
|
|||||||
#endif
|
#endif
|
||||||
} __attribute__((packed)) report_keyboard_t;
|
} __attribute__((packed)) report_keyboard_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
uint8_t report_id;
|
||||||
|
uint16_t usage;
|
||||||
|
} __attribute__((packed)) report_extra_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
#ifdef MOUSE_SHARED_EP
|
#ifdef MOUSE_SHARED_EP
|
||||||
uint8_t report_id;
|
uint8_t report_id;
|
||||||
|
|||||||
+3
-3
@@ -24,6 +24,6 @@ CFLAGS += $(COMPILEFLAGS)
|
|||||||
CFLAGS += -fno-inline-small-functions
|
CFLAGS += -fno-inline-small-functions
|
||||||
CFLAGS += -fno-strict-aliasing
|
CFLAGS += -fno-strict-aliasing
|
||||||
|
|
||||||
CPPFLAGS += $(COMPILEFLAGS)
|
CXXFLAGS += $(COMPILEFLAGS)
|
||||||
CPPFLAGS += -fno-exceptions
|
CXXFLAGS += -fno-exceptions
|
||||||
CPPFLAGS += -std=gnu++11
|
CXXFLAGS += -std=gnu++11
|
||||||
@@ -110,40 +110,34 @@ void send_mouse(report_mouse_t *report) {
|
|||||||
#endif // MOUSEKEY_ENABLE
|
#endif // MOUSEKEY_ENABLE
|
||||||
}
|
}
|
||||||
|
|
||||||
void send_system(uint16_t data) {
|
|
||||||
#ifdef EXTRAKEY_ENABLE
|
#ifdef EXTRAKEY_ENABLE
|
||||||
|
void send_extra(uint8_t report_id, uint16_t data) {
|
||||||
uint32_t irqflags;
|
uint32_t irqflags;
|
||||||
|
|
||||||
irqflags = __get_PRIMASK();
|
irqflags = __get_PRIMASK();
|
||||||
__disable_irq();
|
__disable_irq();
|
||||||
__DMB();
|
__DMB();
|
||||||
|
|
||||||
udi_hid_exk_report.desc.report_id = REPORT_ID_SYSTEM;
|
udi_hid_exk_report.desc.report_id = report_id;
|
||||||
if (data != 0) data = data - SYSTEM_POWER_DOWN + 1;
|
|
||||||
udi_hid_exk_report.desc.report_data = data;
|
udi_hid_exk_report.desc.report_data = data;
|
||||||
udi_hid_exk_b_report_valid = 1;
|
udi_hid_exk_b_report_valid = 1;
|
||||||
udi_hid_exk_send_report();
|
udi_hid_exk_send_report();
|
||||||
|
|
||||||
__DMB();
|
__DMB();
|
||||||
__set_PRIMASK(irqflags);
|
__set_PRIMASK(irqflags);
|
||||||
|
}
|
||||||
|
#endif // EXTRAKEY_ENABLE
|
||||||
|
|
||||||
|
void send_system(uint16_t data) {
|
||||||
|
#ifdef EXTRAKEY_ENABLE
|
||||||
|
if (data != 0) data = data - SYSTEM_POWER_DOWN + 1;
|
||||||
|
send_extra(REPORT_ID_SYSTEM, data);
|
||||||
#endif // EXTRAKEY_ENABLE
|
#endif // EXTRAKEY_ENABLE
|
||||||
}
|
}
|
||||||
|
|
||||||
void send_consumer(uint16_t data) {
|
void send_consumer(uint16_t data) {
|
||||||
#ifdef EXTRAKEY_ENABLE
|
#ifdef EXTRAKEY_ENABLE
|
||||||
uint32_t irqflags;
|
send_extra(REPORT_ID_CONSUMER, data);
|
||||||
|
|
||||||
irqflags = __get_PRIMASK();
|
|
||||||
__disable_irq();
|
|
||||||
__DMB();
|
|
||||||
|
|
||||||
udi_hid_exk_report.desc.report_id = REPORT_ID_CONSUMER;
|
|
||||||
udi_hid_exk_report.desc.report_data = data;
|
|
||||||
udi_hid_exk_b_report_valid = 1;
|
|
||||||
udi_hid_exk_send_report();
|
|
||||||
|
|
||||||
__DMB();
|
|
||||||
__set_PRIMASK(irqflags);
|
|
||||||
#endif // EXTRAKEY_ENABLE
|
#endif // EXTRAKEY_ENABLE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -98,30 +98,36 @@ UDC_DESC_STORAGE udi_hid_kbd_report_desc_t udi_hid_kbd_report_desc = {{
|
|||||||
0x05, 0x01, // Usage Page (Generic Desktop)
|
0x05, 0x01, // Usage Page (Generic Desktop)
|
||||||
0x09, 0x06, // Usage (Keyboard)
|
0x09, 0x06, // Usage (Keyboard)
|
||||||
0xA1, 0x01, // Collection (Application)
|
0xA1, 0x01, // Collection (Application)
|
||||||
|
// Modifiers (8 bits)
|
||||||
0x05, 0x07, // Usage Page (Keyboard)
|
0x05, 0x07, // Usage Page (Keyboard)
|
||||||
0x19, 0xE0, // Usage Minimum (224)
|
0x19, 0xE0, // Usage Minimum (Keyboard Left Control)
|
||||||
0x29, 0xE7, // Usage Maximum (231)
|
0x29, 0xE7, // Usage Maximum (Keyboard Right GUI)
|
||||||
0x15, 0x00, // Logical Minimum (0)
|
0x15, 0x00, // Logical Minimum (0)
|
||||||
0x25, 0x01, // Logical Maximum (1)
|
0x25, 0x01, // Logical Maximum (1)
|
||||||
0x75, 0x01, // Report Size (1)
|
|
||||||
0x95, 0x08, // Report Count (8)
|
0x95, 0x08, // Report Count (8)
|
||||||
|
0x75, 0x01, // Report Size (1)
|
||||||
0x81, 0x02, // Input (Data, Variable, Absolute)
|
0x81, 0x02, // Input (Data, Variable, Absolute)
|
||||||
|
// Reserved (1 byte)
|
||||||
0x81, 0x01, // Input (Constant)
|
0x81, 0x01, // Input (Constant)
|
||||||
|
// Keycodes (6 bytes)
|
||||||
0x19, 0x00, // Usage Minimum (0)
|
0x19, 0x00, // Usage Minimum (0)
|
||||||
0x29, 0xFF, // Usage Maximum (255)
|
0x29, 0xFF, // Usage Maximum (255)
|
||||||
0x15, 0x00, // Logical Minimum (0)
|
0x15, 0x00, // Logical Minimum (0)
|
||||||
0x25, 0xFF, // Logical Maximum (255)
|
0x25, 0xFF, // Logical Maximum (255)
|
||||||
0x75, 0x08, // Report Size (8)
|
|
||||||
0x95, 0x06, // Report Count (6)
|
0x95, 0x06, // Report Count (6)
|
||||||
0x81, 0x00, // Input (Data, Array)
|
0x75, 0x08, // Report Size (8)
|
||||||
|
0x81, 0x00, // Input (Data, Array, Absolute)
|
||||||
|
|
||||||
|
// Status LEDs (5 bits)
|
||||||
0x05, 0x08, // Usage Page (LED)
|
0x05, 0x08, // Usage Page (LED)
|
||||||
0x19, 0x01, // Usage Minimum (1)
|
0x19, 0x01, // Usage Minimum (Num Lock)
|
||||||
0x29, 0x05, // Usage Maximum (5)
|
0x29, 0x05, // Usage Maximum (Kana)
|
||||||
0x15, 0x00, // Logical Minimum (0)
|
0x15, 0x00, // Logical Minimum (0)
|
||||||
0x25, 0x01, // Logical Maximum (1)
|
0x25, 0x01, // Logical Maximum (1)
|
||||||
0x75, 0x01, // Report Size (1)
|
|
||||||
0x95, 0x05, // Report Count (5)
|
0x95, 0x05, // Report Count (5)
|
||||||
|
0x75, 0x01, // Report Size (1)
|
||||||
0x91, 0x02, // Output (Data, Variable, Absolute)
|
0x91, 0x02, // Output (Data, Variable, Absolute)
|
||||||
|
// LED padding (3 bits)
|
||||||
0x95, 0x03, // Report Count (3)
|
0x95, 0x03, // Report Count (3)
|
||||||
0x91, 0x01, // Output (Constant)
|
0x91, 0x01, // Output (Constant)
|
||||||
0xC0 // End Collection
|
0xC0 // End Collection
|
||||||
@@ -231,43 +237,41 @@ static uint8_t udi_hid_nkro_report_trans[UDI_HID_NKRO_REPORT_SIZE];
|
|||||||
|
|
||||||
COMPILER_WORD_ALIGNED
|
COMPILER_WORD_ALIGNED
|
||||||
UDC_DESC_STORAGE udi_hid_nkro_report_desc_t udi_hid_nkro_report_desc = {{
|
UDC_DESC_STORAGE udi_hid_nkro_report_desc_t udi_hid_nkro_report_desc = {{
|
||||||
0x05, 0x01, // Usage Page (Generic Desktop),
|
0x05, 0x01, // Usage Page (Generic Desktop)
|
||||||
0x09, 0x06, // Usage (Keyboard),
|
0x09, 0x06, // Usage (Keyboard)
|
||||||
0xA1, 0x01, // Collection (Application) - Keyboard,
|
0xA1, 0x01, // Collection (Application)
|
||||||
|
|
||||||
// Mods
|
// Modifiers (8 bits)
|
||||||
0x75, 0x01, // Report Size (1),
|
0x05, 0x07, // Usage Page (Keyboard/Keypad)
|
||||||
0x95, 0x08, // Report Count (8),
|
0x19, 0xE0, // Usage Minimum (Keyboard Left Control)
|
||||||
0x15, 0x00, // Logical Minimum (0),
|
0x29, 0xE7, // Usage Maximum (Keyboard Right GUI)
|
||||||
0x25, 0x01, // Logical Maximum (1),
|
0x15, 0x00, // Logical Minimum (0)
|
||||||
0x05, 0x07, // Usage Page (Key Codes),
|
0x25, 0x01, // Logical Maximum (1)
|
||||||
0x19, 0xE0, // Usage Minimum (224),
|
0x95, 0x08, // Report Count (8)
|
||||||
0x29, 0xE7, // Usage Maximum (231),
|
0x75, 0x01, // Report Size (1)
|
||||||
0x81, 0x02, // Input (Data, Variable, Absolute),
|
0x81, 0x02, // Input (Data, Variable, Absolute)
|
||||||
|
// Keycodes
|
||||||
|
0x05, 0x07, // Usage Page (Keyboard/Keypad)
|
||||||
|
0x19, 0x00, // Usage Minimum (0)
|
||||||
|
0x29, 0xF7, // Usage Maximum (247)
|
||||||
|
0x15, 0x00, // Logical Minimum (0)
|
||||||
|
0x25, 0x01, // Logical Maximum (1)
|
||||||
|
0x95, 0xF8, // Report Count (248)
|
||||||
|
0x75, 0x01, // Report Size (1)
|
||||||
|
0x81, 0x02, // Input (Data, Variable, Absolute, Bitfield)
|
||||||
|
|
||||||
// LED Report
|
// Status LEDs (5 bits)
|
||||||
0x75, 0x01, // Report Size (1),
|
0x05, 0x08, // Usage Page (LED)
|
||||||
0x95, 0x05, // Report Count (5),
|
0x19, 0x01, // Usage Minimum (Num Lock)
|
||||||
0x05, 0x08, // Usage Page (LEDs),
|
0x29, 0x05, // Usage Maximum (Kana)
|
||||||
0x19, 0x01, // Usage Minimum (1),
|
0x95, 0x05, // Report Count (5)
|
||||||
0x29, 0x05, // Usage Maximum (5),
|
0x75, 0x01, // Report Size (1)
|
||||||
0x91, 0x02, // Output (Data, Variable, Absolute),
|
0x91, 0x02, // Output (Data, Variable, Absolute)
|
||||||
|
// LED padding (3 bits)
|
||||||
// LED Report Padding
|
0x95, 0x01, // Report Count (1)
|
||||||
0x75, 0x03, // Report Size (3),
|
0x75, 0x03, // Report Size (3)
|
||||||
0x95, 0x01, // Report Count (1),
|
0x91, 0x03, // Output (Constant)
|
||||||
0x91, 0x03, // Output (Constant),
|
0xC0 // End Collection
|
||||||
|
|
||||||
// Main keys
|
|
||||||
0x75, 0x01, // Report Size (1),
|
|
||||||
0x95, 0xF8, // Report Count (248),
|
|
||||||
0x15, 0x00, // Logical Minimum (0),
|
|
||||||
0x25, 0x01, // Logical Maximum (1),
|
|
||||||
0x05, 0x07, // Usage Page (Key Codes),
|
|
||||||
0x19, 0x00, // Usage Minimum (0),
|
|
||||||
0x29, 0xF7, // Usage Maximum (247),
|
|
||||||
0x81, 0x02, // Input (Data, Variable, Absolute, Bitfield),
|
|
||||||
0xc0, // End Collection - Keyboard
|
|
||||||
}};
|
}};
|
||||||
|
|
||||||
static bool udi_hid_nkro_setreport(void);
|
static bool udi_hid_nkro_setreport(void);
|
||||||
@@ -373,35 +377,39 @@ static uint8_t udi_hid_exk_report_trans[UDI_HID_EXK_REPORT_SIZE];
|
|||||||
|
|
||||||
COMPILER_WORD_ALIGNED
|
COMPILER_WORD_ALIGNED
|
||||||
UDC_DESC_STORAGE udi_hid_exk_report_desc_t udi_hid_exk_report_desc = {{
|
UDC_DESC_STORAGE udi_hid_exk_report_desc_t udi_hid_exk_report_desc = {{
|
||||||
// System Control Collection (8 bits)
|
0x05, 0x01, // Usage Page (Generic Desktop)
|
||||||
|
0x09, 0x80, // Usage (System Control)
|
||||||
|
0xA1, 0x01, // Collection (Application)
|
||||||
|
0x85, REPORT_ID_SYSTEM, // Report ID
|
||||||
|
0x1A, 0x81,
|
||||||
|
0x00, // Usage Minimum (81) (System Power Down)
|
||||||
|
0x2A, 0x83,
|
||||||
|
0x00, // Usage Maximum (83) (System Wake Up)
|
||||||
|
0x16, 0x01,
|
||||||
|
0x00, // Logical Minimum (1)
|
||||||
|
0x26, 0x03,
|
||||||
|
0x00, // Logical Maximum (3)
|
||||||
|
0x95, 0x01, // Report Count (1)
|
||||||
|
0x75, 0x10, // Report Size (16)
|
||||||
|
0x81, 0x00, // Input (Data, Array, Absolute)
|
||||||
|
0xC0, // End Collection
|
||||||
|
|
||||||
0x05, 0x01, // Usage Page (Generic Desktop),
|
0x05, 0x0C, // Usage Page (Consumer)
|
||||||
0x09, 0x80, // Usage (System Control),
|
0x09, 0x01, // Usage (Consumer Control)
|
||||||
0xA1, 0x01, // Collection (Application),
|
0xA1, 0x01, // Collection (Application)
|
||||||
0x85, REPORT_ID_SYSTEM, // Report ID (2) (System),
|
0x85, REPORT_ID_CONSUMER, // Report ID
|
||||||
0x16, 0x01, 0x00, // Logical Minimum (1),
|
0x1A, 0x01,
|
||||||
0x26, 0x03, 0x00, // Logical Maximum (3),
|
0x00, // Usage Minimum (Consumer Control)
|
||||||
0x1A, 0x81, 0x00, // Usage Minimum (81) (System Power Down),
|
0x2A, 0x9C,
|
||||||
0x2A, 0x83, 0x00, // Usage Maximum (83) (System Wake Up),
|
0x02, // Usage Maximum (AC Distribute Vertically)
|
||||||
0x75, 0x10, // Report Size (16),
|
0x16, 0x01,
|
||||||
0x95, 0x01, // Report Count (1),
|
0x00, // Logical Minimum
|
||||||
0x81, 0x00, // Input (Data, Array),
|
0x26, 0x9C,
|
||||||
0xC0, // End Collection - System Control
|
0x02, // Logical Maximum
|
||||||
|
0x95, 0x01, // Report Count (1)
|
||||||
// Consumer Control Collection - Media Keys (16 bits)
|
0x75, 0x10, // Report Size (16)
|
||||||
|
0x81, 0x00, // Input (Data, Array, Absolute)
|
||||||
0x05, 0x0C, // Usage Page (Consumer),
|
0xC0 // End Collection
|
||||||
0x09, 0x01, // Usage (Consumer Control),
|
|
||||||
0xA1, 0x01, // Collection (Application),
|
|
||||||
0x85, REPORT_ID_CONSUMER, // Report ID (3) (Consumer),
|
|
||||||
0x16, 0x01, 0x00, // Logical Minimum (1),
|
|
||||||
0x26, 0x9C, 0x02, // Logical Maximum (668),
|
|
||||||
0x1A, 0x01, 0x00, // Usage Minimum (1),
|
|
||||||
0x2A, 0x9C, 0x02, // Usage Maximum (668),
|
|
||||||
0x75, 0x10, // Report Size (16),
|
|
||||||
0x95, 0x01, // Report Count (1),
|
|
||||||
0x81, 0x00, // Input (Data, Array),
|
|
||||||
0xC0, // End Collection - Consumer Control
|
|
||||||
}};
|
}};
|
||||||
|
|
||||||
static bool udi_hid_exk_setreport(void);
|
static bool udi_hid_exk_setreport(void);
|
||||||
@@ -506,49 +514,53 @@ static uint8_t udi_hid_mou_report_trans[UDI_HID_MOU_REPORT_SIZE];
|
|||||||
|
|
||||||
COMPILER_WORD_ALIGNED
|
COMPILER_WORD_ALIGNED
|
||||||
UDC_DESC_STORAGE udi_hid_mou_report_desc_t udi_hid_mou_report_desc = {{
|
UDC_DESC_STORAGE udi_hid_mou_report_desc_t udi_hid_mou_report_desc = {{
|
||||||
0x05, 0x01, // Usage Page (Generic Desktop),
|
0x05, 0x01, // Usage Page (Generic Desktop)
|
||||||
0x09, 0x02, // Usage (Mouse),
|
0x09, 0x02, // Usage (Mouse)
|
||||||
0xA1, 0x01, // Collection (Application),
|
0xA1, 0x01, // Collection (Application)
|
||||||
0x09, 0x01, // Usage (Pointer),
|
0x09, 0x01, // Usage (Pointer)
|
||||||
0xA1, 0x00, // Collection (Physical),
|
0xA1, 0x00, // Collection (Physical)
|
||||||
0x05, 0x09, // Usage Page (Buttons),
|
// Buttons (5 bits)
|
||||||
0x19, 0x01, // Usage Minimum (01),
|
0x05, 0x09, // Usage Page (Button)
|
||||||
0x29, 0x05, // Usage Maximun (05),
|
0x19, 0x01, // Usage Minimum (Button 1)
|
||||||
0x15, 0x00, // Logical Minimum (0),
|
0x29, 0x05, // Usage Maximun (Button 5)
|
||||||
0x25, 0x01, // Logical Maximum (1),
|
0x15, 0x00, // Logical Minimum (0)
|
||||||
0x95, 0x05, // Report Count (5),
|
0x25, 0x01, // Logical Maximum (1)
|
||||||
0x75, 0x01, // Report Size (1),
|
0x95, 0x05, // Report Count (5)
|
||||||
0x81, 0x02, // Input (Data, Variable, Absolute), ;5 button bits
|
0x75, 0x01, // Report Size (1)
|
||||||
0x95, 0x01, // Report Count (1),
|
0x81, 0x02, // Input (Data, Variable, Absolute)
|
||||||
0x75, 0x03, // Report Size (3),
|
// Button padding (3 bits)
|
||||||
0x81, 0x01, // Input (Constant), ;3 bit padding,
|
0x95, 0x01, // Report Count (1)
|
||||||
|
0x75, 0x03, // Report Size (3)
|
||||||
|
0x81, 0x01, // Input (Constant)
|
||||||
|
|
||||||
0x05, 0x01, // Usage Page (Generic Desktop),
|
// X/Y position (2 bytes)
|
||||||
0x09, 0x30, // Usage (X),
|
0x05, 0x01, // Usage Page (Generic Desktop)
|
||||||
0x09, 0x31, // Usage (Y),
|
0x09, 0x30, // Usage (X)
|
||||||
0x15, 0x81, // Logical Minimum (-127),
|
0x09, 0x31, // Usage (Y)
|
||||||
0x25, 0x7F, // Logical Maximum (127),
|
0x15, 0x81, // Logical Minimum (-127)
|
||||||
0x95, 0x02, // Report Count (2),
|
0x25, 0x7F, // Logical Maximum (127)
|
||||||
0x75, 0x08, // Report Size (8),
|
0x95, 0x02, // Report Count (2)
|
||||||
0x81, 0x06, // Input (Data, Variable, Relative), ;2 position bytes (X & Y),
|
0x75, 0x08, // Report Size (8)
|
||||||
|
0x81, 0x06, // Input (Data, Variable, Relative)
|
||||||
|
|
||||||
0x09, 0x38, // Usage (Wheel),
|
// Vertical wheel (1 byte)
|
||||||
0x15, 0x81, // Logical Minimum (-127),
|
0x09, 0x38, // Usage (Wheel)
|
||||||
0x25, 0x7F, // Logical Maximum (127),
|
0x15, 0x81, // Logical Minimum (-127)
|
||||||
0x95, 0x01, // Report Count (1),
|
0x25, 0x7F, // Logical Maximum (127)
|
||||||
0x75, 0x08, // Report Size (8),
|
0x95, 0x01, // Report Count (1)
|
||||||
0x81, 0x06, // Input (Data, Variable, Relative),
|
0x75, 0x08, // Report Size (8)
|
||||||
|
0x81, 0x06, // Input (Data, Variable, Relative)
|
||||||
|
|
||||||
0x05, 0x0C, // Usage Page (Consumer),
|
// Horizontal wheel (1 byte)
|
||||||
0x0A, 0x38, 0x02, // Usage (AC Pan (Horizontal wheel)),
|
0x05, 0x0C, // Usage Page (Consumer)
|
||||||
0x15, 0x81, // Logical Minimum (-127),
|
0x0A, 0x38, 0x02, // Usage (AC Pan)
|
||||||
0x25, 0x7F, // Logical Maximum (127),
|
0x15, 0x81, // Logical Minimum (-127)
|
||||||
0x95, 0x01, // Report Count (1),
|
0x25, 0x7F, // Logical Maximum (127)
|
||||||
0x75, 0x08, // Report Size (8),
|
0x95, 0x01, // Report Count (1)
|
||||||
0x81, 0x06, // Input (Data, Variable, Relative),
|
0x75, 0x08, // Report Size (8)
|
||||||
|
0x81, 0x06, // Input (Data, Variable, Relative)
|
||||||
0xC0, // End Collection,
|
0xC0, // End Collection
|
||||||
0xC0, // End Collection
|
0xC0 // End Collection
|
||||||
}};
|
}};
|
||||||
|
|
||||||
static void udi_hid_mou_report_sent(udd_ep_status_t status, iram_size_t nb_sent, udd_ep_id_t ep);
|
static void udi_hid_mou_report_sent(udd_ep_status_t status, iram_size_t nb_sent, udd_ep_id_t ep);
|
||||||
@@ -636,20 +648,21 @@ static uint8_t udi_hid_raw_report_trans[UDI_HID_RAW_REPORT_SIZE];
|
|||||||
|
|
||||||
COMPILER_WORD_ALIGNED
|
COMPILER_WORD_ALIGNED
|
||||||
UDC_DESC_STORAGE udi_hid_raw_report_desc_t udi_hid_raw_report_desc = {{
|
UDC_DESC_STORAGE udi_hid_raw_report_desc_t udi_hid_raw_report_desc = {{
|
||||||
0x06, // Usage Page (Vendor Defined)
|
0x06, 0x60, 0xFF, // Usage Page (Vendor Defined)
|
||||||
0xFF, 0xFF,
|
0x09, 0x61, // Usage (Vendor Defined)
|
||||||
0x0A, // Usage (Mouse)
|
0xA1, 0x01, // Collection (Application)
|
||||||
0xFF, 0xFF, 0xA1, 0x01, // Collection (Application)
|
0x75, 0x08, // Report Size (8)
|
||||||
0x75, 0x08, // Report Size (8)
|
0x15, 0x00, // Logical Minimum (0)
|
||||||
0x15, 0x00, // Logical Minimum (0)
|
0x25, 0xFF, // Logical Maximum (255)
|
||||||
0x25, 0xFF, // Logical Maximum (255)
|
// Data to host
|
||||||
0x95, 0x40, // Report Count
|
0x09, 0x62, // Usage (Vendor Defined)
|
||||||
0x09, 0x01, // Usage (Input)
|
0x95, RAW_EPSIZE, // Report Count
|
||||||
0x81, 0x02, // Input (Data
|
0x81, 0x02, // Input (Data, Variable, Absolute)
|
||||||
0x95, 0x40, // Report Count
|
// Data from host
|
||||||
0x09, 0x02, // Usage (Output)
|
0x09, 0x63, // Usage (Vendor Defined)
|
||||||
0x91, 0x02, // Output (Data
|
0x95, RAW_EPSIZE, // Report Count
|
||||||
0xC0, // End Collection - Consumer Control
|
0x91, 0x02, // Output (Data, Variable, Absolute)
|
||||||
|
0xC0 // End Collection
|
||||||
}};
|
}};
|
||||||
|
|
||||||
static bool udi_hid_raw_setreport(void);
|
static bool udi_hid_raw_setreport(void);
|
||||||
@@ -753,22 +766,24 @@ static uint8_t udi_hid_con_report_trans[UDI_HID_CON_REPORT_SIZE];
|
|||||||
|
|
||||||
COMPILER_WORD_ALIGNED
|
COMPILER_WORD_ALIGNED
|
||||||
UDC_DESC_STORAGE udi_hid_con_report_desc_t udi_hid_con_report_desc = {{
|
UDC_DESC_STORAGE udi_hid_con_report_desc_t udi_hid_con_report_desc = {{
|
||||||
0x06, 0x31, 0xFF, // Vendor Page (PJRC Teensy compatible)
|
0x06, 0x31, 0xFF, // Usage Page (Vendor Defined - PJRC Teensy compatible)
|
||||||
0x09, 0x74, // Vendor Usage (PJRC Teensy compatible)
|
0x09, 0x74, // Usage (Vendor Defined - PJRC Teensy compatible)
|
||||||
0xA1, 0x01, // Collection (Application)
|
0xA1, 0x01, // Collection (Application)
|
||||||
0x09, 0x75, // Usage (Vendor)
|
// Data to host
|
||||||
0x15, 0x00, // Logical Minimum (0x00)
|
0x09, 0x75, // Usage (Vendor Defined)
|
||||||
0x26, 0xFF, 0x00, // Logical Maximum (0x00FF)
|
0x15, 0x00, // Logical Minimum (0x00)
|
||||||
0x95, CONSOLE_EPSIZE, // Report Count
|
0x26, 0xFF, 0x00, // Logical Maximum (0x00FF)
|
||||||
0x75, 0x08, // Report Size (8)
|
0x95, CONSOLE_EPSIZE, // Report Count
|
||||||
0x81, 0x02, // Input (Data)
|
0x75, 0x08, // Report Size (8)
|
||||||
0x09, 0x76, // Usage (Vendor)
|
0x81, 0x02, // Input (Data, Variable, Absolute)
|
||||||
0x15, 0x00, // Logical Minimum (0x00)
|
// Data from host
|
||||||
0x26, 0xFF, 0x00, // Logical Maximum (0x00FF)
|
0x09, 0x76, // Usage (Vendor Defined)
|
||||||
0x95, CONSOLE_EPSIZE, // Report Count
|
0x15, 0x00, // Logical Minimum (0x00)
|
||||||
0x75, 0x08, // Report Size (8)
|
0x26, 0xFF, 0x00, // Logical Maximum (0x00FF)
|
||||||
0x91, 0x02, // Output (Data)
|
0x95, CONSOLE_EPSIZE, // Report Count
|
||||||
0xC0, // End Collection
|
0x75, 0x08, // Report Size (8)
|
||||||
|
0x91, 0x02, // Output (Data)
|
||||||
|
0xC0 // End Collection
|
||||||
}};
|
}};
|
||||||
|
|
||||||
static bool udi_hid_con_setreport(void);
|
static bool udi_hid_con_setreport(void);
|
||||||
|
|||||||
Loaded 100 of 131 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user