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,298 +1,324 @@
#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: {
if (record->event.pressed) { case 0:
return MACRO( T(T), T(G), T(L), T(H), T(F), T(ENT), END ); if (record->event.pressed)
} {
break; return MACRO(T(T), T(G), T(L), T(H), T(F), T(ENT), END);
case 1: }
if (record->event.pressed) { break;
return MACRO( T(T), T(G), T(G), T(ENT), END ); case 1:
} if (record->event.pressed)
break; {
case 2: return MACRO(T(T), T(G), T(G), T(ENT), END);
if (record->event.pressed) { }
return MACRO( D(NO), T(L), U(NO), END ); break;
} case 2:
break; if (record->event.pressed)
case 3: {
if (record->event.pressed) { return MACRO(D(NO), T(L), U(NO), END);
return MACRO( D(LCTL), T(Z), U(LCTL), END ); }
} break;
break; case 3:
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), T(Z), U(LCTL), END);
} }
break; break;
case 5: case 4:
if (record->event.pressed) { if (record->event.pressed)
return MACRO( D(LCTL), T(X), U(LCTL), END ); {
} return MACRO(D(LCTL), D(LSFT), T(Z), U(LSFT), U(LCTL), END);
break; }
case 6: break;
if (record->event.pressed) { case 5:
return MACRO( D(LCTL), T(C), U(LCTL), END ); if (record->event.pressed)
} {
break; return MACRO(D(LCTL), T(X), U(LCTL), END);
case 7: }
if (record->event.pressed) { break;
return MACRO( D(LCTL), T(V), U(LCTL), END ); case 6:
} if (record->event.pressed)
break; {
} return MACRO(D(LCTL), T(C), U(LCTL), END);
return MACRO_NONE; }
break;
case 7:
if (record->event.pressed)
{
return MACRO(D(LCTL), T(V), U(LCTL), END);
}
break;
}
return MACRO_NONE;
} }
// 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)
case 1: {
PORTD |= (1<<6); switch (ledId)
break; {
case 2: case 1:
PORTB |= (1<<6); PORTD |= (1 << 6);
break; break;
case 3: case 2:
PORTF |= (1<<5); PORTB |= (1 << 6);
break; break;
case 4: case 3:
PORTB |= (1<<4); PORTF |= (1 << 5);
break; break;
case 5: case 4:
PORTC |= (1<<7); PORTB |= (1 << 4);
break; break;
case 6: case 5:
PORTF |= (1<<7); PORTC |= (1 << 7);
break; break;
} case 6:
} else { PORTF |= (1 << 7);
switch(ledId) { break;
case 1: }
PORTD &= ~(1<<6); }
break; else
case 2: {
PORTB &= ~(1<<6); switch (ledId)
break; {
case 3: case 1:
PORTF &= ~(1<<5); PORTD &= ~(1 << 6);
break; break;
case 4: case 2:
PORTB &= ~(1<<4); PORTB &= ~(1 << 6);
break; break;
case 5: case 3:
PORTC &= ~(1<<7); PORTF &= ~(1 << 5);
break; break;
case 6: case 4:
PORTF &= ~(1<<7); PORTB &= ~(1 << 4);
break; break;
} case 5:
} PORTC &= ~(1 << 7);
break;
case 6:
PORTF &= ~(1 << 7);
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_set_layer(0); led_init_ports();
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 {
DDRD |= (1<<6); // Switch #1
PORTD &= ~(1<<6); DDRD |= (1 << 6);
PORTD &= ~(1 << 6);
// Switch #2
DDRB |= (1<<6);
PORTB &= ~(1<<6);
// Switch #3
DDRF |= (1<<5);
PORTF &= ~(1<<5);
// Switch #4
DDRB |= (1<<4);
PORTB &= ~(1<<4);
// Switch #5 // Switch #2
DDRC |= (1<<7); DDRB |= (1 << 6);
PORTC &= ~(1<<7); PORTB &= ~(1 << 6);
// Switch #6 // Switch #3
DDRF |= (1<<7); DDRF |= (1 << 5);
PORTF &= ~(1<<7); PORTF &= ~(1 << 5);
// Switch #4
DDRB |= (1 << 4);
PORTB &= ~(1 << 4);
// Switch #5
DDRC |= (1 << 7);
PORTC &= ~(1 << 7);
// Switch #6
DDRF |= (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)) { if (usb_led & (1 << USB_LED_NUM_LOCK))
{
} else { }
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))
{
}
else
{
}
} if (usb_led & (1 << USB_LED_COMPOSE))
{
if (usb_led & (1 << USB_LED_SCROLL_LOCK)) { }
else
} else { {
}
}
if (usb_led & (1 << USB_LED_COMPOSE)) {
} else {
}
if (usb_led & (1 << USB_LED_KANA)) {
} else {
}
if (usb_led & (1 << USB_LED_KANA))
{
}
else
{
}
} }
void led_set_layer(int layer) { void led_set_layer(int layer)
switch(layer) { {
case 0: switch (layer)
set_switch_led(1, true); {
set_switch_led(2, false); case 0:
set_switch_led(3, false); set_switch_led(1, true);
set_switch_led(4, false); set_switch_led(2, false);
set_switch_led(5, false); set_switch_led(3, false);
set_switch_led(6, false); set_switch_led(4, false);
break; set_switch_led(5, false);
case 1: set_switch_led(6, false);
set_switch_led(1, false); break;
set_switch_led(2, true); case 1:
set_switch_led(3, false); set_switch_led(1, false);
set_switch_led(4, false); set_switch_led(2, true);
set_switch_led(5, false); set_switch_led(3, false);
set_switch_led(6, false); set_switch_led(4, false);
break; set_switch_led(5, false);
case 2: set_switch_led(6, false);
set_switch_led(1, false); break;
set_switch_led(2, false); case 2:
set_switch_led(3, true); set_switch_led(1, false);
set_switch_led(4, false); set_switch_led(2, false);
set_switch_led(5, false); set_switch_led(3, true);
set_switch_led(6, false); set_switch_led(4, false);
break; set_switch_led(5, false);
case 3: set_switch_led(6, false);
set_switch_led(1, false); break;
set_switch_led(2, false); case 3:
set_switch_led(3, false); set_switch_led(1, false);
set_switch_led(4, true); set_switch_led(2, false);
set_switch_led(5, false); set_switch_led(3, false);
set_switch_led(6, false); set_switch_led(4, true);
break; set_switch_led(5, false);
case 4: set_switch_led(6, false);
set_switch_led(1, false); break;
set_switch_led(2, false); case 4:
set_switch_led(3, false); set_switch_led(1, false);
set_switch_led(4, false); set_switch_led(2, false);
set_switch_led(5, true); set_switch_led(3, false);
set_switch_led(6, false); set_switch_led(4, false);
break; set_switch_led(5, true);
case 5: set_switch_led(6, false);
set_switch_led(1, false); break;
set_switch_led(2, false); case 5:
set_switch_led(3, false); set_switch_led(1, false);
set_switch_led(4, false); set_switch_led(2, false);
set_switch_led(5, false); set_switch_led(3, false);
set_switch_led(6, true); set_switch_led(4, false);
break; set_switch_led(5, false);
default: set_switch_led(6, true);
set_switch_led(1, true); break;
set_switch_led(2, true); default:
set_switch_led(3, true); set_switch_led(1, true);
set_switch_led(4, true); set_switch_led(2, true);
set_switch_led(5, true); set_switch_led(3, true);
set_switch_led(6, true); set_switch_led(4, true);
break; set_switch_led(5, true);
} set_switch_led(6, true);
break;
}
} }
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 ): {
if ( record->event.pressed ) case TO(0):
{ if (record->event.pressed)
led_set_layer( 0 ); {
} led_set_layer(0);
break; }
case TO( 1 ): break;
if ( record->event.pressed ) case TO(1):
{ if (record->event.pressed)
led_set_layer( 1 ); {
} led_set_layer(1);
break; }
case TO( 2 ): break;
if ( record->event.pressed ) case TO(2):
{ if (record->event.pressed)
led_set_layer( 2 ); {
} led_set_layer(2);
break; }
case TO( 3 ): break;
if ( record->event.pressed ) case TO(3):
{ if (record->event.pressed)
led_set_layer( 3 ); {
} led_set_layer(3);
break; }
case TO( 4 ): break;
if ( record->event.pressed ) case TO(4):
{ if (record->event.pressed)
led_set_layer( 4 ); {
} led_set_layer(4);
break; }
case TO( 5 ): break;
if ( record->event.pressed ) case TO(5):
{ if (record->event.pressed)
led_set_layer( 5 ); {
} led_set_layer(5);
break; }
} break;
return true; }
return true;
} }

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)
case 0: {
PORTD |= (1<<6); switch (ledId)
break; {
case 1: case 0:
PORTB |= (1<<6); PORTD |= (1 << 6);
break; break;
case 2: case 1:
PORTF |= (1<<5); PORTB |= (1 << 6);
break; break;
case 3: case 2:
PORTB |= (1<<4); PORTF |= (1 << 5);
break; break;
case 4: case 3:
PORTC |= (1<<7); PORTB |= (1 << 4);
break; break;
case 5: case 4:
PORTF |= (1<<7); PORTC |= (1 << 7);
break; break;
} case 5:
} else { PORTF |= (1 << 7);
switch(ledId) { break;
case 0: }
PORTD &= ~(1<<6); }
break; else
case 1: {
PORTB &= ~(1<<6); switch (ledId)
break; {
case 2: case 0:
PORTF &= ~(1<<5); PORTD &= ~(1 << 6);
break; break;
case 3: case 1:
PORTB &= ~(1<<4); PORTB &= ~(1 << 6);
break; break;
case 4: case 2:
PORTC &= ~(1<<7); PORTF &= ~(1 << 5);
break; break;
case 5: case 3:
PORTF &= ~(1<<7); PORTB &= ~(1 << 4);
break; break;
} case 4:
} PORTC &= ~(1 << 7);
break;
case 5:
PORTF &= ~(1 << 7);
break;
}
}
} }
void led_init_ports() { void led_init_ports()
// Switch #1 {
DDRD |= (1<<6); // Switch #1
PORTD &= ~(1<<6); DDRD |= (1 << 6);
PORTD &= ~(1 << 6);
// Switch #2
DDRB |= (1<<6);
PORTB &= ~(1<<6);
// Switch #3
DDRF |= (1<<5);
PORTF &= ~(1<<5);
// Switch #4
DDRB |= (1<<4);
PORTB &= ~(1<<4);
// Switch #5 // Switch #2
DDRC |= (1<<7); DDRB |= (1 << 6);
PORTC &= ~(1<<7); PORTB &= ~(1 << 6);
// Switch #6 // Switch #3
DDRF |= (1<<7); DDRF |= (1 << 5);
PORTF &= ~(1<<7); PORTF &= ~(1 << 5);
// Switch #4
DDRB |= (1 << 4);
PORTB &= ~(1 << 4);
// Switch #5
DDRC |= (1 << 7);
PORTC &= ~(1 << 7);
// Switch #6
DDRF |= (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,64 +9,66 @@ 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, {
_LAYER1, _LAYER0,
_LAYER2 _LAYER1,
_LAYER2
}; };
enum custom_keycodes { enum custom_keycodes
GIT_ADD = SAFE_RANGE, {
GIT_COMMIT, GIT_ADD = SAFE_RANGE,
GIT_PUSH, GIT_COMMIT,
MUTE, GIT_PUSH,
DEAFEN MUTE,
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)
case GIT_ADD: {
SEND_STRING("git add ."SS_TAP(X_ENTER)); switch (keycode)
break; {
case GIT_COMMIT: case GIT_ADD:
SEND_STRING("git commit -m "SS_DOWN(X_LSHIFT)SS_TAP(X_QUOTE)SS_UP(X_LSHIFT)); SEND_STRING("git add ." SS_TAP(X_ENTER));
break; break;
case GIT_PUSH: case GIT_COMMIT:
SEND_STRING("git push"SS_TAP(X_ENTER)); SEND_STRING("git commit -m " SS_DOWN(X_LSHIFT) SS_TAP(X_QUOTE) SS_UP(X_LSHIFT));
break; break;
case MUTE: case GIT_PUSH:
SEND_STRING(SS_LGUI(SS_LSFT("M"))); SEND_STRING("git push" SS_TAP(X_ENTER));
break; break;
case DEAFEN: case MUTE:
SEND_STRING(SS_LGUI(SS_LSFT("D"))); SEND_STRING(SS_LGUI(SS_LSFT("M")));
break; break;
return false; case DEAFEN:
} SEND_STRING(SS_LGUI(SS_LSFT("D")));
} break;
return true; return false;
}
}
return true;
}; };
#define _______ KC_TRNS #define _______ KC_TRNS
#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(
), KC_ESC, KC_UP, TO(_LAYER0),
[_LAYER2] = KEYMAP( KC_Z, KC_X, KC_SPACE)};
KC_ESC, KC_UP, TO(_LAYER0),
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,18 +1,17 @@
#include "../../m6_a.h" #include QMK_KEYBOARD_H
// Define Layers // Define Layers
#define _BASE 0 #define _BASE 0
#define _FNX 1 #define _FNX 1
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