QMK Configurator Support for KBD66 and RAMA M6-A (#2849)

* Added KBD66 Config

* Added RAMA M6-A Config

* Changed KEYMAP to LAYOUT for KBD66 and M6-A
This commit is contained in:
Eric 2018-04-30 22:45:38 +08:00 committed by Drashna Jaelre
parent 2054f20b69
commit bc89c4f104
13 changed files with 566 additions and 425 deletions

84
keyboards/kbd66/info.json Normal file
View File

@ -0,0 +1,84 @@
{
"keyboard_name": "kbd66",
"url": "",
"maintainer": "qmk",
"width": 16.5,
"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": "Bkspc", "x": 13, "y": 0 },
{ "label": "Bkspc", "x": 14, "y": 0 },
{ "x": 15.5, "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 },
{ "x": 15.5, "y": 1 },
{ "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 },
{ "label": "A", "x": 1.75, "y": 2 },
{ "label": "S", "x": 2.75, "y": 2 },
{ "label": "D", "x": 3.75, "y": 2 },
{ "label": "F", "x": 4.75, "y": 2 },
{ "label": "G", "x": 5.75, "y": 2 },
{ "label": "H", "x": 6.75, "y": 2 },
{ "label": "J", "x": 7.75, "y": 2 },
{ "label": "K", "x": 8.75, "y": 2 },
{ "label": "L", "x": 9.75, "y": 2 },
{ "label": ":", "x": 10.75, "y": 2 },
{ "label": "\"", "x": 11.75, "y": 2 },
{ "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.25 },
{ "label": "Fn", "x": 13.5, "y": 3 },
{ "label": "Up", "x": 14.5, "y": 3 },
{ "label": "Ctrl", "x": 0, "y": 4, "w": 1.5 },
{ "label": "Win", "x": 1.5, "y": 4, "w": 1.25 },
{ "label": "Alt", "x": 2.75, "y": 4, "w": 1.25 },
{ "x": 4, "y": 4, "w": 2.75 },
{ "x": 6.75, "y": 4, "w": 2.75 },
{ "label": "Alt", "x": 9.5, "y": 4, "w": 1.25 },
{ "label": "Win", "x": 10.75, "y": 4, "w": 1.25 },
{ "label": "Menu", "x": 12, "y": 4, "w": 1.5 },
{ "label": "Left", "x": 13.5, "y": 4 },
{ "label": "Down", "x": 14.5, "y": 4 },
{ "label": "Right", "x": 15.5, "y": 4 }
]
}
}
}

View File

@ -19,7 +19,7 @@
#include "quantum.h" #include "quantum.h"
// This a shortcut to help you visually see your layout. // This a shortcut to help you visually see your layout.
#define KEYMAP( \ #define LAYOUT( \
k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D,k0E, k0F, \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D,k0E, k0F, \
k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B, k1C, k1D, k1F, \
k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, \ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B, k2D, \

View File

@ -13,7 +13,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include "kbd66.h" #include QMK_KEYBOARD_H
#define _____ KC_TRNS #define _____ KC_TRNS
#define XXXXX KC_NO #define XXXXX KC_NO
@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Ctl |OS |Alt | Space |Alt | Fn |Ctl |LFT|DWN|RIG| * |Ctl |OS |Alt | Space |Alt | Fn |Ctl |LFT|DWN|RIG|
* `-------------------------------------------------------------------' * `-------------------------------------------------------------------'
*/ */
[_L0] = KEYMAP( [_L0] = 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, XXXXX, KC_BSPC, KC_INS, 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, XXXXX, 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_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,
@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | |PDn|SLk| * | | | | | | | | |PDn|SLk|
* `-------------------------------------------------------------------' * `-------------------------------------------------------------------'
*/ */
[_L1] = KEYMAP( [_L1] = 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_HOME, 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_HOME,
_____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_PSCR, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_PSCR, KC_VOLD, KC_VOLU, KC_MUTE, KC_END,
RESET, _____, _____, _____, _____, _____, _____, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, _____, _____, RESET, _____, _____, _____, _____, _____, _____, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, _____, _____,

View File

@ -13,7 +13,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include "kbd66.h" #include QMK_KEYBOARD_H
#define _____ KC_TRNS #define _____ KC_TRNS
#define XXXXX KC_NO #define XXXXX KC_NO
@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Ctl |OS |Alt | Space |Alt | Fn |Ctl |LFT|DWN|RIG| * |Ctl |OS |Alt | Space |Alt | Fn |Ctl |LFT|DWN|RIG|
* `-------------------------------------------------------------------' * `-------------------------------------------------------------------'
*/ */
[_L0] = KEYMAP( [_L0] = 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_GRV, KC_BSPC, KC_INS, 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_GRV, 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_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,
@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | |PDn|SLk| * | | | | | | | | |PDn|SLk|
* `-------------------------------------------------------------------' * `-------------------------------------------------------------------'
*/ */
[_L1] = KEYMAP( [_L1] = 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_HOME, 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_HOME,
_____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_PSCR, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_PSCR, KC_VOLD, KC_VOLU, KC_MUTE, KC_END,
RESET, _____, _____, _____, _____, _____, _____, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, _____, _____, RESET, _____, _____, _____, _____, _____, _____, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, _____, _____,

View File

@ -13,7 +13,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
#include "kbd66.h" #include QMK_KEYBOARD_H
#define _____ KC_TRNS #define _____ KC_TRNS
#define XXXXX KC_NO #define XXXXX KC_NO
@ -35,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* |Ctl |OS |Alt | Space |Alt | Fn |Ctl |LFT|DWN|RIG| * |Ctl |OS |Alt | Space |Alt | Fn |Ctl |LFT|DWN|RIG|
* `-------------------------------------------------------------------' * `-------------------------------------------------------------------'
*/ */
[_L0] = KEYMAP( [_L0] = 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_GRV, KC_BSPC, KC_INS, 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_GRV, 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_NUHS, 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_NUHS, KC_DEL,
KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_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,
@ -56,7 +56,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* | | | | | | | | |PDn|SLk| * | | | | | | | | |PDn|SLk|
* `-------------------------------------------------------------------' * `-------------------------------------------------------------------'
*/ */
[_L1] = KEYMAP( [_L1] = 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_HOME, 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_HOME,
_____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_PSCR, KC_VOLD, KC_VOLU, KC_MUTE, KC_END, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, KC_PSCR, KC_VOLD, KC_VOLU, KC_MUTE, KC_END,
RESET, _____, _____, _____, _____, _____, _____, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, _____, _____, RESET, _____, _____, _____, _____, _____, _____, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, _____, _____,

View File

@ -1,4 +1,4 @@
#include "kbd66.h" #include QMK_KEYBOARD_H
#define _MA 0 #define _MA 0
#define _GA 1 #define _GA 1
@ -14,7 +14,7 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Main Layer // Main Layer
[_MA] = KEYMAP( [_MA] = 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_MPLY, 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_MPLY,
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_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_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,
@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_LGUI, KC_LALT, SPACE, SPACE, KC_RALT, KC_RCTRL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT), KC_LCTL, KC_LGUI, KC_LALT, SPACE, SPACE, KC_RALT, KC_RCTRL, MO(_FL), KC_LEFT, KC_DOWN, KC_RGHT),
//Function Layer //Function Layer
[_FL] = KEYMAP( [_FL] = 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, TRNS, RESET, KC_PSCR, 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, TRNS, RESET, KC_PSCR,
TRNS, ______, ______, ______, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, ______, TRNS, ______, ______, ______, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, ______,
TRNS, ______, ______, ______, TRNS, TG(_GA), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, ______, ______, ______, TRNS, TG(_GA), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
@ -30,7 +30,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, ______, KC_PGDN, ______), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, ______, KC_PGDN, ______),
//Arrow keys layer (space bar) //Arrow keys layer (space bar)
[_AR] = KEYMAP( [_AR] = 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, TRNS, TRNS, TRNS, 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, TRNS, TRNS, TRNS,
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
@ -38,7 +38,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS), TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS),
//Game layer (fn + g) //Game layer (fn + g)
[_GA] = KEYMAP( [_GA] = LAYOUT(
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,
TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS, TRNS,

View File

@ -0,0 +1,19 @@
{
"keyboard_name": "m6-a",
"url": "",
"maintainer": "qmk",
"width": 3,
"height": 2,
"layouts": {
"LAYOUT": {
"layout": [
{ "x": 0, "y": 0 },
{ "x": 1, "y": 0 },
{ "x": 2, "y": 0 },
{ "x": 0, "y": 1 },
{ "x": 1, "y": 1 },
{ "x": 2, "y": 1 }
]
}
}
}

View File

@ -1,68 +1,77 @@
#include "../../m6_a.h" #include QMK_KEYBOARD_H
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KEYMAP( LAYOUT(
TO(1), KC_A, KC_B, KC_C, KC_D, KC_E), TO(1), KC_A, KC_B, KC_C, KC_D, KC_E),
KEYMAP( LAYOUT(
TO(2), KC_F, KC_G, KC_H, KC_I, KC_J), TO(2), KC_F, KC_G, KC_H, KC_I, KC_J),
KEYMAP( LAYOUT(
TO(3), KC_K, KC_L, KC_M, KC_N, KC_O), TO(3), KC_K, KC_L, KC_M, KC_N, KC_O),
KEYMAP( LAYOUT(
TO(4), KC_P, KC_Q, KC_R, KC_S, KC_T), TO(4), KC_P, KC_Q, KC_R, KC_S, KC_T),
KEYMAP( LAYOUT(
TO(5), KC_U, KC_V, KC_W, KC_X, KC_Y), TO(5), KC_U, KC_V, KC_W, KC_X, KC_Y),
KEYMAP( LAYOUT(
TO(0), KC_Z, KC_1, KC_2, KC_3, KC_4) TO(0), KC_Z, KC_1, KC_2, KC_3, KC_4)};
};
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
//keyevent_t event = record->event; //keyevent_t event = record->event;
switch (id) { switch (id)
{
case 0: case 0:
if (record->event.pressed) { if (record->event.pressed)
return MACRO( T(T), T(G), T(L), T(H), T(F), T(ENT), END ); {
return MACRO(T(T), T(G), T(L), T(H), T(F), T(ENT), END);
} }
break; break;
case 1: case 1:
if (record->event.pressed) { if (record->event.pressed)
return MACRO( T(T), T(G), T(G), T(ENT), END ); {
return MACRO(T(T), T(G), T(G), T(ENT), END);
} }
break; break;
case 2: case 2:
if (record->event.pressed) { if (record->event.pressed)
return MACRO( D(NO), T(L), U(NO), END ); {
return MACRO(D(NO), T(L), U(NO), END);
} }
break; break;
case 3: case 3:
if (record->event.pressed) { if (record->event.pressed)
return MACRO( D(LCTL), T(Z), U(LCTL), END ); {
return MACRO(D(LCTL), T(Z), U(LCTL), END);
} }
break; break;
case 4: case 4:
if (record->event.pressed) { if (record->event.pressed)
return MACRO( D(LCTL), D(LSFT), T(Z), U(LSFT), U(LCTL), END ); {
return MACRO(D(LCTL), D(LSFT), T(Z), U(LSFT), U(LCTL), END);
} }
break; break;
case 5: case 5:
if (record->event.pressed) { if (record->event.pressed)
return MACRO( D(LCTL), T(X), U(LCTL), END ); {
return MACRO(D(LCTL), T(X), U(LCTL), END);
} }
break; break;
case 6: case 6:
if (record->event.pressed) { if (record->event.pressed)
return MACRO( D(LCTL), T(C), U(LCTL), END ); {
return MACRO(D(LCTL), T(C), U(LCTL), END);
} }
break; break;
case 7: case 7:
if (record->event.pressed) { if (record->event.pressed)
return MACRO( D(LCTL), T(V), U(LCTL), END ); {
return MACRO(D(LCTL), T(V), U(LCTL), END);
} }
break; break;
} }
@ -71,130 +80,146 @@ const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
// M6-A LEDs are connected to D6, B6, F5, B4, C7, F7 // M6-A LEDs are connected to D6, B6, F5, B4, C7, F7
// This is 1-based because I copied it from Knops code. // This is 1-based because I copied it from Knops code.
void set_switch_led(int ledId, bool state) { void set_switch_led(int ledId, bool state)
if(state) { {
switch(ledId) { if (state)
{
switch (ledId)
{
case 1: case 1:
PORTD |= (1<<6); PORTD |= (1 << 6);
break; break;
case 2: case 2:
PORTB |= (1<<6); PORTB |= (1 << 6);
break; break;
case 3: case 3:
PORTF |= (1<<5); PORTF |= (1 << 5);
break; break;
case 4: case 4:
PORTB |= (1<<4); PORTB |= (1 << 4);
break; break;
case 5: case 5:
PORTC |= (1<<7); PORTC |= (1 << 7);
break; break;
case 6: case 6:
PORTF |= (1<<7); PORTF |= (1 << 7);
break; break;
} }
} else { }
switch(ledId) { else
{
switch (ledId)
{
case 1: case 1:
PORTD &= ~(1<<6); PORTD &= ~(1 << 6);
break; break;
case 2: case 2:
PORTB &= ~(1<<6); PORTB &= ~(1 << 6);
break; break;
case 3: case 3:
PORTF &= ~(1<<5); PORTF &= ~(1 << 5);
break; break;
case 4: case 4:
PORTB &= ~(1<<4); PORTB &= ~(1 << 4);
break; break;
case 5: case 5:
PORTC &= ~(1<<7); PORTC &= ~(1 << 7);
break; break;
case 6: case 6:
PORTF &= ~(1<<7); PORTF &= ~(1 << 7);
break; break;
} }
} }
} }
void set_layer_led(int layerId)
void set_layer_led(int layerId) { {
// UNUSED // UNUSED
} }
void led_set_layer(int layer); void led_set_layer(int layer);
void matrix_init_user(void) { void matrix_init_user(void)
{
led_init_ports(); led_init_ports();
led_set_layer(0); led_set_layer(0);
} }
void matrix_scan_user(void) { void matrix_scan_user(void)
{
} }
// M6-A LEDs are connected to D6, B6, F5, B4, C7, F7 // M6-A LEDs are connected to D6, B6, F5, B4, C7, F7
void led_init_ports() { void led_init_ports()
{
// Switch #1 // Switch #1
DDRD |= (1<<6); DDRD |= (1 << 6);
PORTD &= ~(1<<6); PORTD &= ~(1 << 6);
// Switch #2 // Switch #2
DDRB |= (1<<6); DDRB |= (1 << 6);
PORTB &= ~(1<<6); PORTB &= ~(1 << 6);
// Switch #3 // Switch #3
DDRF |= (1<<5); DDRF |= (1 << 5);
PORTF &= ~(1<<5); PORTF &= ~(1 << 5);
// Switch #4 // Switch #4
DDRB |= (1<<4); DDRB |= (1 << 4);
PORTB &= ~(1<<4); PORTB &= ~(1 << 4);
// Switch #5 // Switch #5
DDRC |= (1<<7); DDRC |= (1 << 7);
PORTC &= ~(1<<7); PORTC &= ~(1 << 7);
// Switch #6 // Switch #6
DDRF |= (1<<7); DDRF |= (1 << 7);
PORTF &= ~(1<<7); PORTF &= ~(1 << 7);
} }
void led_set_user(uint8_t usb_led) { void led_set_user(uint8_t usb_led)
{
if (usb_led & (1 << USB_LED_NUM_LOCK)) {
} else {
if (usb_led & (1 << USB_LED_NUM_LOCK))
{
}
else
{
} }
if (usb_led & (1 << USB_LED_CAPS_LOCK)) { if (usb_led & (1 << USB_LED_CAPS_LOCK))
{
} else { }
else
{
} }
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { if (usb_led & (1 << USB_LED_SCROLL_LOCK))
{
} else { }
else
{
} }
if (usb_led & (1 << USB_LED_COMPOSE)) { if (usb_led & (1 << USB_LED_COMPOSE))
{
} else { }
else
{
} }
if (usb_led & (1 << USB_LED_KANA)) { if (usb_led & (1 << USB_LED_KANA))
{
} else { }
else
{
} }
} }
void led_set_layer(int layer) { void led_set_layer(int layer)
switch(layer) { {
switch (layer)
{
case 0: case 0:
set_switch_led(1, true); set_switch_led(1, true);
set_switch_led(2, false); set_switch_led(2, false);
@ -254,43 +279,44 @@ void led_set_layer(int layer) {
} }
} }
bool process_record_user (uint16_t keycode, keyrecord_t *record) { bool process_record_user(uint16_t keycode, keyrecord_t *record)
switch ( keycode ) {
switch (keycode)
{ {
case TO( 0 ): case TO(0):
if ( record->event.pressed ) if (record->event.pressed)
{ {
led_set_layer( 0 ); led_set_layer(0);
} }
break; break;
case TO( 1 ): case TO(1):
if ( record->event.pressed ) if (record->event.pressed)
{ {
led_set_layer( 1 ); led_set_layer(1);
} }
break; break;
case TO( 2 ): case TO(2):
if ( record->event.pressed ) if (record->event.pressed)
{ {
led_set_layer( 2 ); led_set_layer(2);
} }
break; break;
case TO( 3 ): case TO(3):
if ( record->event.pressed ) if (record->event.pressed)
{ {
led_set_layer( 3 ); led_set_layer(3);
} }
break; break;
case TO( 4 ): case TO(4):
if ( record->event.pressed ) if (record->event.pressed)
{ {
led_set_layer( 4 ); led_set_layer(4);
} }
break; break;
case TO( 5 ): case TO(5):
if ( record->event.pressed ) if (record->event.pressed)
{ {
led_set_layer( 5 ); led_set_layer(5);
} }
break; break;
} }

View File

@ -1,92 +1,100 @@
#include "../../m6_a.h" #include QMK_KEYBOARD_H
/*KNOPS_MISC*/ /*KNOPS_MISC*/
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*KNOPS_KEYMAP*/ /*KNOPS_LAYOUT*/
}; };
void set_led_state(int ledId, bool state) { void set_led_state(int ledId, bool state)
if(state) { {
switch(ledId) { if (state)
{
switch (ledId)
{
case 0: case 0:
PORTD |= (1<<6); PORTD |= (1 << 6);
break; break;
case 1: case 1:
PORTB |= (1<<6); PORTB |= (1 << 6);
break; break;
case 2: case 2:
PORTF |= (1<<5); PORTF |= (1 << 5);
break; break;
case 3: case 3:
PORTB |= (1<<4); PORTB |= (1 << 4);
break; break;
case 4: case 4:
PORTC |= (1<<7); PORTC |= (1 << 7);
break; break;
case 5: case 5:
PORTF |= (1<<7); PORTF |= (1 << 7);
break; break;
} }
} else { }
switch(ledId) { else
{
switch (ledId)
{
case 0: case 0:
PORTD &= ~(1<<6); PORTD &= ~(1 << 6);
break; break;
case 1: case 1:
PORTB &= ~(1<<6); PORTB &= ~(1 << 6);
break; break;
case 2: case 2:
PORTF &= ~(1<<5); PORTF &= ~(1 << 5);
break; break;
case 3: case 3:
PORTB &= ~(1<<4); PORTB &= ~(1 << 4);
break; break;
case 4: case 4:
PORTC &= ~(1<<7); PORTC &= ~(1 << 7);
break; break;
case 5: case 5:
PORTF &= ~(1<<7); PORTF &= ~(1 << 7);
break; break;
} }
} }
} }
void led_init_ports() { void led_init_ports()
{
// Switch #1 // Switch #1
DDRD |= (1<<6); DDRD |= (1 << 6);
PORTD &= ~(1<<6); PORTD &= ~(1 << 6);
// Switch #2 // Switch #2
DDRB |= (1<<6); DDRB |= (1 << 6);
PORTB &= ~(1<<6); PORTB &= ~(1 << 6);
// Switch #3 // Switch #3
DDRF |= (1<<5); DDRF |= (1 << 5);
PORTF &= ~(1<<5); PORTF &= ~(1 << 5);
// Switch #4 // Switch #4
DDRB |= (1<<4); DDRB |= (1 << 4);
PORTB &= ~(1<<4); PORTB &= ~(1 << 4);
// Switch #5 // Switch #5
DDRC |= (1<<7); DDRC |= (1 << 7);
PORTC &= ~(1<<7); PORTC &= ~(1 << 7);
// Switch #6 // Switch #6
DDRF |= (1<<7); DDRF |= (1 << 7);
PORTF &= ~(1<<7); PORTF &= ~(1 << 7);
} }
void led_set_layer(int layer) { void led_set_layer(int layer)
{
/*KNOPS_SIMPLELED_STATES*/ /*KNOPS_SIMPLELED_STATES*/
} }
void matrix_init_user(void) { void matrix_init_user(void)
{
led_init_ports(); led_init_ports();
led_set_layer(0); led_set_layer(0);
@ -94,27 +102,28 @@ void matrix_init_user(void) {
/*KNOPS_INIT*/ /*KNOPS_INIT*/
} }
const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) { const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
{
//keyevent_t event = record->event; //keyevent_t event = record->event;
/*KNOPS_MACRO*/ /*KNOPS_MACRO*/
return NULL; return NULL;
} }
void matrix_scan_user(void) { void matrix_scan_user(void)
{
/*KNOPS_SCAN*/ /*KNOPS_SCAN*/
} }
void led_set_user(uint8_t usb_led) { void led_set_user(uint8_t usb_led)
{
/*KNOPS_FUNCTIONALLED_STATES*/ /*KNOPS_FUNCTIONALLED_STATES*/
} }
bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool process_record_user(uint16_t keycode, keyrecord_t *record)
{
/*KNOPS_PROCESS_STATE*/ /*KNOPS_PROCESS_STATE*/
return NULL; return NULL;
} }

View File

@ -6,12 +6,14 @@ Keymap was from my own port for the M6-A before official support was added, thus
Top-right button acts as a "toggle between layers" button. Layer 0 -> Layer 1 -> Layer 2 -> Layer 0 -> ... Top-right button acts as a "toggle between layers" button. Layer 0 -> Layer 1 -> Layer 2 -> Layer 0 -> ...
- Layer 0: Git and Discord shortcuts * Layer 0: Git and Discord shortcuts
- Layer 1: Media playback and volume controls * Layer 1: Media playback and volume controls
- Layer 2: Osu! gamepad layer * Layer 2: Osu! gamepad layer
## Helpful alternative keymaps (WIP) ## Helpful alternative keymaps (WIP)
### Arrow cluster ### Arrow cluster
Use [karabiner-elements](https://github.com/tekezo/Karabiner-Elements) on macOS so that the state of the modifiers (shift, caps lock) are synchronised between keyboards (for shift + arrow key text selection, for example). It's also a handy tool for customising keyboard behaviour on a Mac. Use [karabiner-elements](https://github.com/tekezo/Karabiner-Elements) on macOS so that the state of the modifiers (shift, caps lock) are synchronised between keyboards (for shift + arrow key text selection, for example). It's also a handy tool for customising keyboard behaviour on a Mac.
On Windows/Linux modifier state should be shared between all keyboards by default. On Windows/Linux modifier state should be shared between all keyboards by default.
@ -19,7 +21,7 @@ On Windows/Linux modifier state should be shared between all keyboards by defaul
Installation: install [homebrew](https://brew.sh) and run `brew install Caskroom/cask/karabiner-elements`. Installation: install [homebrew](https://brew.sh) and run `brew install Caskroom/cask/karabiner-elements`.
```C ```C
KEYMAP( LAYOUT(
KC_ESC, KC_UP, TO(_LAYER0), KC_ESC, KC_UP, TO(_LAYER0),
KC_LEFT, KC_DOWN, KC_RIGHT KC_LEFT, KC_DOWN, KC_RIGHT
) )

View File

@ -1,4 +1,4 @@
#include "../../m6_a.h" #include QMK_KEYBOARD_H
#include "action_layer.h" #include "action_layer.h"
#include "eeconfig.h" #include "eeconfig.h"
@ -9,13 +9,15 @@ extern keymap_config_t keymap_config;
// Layer names don't all need to be of the same length, obviously, and you can also skip them // Layer names don't all need to be of the same length, obviously, and you can also skip them
// entirely and just use numbers. // entirely and just use numbers.
enum layers { enum layers
{
_LAYER0, _LAYER0,
_LAYER1, _LAYER1,
_LAYER2 _LAYER2
}; };
enum custom_keycodes { enum custom_keycodes
{
GIT_ADD = SAFE_RANGE, GIT_ADD = SAFE_RANGE,
GIT_COMMIT, GIT_COMMIT,
GIT_PUSH, GIT_PUSH,
@ -23,17 +25,20 @@ enum custom_keycodes {
DEAFEN DEAFEN
}; };
bool process_record_user(uint16_t keycode, keyrecord_t *record) { bool process_record_user(uint16_t keycode, keyrecord_t *record)
if (record->event.pressed) { {
switch(keycode) { if (record->event.pressed)
{
switch (keycode)
{
case GIT_ADD: case GIT_ADD:
SEND_STRING("git add ."SS_TAP(X_ENTER)); SEND_STRING("git add ." SS_TAP(X_ENTER));
break; break;
case GIT_COMMIT: case GIT_COMMIT:
SEND_STRING("git commit -m "SS_DOWN(X_LSHIFT)SS_TAP(X_QUOTE)SS_UP(X_LSHIFT)); SEND_STRING("git commit -m " SS_DOWN(X_LSHIFT) SS_TAP(X_QUOTE) SS_UP(X_LSHIFT));
break; break;
case GIT_PUSH: case GIT_PUSH:
SEND_STRING("git push"SS_TAP(X_ENTER)); SEND_STRING("git push" SS_TAP(X_ENTER));
break; break;
case MUTE: case MUTE:
SEND_STRING(SS_LGUI(SS_LSFT("M"))); SEND_STRING(SS_LGUI(SS_LSFT("M")));
@ -51,22 +56,19 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
#define XXXXXXX KC_NO #define XXXXXXX KC_NO
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_LAYER0] = KEYMAP( [_LAYER0] = LAYOUT(
MUTE, DEAFEN, TO(_LAYER1), MUTE, DEAFEN, TO(_LAYER1),
GIT_ADD, GIT_COMMIT, GIT_PUSH GIT_ADD, GIT_COMMIT, GIT_PUSH),
), [_LAYER1] = LAYOUT(
[_LAYER1] = KEYMAP(
KC_VOLD, KC_VOLU, TO(_LAYER2), KC_VOLD, KC_VOLU, TO(_LAYER2),
KC_MRWD, KC_MPLY, KC_MNXT KC_MRWD, KC_MPLY, KC_MNXT),
), [_LAYER2] = LAYOUT(
[_LAYER2] = KEYMAP(
KC_ESC, KC_UP, TO(_LAYER0), KC_ESC, KC_UP, TO(_LAYER0),
KC_Z, KC_X, KC_SPACE KC_Z, KC_X, KC_SPACE)};
)
};
void matrix_init_user(void) { void matrix_init_user(void)
#ifdef BACKLIGHT_ENABLE {
#ifdef BACKLIGHT_ENABLE
backlight_level(0); backlight_level(0);
#endif #endif
} }

View File

@ -1,4 +1,4 @@
#include "../../m6_a.h" #include QMK_KEYBOARD_H
// Define Layers // Define Layers
#define _BASE 0 #define _BASE 0
@ -6,13 +6,12 @@
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// Base Layer // Base Layer
[_BASE] = KEYMAP( [_BASE] = LAYOUT(
TO(1), KC_UP, KC_PGDN, TO(1), KC_UP, KC_PGDN,
KC_LEFT,KC_DOWN,KC_RGHT), KC_LEFT, KC_DOWN, KC_RGHT),
// Fn Layer // Fn Layer
[_FNX] = KEYMAP( [_FNX] = LAYOUT(
TO(0),KC_VOLU,KC_MPLY, TO(0), KC_VOLU, KC_MPLY,
KC_MRWD,KC_VOLD,KC_MFFD) KC_MRWD, KC_VOLD, KC_MFFD)};
};

View File

@ -21,9 +21,9 @@
// This a shortcut to help you visually see your layout. // This a shortcut to help you visually see your layout.
// The first section contains all of the arguments // The first section contains all of the arguments
// The second converts the arguments into a two-dimensional array // The second converts the arguments into a two-dimensional array
#define KEYMAP( \ #define LAYOUT( \
K00, K01, K02, K03, K04, K05 \ K00, K01, K02, K03, K04, K05) \
) { \ { \
{ K00, K01, K02, K03, K04, K05 }, \ {K00, K01, K02, K03, K04, K05}, \
} }
#endif // RAMA_M6_A #endif // RAMA_M6_A