@ -1,16 +1,212 @@ | |||||
{ | { | ||||
"keyboard_name": "KC60", | |||||
"url": "", | |||||
"maintainer": "qmk", | |||||
"width": 15, | |||||
"height": 5, | |||||
"layouts": { | |||||
"LAYOUT": { | |||||
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":2, "w":1.25}, {"label":"Shift", "x":0, "y":3, "w":1.25}, {"x":1.25, "y":3}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":1.75}, {"x":14, "y":3}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":5}, {"x":8.75, "y":4, "w":1.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] | |||||
}, | |||||
"LAYOUT_60_ansi": { | |||||
"layout": [{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, {"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.75}, {"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6.25}, {"label":"Alt", "x":10, "y":4, "w":1.25}, {"label":"Win", "x":11.25, "y":4, "w":1.25}, {"label":"Menu", "x":12.5, "y":4, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}] | |||||
} | |||||
} | |||||
"keyboard_name": "KC60", | |||||
"url": "", | |||||
"maintainer": "qmk", | |||||
"width": 15, | |||||
"height": 5, | |||||
"layouts": { | |||||
"LAYOUT_all": { | |||||
"layout": [ | |||||
{"label":"Esc", "x":0, "y":0}, | |||||
{"label":"1", "x":1, "y":0}, | |||||
{"label":"2", "x":2, "y":0}, | |||||
{"label":"3", "x":3, "y":0}, | |||||
{"label":"4", "x":4, "y":0}, | |||||
{"label":"5", "x":5, "y":0}, | |||||
{"label":"6", "x":6, "y":0}, | |||||
{"label":"7", "x":7, "y":0}, | |||||
{"label":"8", "x":8, "y":0}, | |||||
{"label":"9", "x":9, "y":0}, | |||||
{"label":"0", "x":10, "y":0}, | |||||
{"label":"-", "x":11, "y":0}, | |||||
{"label":"=", "x":12, "y":0}, | |||||
{"label":"Backspace", "x":13, "y":0}, | |||||
{"label":"`", "x":14, "y":0}, | |||||
{"label":"Tab", "x":0, "y":1, "w":1.5}, | |||||
{"label":"Q", "x":1.5, "y":1}, | |||||
{"label":"W", "x":2.5, "y":1}, | |||||
{"label":"E", "x":3.5, "y":1}, | |||||
{"label":"R", "x":4.5, "y":1}, | |||||
{"label":"T", "x":5.5, "y":1}, | |||||
{"label":"Y", "x":6.5, "y":1}, | |||||
{"label":"U", "x":7.5, "y":1}, | |||||
{"label":"I", "x":8.5, "y":1}, | |||||
{"label":"O", "x":9.5, "y":1}, | |||||
{"label":"P", "x":10.5, "y":1}, | |||||
{"label":"[", "x":11.5, "y":1}, | |||||
{"label":"]", "x":12.5, "y":1}, | |||||
{"label":"\\", "x":13.5, "y":1, "w":1.5}, | |||||
{"label":"CapsLock", "x":0, "y":2, "w":1.75}, | |||||
{"label":"A", "x":1.75, "y":2}, | |||||
{"label":"S", "x":2.75, "y":2}, | |||||
{"label":"D", "x":3.75, "y":2}, | |||||
{"label":"F", "x":4.75, "y":2}, | |||||
{"label":"G", "x":5.75, "y":2}, | |||||
{"label":"H", "x":6.75, "y":2}, | |||||
{"label":"J", "x":7.75, "y":2}, | |||||
{"label":"K", "x":8.75, "y":2}, | |||||
{"label":"L", "x":9.75, "y":2}, | |||||
{"label":";", "x":10.75, "y":2}, | |||||
{"label":"'", "x":11.75, "y":2}, | |||||
{"label":"ISO#", "x":12.75, "y":2}, | |||||
{"label":"Enter", "x":13.75, "y":2, "w":1.25}, | |||||
{"label":"Shift", "x":0, "y":3, "w":1.25}, | |||||
{"label":"ISO\\", "x":1.25, "y":3}, | |||||
{"label":"Z", "x":2.25, "y":3}, | |||||
{"label":"X", "x":3.25, "y":3}, | |||||
{"label":"C", "x":4.25, "y":3}, | |||||
{"label":"V", "x":5.25, "y":3}, | |||||
{"label":"B", "x":6.25, "y":3}, | |||||
{"label":"N", "x":7.25, "y":3}, | |||||
{"label":"M", "x":8.25, "y":3}, | |||||
{"label":",", "x":9.25, "y":3}, | |||||
{"label":".", "x":10.25, "y":3}, | |||||
{"label":"/", "x":11.25, "y":3}, | |||||
{"label":"Shift", "x":12.25, "y":3, "w":1.75}, | |||||
{"label":"HHKBFn", "x":14, "y":3}, | |||||
{"label":"Ctrl", "x":0, "y":4, "w":1.25}, | |||||
{"label":"GUI", "x":1.25, "y":4, "w":1.25}, | |||||
{"label":"Alt", "x":2.5, "y":4, "w":1.25}, | |||||
{"label":"Space", "x":3.75, "y":4, "w":6.25}, | |||||
{"label":"Alt", "x":10, "y":4, "w":1.25}, | |||||
{"label":"GUI", "x":11.25, "y":4, "w":1.25}, | |||||
{"label":"Menu", "x":12.5, "y":4, "w":1.25}, | |||||
{"label":"Ctrl", "x":13.75, "y":4, "w":1.25} | |||||
] | |||||
}, | |||||
"LAYOUT": { | |||||
"layout": [ | |||||
{"label":"K00", "x":0, "y":0}, | |||||
{"label":"K01", "x":1, "y":0}, | |||||
{"label":"K02", "x":2, "y":0}, | |||||
{"label":"K03", "x":3, "y":0}, | |||||
{"label":"K04", "x":4, "y":0}, | |||||
{"label":"K05", "x":5, "y":0}, | |||||
{"label":"K06", "x":6, "y":0}, | |||||
{"label":"K07", "x":7, "y":0}, | |||||
{"label":"K08", "x":8, "y":0}, | |||||
{"label":"K09", "x":9, "y":0}, | |||||
{"label":"K0A", "x":10, "y":0}, | |||||
{"label":"K0B", "x":11, "y":0}, | |||||
{"label":"K0C", "x":12, "y":0}, | |||||
{"label":"K0D", "x":13, "y":0}, | |||||
{"label":"K10", "x":0, "y":1, "w":1.5}, | |||||
{"label":"K11", "x":1.5, "y":1}, | |||||
{"label":"K12", "x":2.5, "y":1}, | |||||
{"label":"K13", "x":3.5, "y":1}, | |||||
{"label":"K14", "x":4.5, "y":1}, | |||||
{"label":"K15", "x":5.5, "y":1}, | |||||
{"label":"K16", "x":6.5, "y":1}, | |||||
{"label":"K17", "x":7.5, "y":1}, | |||||
{"label":"K18", "x":8.5, "y":1}, | |||||
{"label":"K19", "x":9.5, "y":1}, | |||||
{"label":"K1A", "x":10.5, "y":1}, | |||||
{"label":"K1B", "x":11.5, "y":1}, | |||||
{"label":"K1C", "x":12.5, "y":1}, | |||||
{"label":"K1D", "x":13.5, "y":1, "w":1.5}, | |||||
{"label":"K20", "x":0, "y":2, "w":1.75}, | |||||
{"label":"K21", "x":1.75, "y":2}, | |||||
{"label":"K22", "x":2.75, "y":2}, | |||||
{"label":"K23", "x":3.75, "y":2}, | |||||
{"label":"K24", "x":4.75, "y":2}, | |||||
{"label":"K25", "x":5.75, "y":2}, | |||||
{"label":"K26", "x":6.75, "y":2}, | |||||
{"label":"K27", "x":7.75, "y":2}, | |||||
{"label":"K28", "x":8.75, "y":2}, | |||||
{"label":"K29", "x":9.75, "y":2}, | |||||
{"label":"K2A", "x":10.75, "y":2}, | |||||
{"label":"K2B", "x":11.75, "y":2}, | |||||
{"label":"K2C", "x":12.75, "y":2}, | |||||
{"label":"K2D", "x":13.75, "y":2, "w":1.25}, | |||||
{"label":"K30", "x":0, "y":3, "w":1.25}, | |||||
{"label":"K31", "x":1.25, "y":3}, | |||||
{"label":"K32", "x":2.25, "y":3}, | |||||
{"label":"K33", "x":3.25, "y":3}, | |||||
{"label":"K34", "x":4.25, "y":3}, | |||||
{"label":"K35", "x":5.25, "y":3}, | |||||
{"label":"K36", "x":6.25, "y":3}, | |||||
{"label":"K37", "x":7.25, "y":3}, | |||||
{"label":"K38", "x":8.25, "y":3}, | |||||
{"label":"K39", "x":9.25, "y":3}, | |||||
{"label":"K3A", "x":10.25, "y":3}, | |||||
{"label":"K3B", "x":11.25, "y":3}, | |||||
{"label":"K3C", "x":12.25, "y":3, "w":1.75}, | |||||
{"label":"K3D", "x":14, "y":3}, | |||||
{"label":"K40", "x":0, "y":4, "w":1.25}, | |||||
{"label":"K41", "x":1.25, "y":4, "w":1.25}, | |||||
{"label":"K42", "x":2.5, "y":4, "w":1.25}, | |||||
{"label":"K45", "x":3.75, "y":4, "w":6.25}, | |||||
{"label":"K49", "x":14, "y":0}, | |||||
{"label":"K4A", "x":10, "y":4, "w":1.25}, | |||||
{"label":"K4B", "x":11.25, "y":4, "w":1.25}, | |||||
{"label":"K4C", "x":12.5, "y":4, "w":1.25}, | |||||
{"label":"K4D", "x":13.75, "y":4, "w":1.25} | |||||
] | |||||
}, | |||||
"LAYOUT_60_ansi": { | |||||
"layout": [ | |||||
{"label":"~", "x":0, "y":0}, | |||||
{"label":"1", "x":1, "y":0}, | |||||
{"label":"2", "x":2, "y":0}, | |||||
{"label":"3", "x":3, "y":0}, | |||||
{"label":"4", "x":4, "y":0}, | |||||
{"label":"5", "x":5, "y":0}, | |||||
{"label":"6", "x":6, "y":0}, | |||||
{"label":"7", "x":7, "y":0}, | |||||
{"label":"8", "x":8, "y":0}, | |||||
{"label":"9", "x":9, "y":0}, | |||||
{"label":"0", "x":10, "y":0}, | |||||
{"label":"-", "x":11, "y":0}, | |||||
{"label":"=", "x":12, "y":0}, | |||||
{"label":"Backspace", "x":13, "y":0, "w":2}, | |||||
{"label":"Tab", "x":0, "y":1, "w":1.5}, | |||||
{"label":"Q", "x":1.5, "y":1}, | |||||
{"label":"W", "x":2.5, "y":1}, | |||||
{"label":"E", "x":3.5, "y":1}, | |||||
{"label":"R", "x":4.5, "y":1}, | |||||
{"label":"T", "x":5.5, "y":1}, | |||||
{"label":"Y", "x":6.5, "y":1}, | |||||
{"label":"U", "x":7.5, "y":1}, | |||||
{"label":"I", "x":8.5, "y":1}, | |||||
{"label":"O", "x":9.5, "y":1}, | |||||
{"label":"P", "x":10.5, "y":1}, | |||||
{"label":"[", "x":11.5, "y":1}, | |||||
{"label":"]", "x":12.5, "y":1}, | |||||
{"label":"\\", "x":13.5, "y":1, "w":1.5}, | |||||
{"label":"CapsLock", "x":0, "y":2, "w":1.75}, | |||||
{"label":"A", "x":1.75, "y":2}, | |||||
{"label":"S", "x":2.75, "y":2}, | |||||
{"label":"D", "x":3.75, "y":2}, | |||||
{"label":"F", "x":4.75, "y":2}, | |||||
{"label":"G", "x":5.75, "y":2}, | |||||
{"label":"H", "x":6.75, "y":2}, | |||||
{"label":"J", "x":7.75, "y":2}, | |||||
{"label":"K", "x":8.75, "y":2}, | |||||
{"label":"L", "x":9.75, "y":2}, | |||||
{"label":";", "x":10.75, "y":2}, | |||||
{"label":"'", "x":11.75, "y":2}, | |||||
{"label":"Enter", "x":12.75, "y":2, "w":2.25}, | |||||
{"label":"Shift", "x":0, "y":3, "w":2.25}, | |||||
{"label":"Z", "x":2.25, "y":3}, | |||||
{"label":"X", "x":3.25, "y":3}, | |||||
{"label":"C", "x":4.25, "y":3}, | |||||
{"label":"V", "x":5.25, "y":3}, | |||||
{"label":"B", "x":6.25, "y":3}, | |||||
{"label":"N", "x":7.25, "y":3}, | |||||
{"label":"M", "x":8.25, "y":3}, | |||||
{"label":",", "x":9.25, "y":3}, | |||||
{"label":".", "x":10.25, "y":3}, | |||||
{"label":"/", "x":11.25, "y":3}, | |||||
{"label":"Shift", "x":12.25, "y":3, "w":2.75}, | |||||
{"label":"Ctrl", "x":0, "y":4, "w":1.25}, | |||||
{"label":"Win", "x":1.25, "y":4, "w":1.25}, | |||||
{"label":"Alt", "x":2.5, "y":4, "w":1.25}, | |||||
{"label":"Space", "x":3.75, "y":4, "w":6.25}, | |||||
{"label":"Alt", "x":10, "y":4, "w":1.25}, | |||||
{"label":"Win", "x":11.25, "y":4, "w":1.25}, | |||||
{"label":"Menu", "x":12.5, "y":4, "w":1.25}, | |||||
{"label":"Ctrl", "x":13.75, "y":4, "w":1.25} | |||||
] | |||||
} | |||||
} | |||||
} | } |
@ -1,12 +1,18 @@ | |||||
#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( /* Basic QWERTY */ | |||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ | |||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ | |||||
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_NO, KC_ENT, \ | |||||
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, KC_RSFT, \ | |||||
KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_NO, KC_RGUI, KC_RALT, KC_RCTL, RESET \ | |||||
), | |||||
[0] = LAYOUT_all( | |||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, | |||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, LT(1,KC_APP), | |||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, LT(1,KC_APP), KC_RCTL | |||||
), | |||||
[1] = LAYOUT_all( | |||||
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, XXXXXXX, XXXXXXX, | |||||
XXXXXXX, XXXXXXX, KC_UP, XXXXXXX, XXXXXXX, XXXXXXX, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS, | |||||
XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, XXXXXXX, XXXXXXX, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, | |||||
_______, XXXXXXX, XXXXXXX, BL_DEC, BL_TOGG, BL_INC, BL_BRTG, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, _______, _______, | |||||
_______, _______, _______, XXXXXXX, _______, _______, _______, _______ | |||||
), | |||||
}; | }; |
@ -0,0 +1,5 @@ | |||||
# The default keymap for KC60 | |||||
![keymap](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/keymaps/default/keymap.png) | |||||
Both `Fn` keys trigger `KC_APP` when tapped, and activate Layer 1 when held. |
@ -1,9 +1,4 @@ | |||||
#include "../../config.h" | |||||
#pragma once | |||||
/* WS2812B RGB Underglow LED */ | |||||
#define RGB_DI_PIN F5 // Based on wiring depicted in ws2812_wiring.jpg | |||||
#define RGBLIGHT_ANIMATIONS | |||||
#define RGBLED_NUM 16 // Number of LEDs. Change this to match your use case. | |||||
#define RGBLIGHT_HUE_STEP 8 | |||||
#define RGBLIGHT_SAT_STEP 8 | |||||
#define RGBLIGHT_VAL_STEP 8 | |||||
#undef RGBLED_NUM | |||||
#define RGBLED_NUM 16 // Number of LEDs. Change this to match your use case. |
@ -1,96 +1,18 @@ | |||||
#include QMK_KEYBOARD_H | #include QMK_KEYBOARD_H | ||||
// Used for SHIFT_ESC | |||||
#define MODS_CTRL_MASK (MOD_BIT(KC_LSHIFT)|MOD_BIT(KC_RSHIFT)) | |||||
// 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. | |||||
#define _BL 0 | |||||
#define _FL 1 | |||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
/* Keymap _BL: (Base Layer) Default Layer | |||||
* ,-----------------------------------------------------------. | |||||
* |Esc~| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|Backsp | | |||||
* |-----------------------------------------------------------| | |||||
* |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | | |||||
* |-----------------------------------------------------------| | |||||
* |CAPS | A| S| D| F| G| H| J| K| L| ;| '|Return | | |||||
* |-----------------------------------------------------------| | |||||
* |Shift | Z| X| C| V| B| N| M| ,| .| /|Shift | | |||||
* |-----------------------------------------------------------| | |||||
* |Ctrl|Gui |Alt | Space |Alt |Gui |FN |Ctrl | | |||||
* `-----------------------------------------------------------' | |||||
*/ | |||||
[_BL] = LAYOUT( | |||||
F(0), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, \ | |||||
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, \ | |||||
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_NO, KC_ENT, \ | |||||
KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_NO, KC_RSFT, \ | |||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_NO, KC_RALT,KC_RGUI, MO(_FL), KC_RCTL), | |||||
/* Keymap _FL: Function Layer | |||||
* ,-----------------------------------------------------------. | |||||
* |~ |F1 |F2 |F3 |F4 |F5 |F6 |F7 |F8 |F9 |F10|F11|F12| DEL | | |||||
* |-----------------------------------------------------------| | |||||
* | | |UP | | | | | | | | |BL-|BL+|BL | | |||||
* |-----------------------------------------------------------| | |||||
* | |LFT|DWN|RGT| | | | | | | | | | |||||
* |-----------------------------------------------------------| | |||||
* | |FN1|FN2|FN3|FN4|FN5|FN6|FN7|FN8| | | | | |||||
* |-----------------------------------------------------------| | |||||
* | | | | | | | |RSET| | |||||
* `-----------------------------------------------------------' | |||||
*/ | |||||
[_FL] = LAYOUT( | |||||
#ifdef RGBLIGHT_ENABLE | |||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ | |||||
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \ | |||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ | |||||
KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, RESET), | |||||
#else | |||||
KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, \ | |||||
KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, BL_DEC, BL_INC, BL_TOGG, \ | |||||
KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \ | |||||
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, RESET), | |||||
#endif | |||||
[0] = LAYOUT_all( | |||||
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, | |||||
KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, LT(1,KC_APP), | |||||
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, LT(1,KC_APP), KC_RCTL | |||||
), | |||||
[1] = LAYOUT_all( | |||||
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, XXXXXXX, XXXXXXX, | |||||
XXXXXXX, RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS, | |||||
XXXXXXX, RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, XXXXXXX, XXXXXXX, XXXXXXX, | |||||
_______, XXXXXXX, XXXXXXX, BL_DEC, BL_TOGG, BL_INC, BL_BRTG, XXXXXXX, KC_MUTE, KC_VOLD, KC_VOLU, XXXXXXX, _______, _______, | |||||
_______, _______, _______, XXXXXXX, _______, _______, _______, _______ | |||||
), | |||||
}; | }; | ||||
enum function_id { | |||||
SHIFT_ESC, | |||||
}; | |||||
const uint16_t PROGMEM fn_actions[] = { | |||||
[0] = ACTION_FUNCTION(SHIFT_ESC), | |||||
}; | |||||
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { | |||||
static uint8_t shift_esc_shift_mask; | |||||
switch (id) { | |||||
case SHIFT_ESC: | |||||
shift_esc_shift_mask = get_mods()&MODS_CTRL_MASK; | |||||
if (record->event.pressed) { | |||||
if (shift_esc_shift_mask) { | |||||
add_key(KC_GRV); | |||||
send_keyboard_report(); | |||||
} else { | |||||
add_key(KC_ESC); | |||||
send_keyboard_report(); | |||||
} | |||||
} else { | |||||
if (shift_esc_shift_mask) { | |||||
del_key(KC_GRV); | |||||
send_keyboard_report(); | |||||
} else { | |||||
del_key(KC_ESC); | |||||
send_keyboard_report(); | |||||
} | |||||
} | |||||
break; | |||||
} | |||||
} |
@ -1,21 +0,0 @@ | |||||
KC60 with WS2812 RGB Underglow | |||||
====================== | |||||
![Image of KC60 with RGB Underglow](https://i.imgur.com/LpUkVqG.jpg) | |||||
## Quantum MK Firmware | |||||
For the full Quantum feature list, see [the parent readme.md](/readme.md). | |||||
## WS2812 Support | |||||
By default, it is now setup for 16 LEDs on the PF5 breakout pin. See [included image](https://i.imgur.com/TcKL2Sn.jpg) for wiring reference. | |||||
### Build | |||||
To build this keymap with WS2812 enabled, simply run `make KEYMAP=ws2812`. | |||||
### Reference Images | |||||
![Wiring Reference](https://i.imgur.com/TcKL2Sn.jpg) | |||||
![RGB Strip turned on](https://i.imgur.com/21POu4l.jpg) | |||||
![RGB Strip turned off](https://i.imgur.com/vAOLYNV.jpg) | |||||
### Additional Credits | |||||
Keymap based on work by [TerryMatthews](https://github.com/TerryMathews) for GH60 Satan. |
@ -1,22 +1,2 @@ | |||||
# Build Options | |||||
# change yes to no to disable | |||||
# | |||||
BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration | |||||
MOUSEKEY_ENABLE = yes # Mouse keys | |||||
EXTRAKEY_ENABLE = yes # Audio control and System control | |||||
CONSOLE_ENABLE = yes # Console for debug | |||||
COMMAND_ENABLE = yes # Commands for debug and configuration | |||||
KEYBOARD_LOCK_ENABLE = yes # Allow locking of keyboard via magic key | |||||
BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality | |||||
RGBLIGHT_ENABLE = yes # Enable WS2812 underglow RGB strip | |||||
MIDI_ENABLE = no # MIDI controls | |||||
UNICODE_ENABLE = no # Unicode | |||||
BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID | |||||
AUDIO_ENABLE = no # Audio output on port C6 | |||||
# 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 | |||||
COMMAND_ENABLE = no | |||||
RGBLIGHT_ENABLE = yes |
@ -0,0 +1,31 @@ | |||||
# Adding RGB Underglow to the KC60 | |||||
![Image of KC60 with RGB Underglow](https://i.imgur.com/LpUkVqGl.jpg) | |||||
The KC60 has breakout pins to which one may wire a strip of WS2812-compatible LEDs. | |||||
By default, the source is set up for 16 LEDs on the F5 breakout pin. See [included image](https://i.imgur.com/TcKL2Sn.jpg) for wiring reference. If you attach a different number of LEDs, configure your source for the correct number of LEDs by adding a `config.h` file alongside your `keymap.c` file, with the following contents: | |||||
```c | |||||
#pragma once | |||||
#undef RGBLED_NUM | |||||
#define RGBLED_NUM <number of leds> | |||||
``` | |||||
To enable RGB Underglow, simply add a `rules.mk` file containing `RGBLIGHT_ENABLE = yes` alongside your `keymap.c` file, and compile as normal: | |||||
```shell | |||||
make kc60:<keymap> | |||||
``` | |||||
The [ws2812 keymap](keymaps/ws2812/) may be copied and used as a starting point. | |||||
RGB Underglow is a fairly large feature, and your firmware may be too large to be flashed with it enabled. Adding `CONSOLE_ENABLE = no` or `COMMAND_ENABLE = no` to your `rules.mk` file will reduce the size of the firmware greatly, and if you don't use either feature, is a very low impact change. | |||||
## Reference Images | |||||
![Wiring Reference](https://i.imgur.com/TcKL2Sn.jpg) | |||||
![RGB Strip turned on](https://i.imgur.com/21POu4l.jpg) | |||||
![RGB Strip turned off](https://i.imgur.com/vAOLYNV.jpg) |
@ -1,35 +1,19 @@ | |||||
KC60 (version 2.0) keyboard firmware | |||||
====================== | |||||
# KC60 | |||||
## Quantum MK Firmware | |||||
For the full Quantum feature list, see [the parent readme.md](/readme.md). | |||||
![KC60](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/kc60/kc60.jpg) | |||||
## Building | |||||
Download or clone the whole firmware and navigate to the keyboards/kc60 folder. Once your dev env is setup, you'll be able to type `make` to generate your .hex - you can then use the Teensy Loader to program your .hex file. | |||||
A 60% PCB supporting in-switch LEDs, formerly available on AliExpress and (Mass)Drop. Supports ANSI, ISO, split Backspace, and both standard and Tsangan bottom row layouts. | |||||
Depending on which keymap you would like to use, you will have to compile slightly differently. | |||||
* Keyboard Maintainer: [The QMK Community](https://github.com/qmk) | |||||
* Hardware Supported: KC60 v1.6, v2.0; ATmega32U4 | |||||
* Hardware Availability: [Drop.com](https://drop.com/buy/kc60-mechanical-keyboard?mode=guest_open) (no longer available) | |||||
### Default | |||||
To build with the default keymap, simply run `make default`. | |||||
Make example for this keyboard (after setting up your build environment): | |||||
### Other Keymaps | |||||
Several version of keymap are available in advance but you are recommended to define your favorite layout yourself. To define your own keymap create file named `<name>.c` in the keymaps folder, and see keymap document (you can find in top readme.md) and existent keymap files. | |||||
make kc60:default | |||||
To build the firmware binary hex file with a keymap just do `make` with a keymap like this: | |||||
## RGB Underglow Support | |||||
``` | |||||
$ make [default|jack|<name>] | |||||
``` | |||||
To add RGB Underglow to the KC60, see [Adding RGB Underglow to the KC60](mod_rgb_underglow.md). | |||||
Keymaps follow the format **__\<name\>.c__** and are stored in the `keymaps` folder. | |||||
## WS2812 Support | |||||
Build with WS2812 Support by running `make ws2812`. | |||||
## Warning | |||||
For those who want to use 2x1U instead of classic backspace you need to use K0D and K49 like this: | |||||
* K0D represents the key at the right of =. | |||||
* K49 represents the last key of the row (is wired at the right of the space key on the PCB) | |||||
In kc60.h I've put several definitions' examples of possible layouts proposed by online editor (http://123.57.250.164:9128/). | |||||
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). |