~ruther/qmk_firmware

851d995a7db7db6bfc366e3d43ce97f7fab17295 — James Young 4 years ago 1305b6d
Merro60 Layout Macro Refactor (#13827)

M keyboards/chlx/merro60/info.json => keyboards/chlx/merro60/info.json +151 -7
@@ 4,8 4,14 @@
    "maintainer": "gaclee3b",
    "width": 15,
    "height": 5,
    "layout_aliases": {
        "LAYOUT_default": "LAYOUT_all",
        "LAYOUT_hhkb": "LAYOUT_60_hhkb",
        "LAYOUT_iso": "LAYOUT_60_iso_split_bs_rshift",
        "LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb"
    },
    "layouts": {
        "LAYOUT_default": {
        "LAYOUT_all": {
            "layout": [
                {"x": 0,      "y": 0},
                {"x": 1,      "y": 0},


@@ 78,7 84,76 @@
                {"x": 13.75,  "y": 4, "w": 1.25}
            ]
        },
        "LAYOUT_ansi": {
        "LAYOUT_60_ansi": {
            "layout": [
                {"x":0,       "y":0},
                {"x":1,       "y":0},
                {"x":2,       "y":0},
                {"x":3,       "y":0},
                {"x":4,       "y":0},
                {"x":5,       "y":0},
                {"x":6,       "y":0},
                {"x":7,       "y":0},
                {"x":8,       "y":0},
                {"x":9,       "y":0},
                {"x":10,      "y":0},
                {"x":11,      "y":0},
                {"x":12,      "y":0},
                {"x":13,      "y":0, "w":2},

                {"x":0,       "y":1, "w":1.5},
                {"x":1.5,     "y":1},
                {"x":2.5,     "y":1},
                {"x":3.5,     "y":1},
                {"x":4.5,     "y":1},
                {"x":5.5,     "y":1},
                {"x":6.5,     "y":1},
                {"x":7.5,     "y":1},
                {"x":8.5,     "y":1},
                {"x":9.5,     "y":1},
                {"x":10.5,    "y":1},
                {"x":11.5,    "y":1},
                {"x":12.5,    "y":1},
                {"x":13.5,    "y":1, "w":1.5},

                {"x":0,       "y":2, "w":1.75},
                {"x":1.75,    "y":2},
                {"x":2.75,    "y":2},
                {"x":3.75,    "y":2},
                {"x":4.75,    "y":2},
                {"x":5.75,    "y":2},
                {"x":6.75,    "y":2},
                {"x":7.75,    "y":2},
                {"x":8.75,    "y":2},
                {"x":9.75,    "y":2},
                {"x":10.75,   "y":2},
                {"x":11.75,   "y":2},
                {"x":12.75,   "y":2, "w":2.25},

                {"x":0,       "y":3, "w":2.25},
                {"x":2.25,    "y":3},
                {"x":3.25,    "y":3},
                {"x":4.25,    "y":3},
                {"x":5.25,    "y":3},
                {"x":6.25,    "y":3},
                {"x":7.25,    "y":3},
                {"x":8.25,    "y":3},
                {"x":9.25,    "y":3},
                {"x":10.25,   "y":3},
                {"x":11.25,   "y":3},
                {"x":12.25,   "y":3, "w":2.75},

                {"x":0,       "y":4, "w":1.25},
                {"x":1.25,    "y":4, "w":1.25},
                {"x":2.5,     "y":4, "w":1.25},
                {"x":3.75,    "y":4, "w":6.25},
                {"x":10,      "y":4, "w":1.25},
                {"x":11.25,   "y":4, "w":1.25},
                {"x":12.5,    "y":4, "w":1.25},
                {"x":13.75,   "y":4, "w":1.25}
            ]
        },
        "LAYOUT_60_ansi_split_bs_rshift": {
            "layout": [
                {"x": 0,      "y": 0},
                {"x": 1,      "y": 0},


@@ 125,8 200,7 @@
                {"x": 11.75,  "y": 2},
                {"x": 12.75,  "y": 2, "w": 2.25},

                {"x": 0,      "y": 3, "w": 1.25},
                {"x": 1.25,   "y": 3},
                {"x": 0,      "y": 3, "w": 2.25},
                {"x": 2.25,   "y": 3},
                {"x": 3.25,   "y": 3},
                {"x": 4.25,   "y": 3},


@@ 150,7 224,7 @@
                {"x": 13.75,  "y": 4, "w": 1.25}
            ]
        },
        "LAYOUT_hhkb": {
        "LAYOUT_60_hhkb": {
            "layout": [
                {"x": 0,      "y": 0},
                {"x": 1,      "y": 0},


@@ 218,7 292,77 @@
                {"x": 12.5,   "y": 4}
            ]
        },
        "LAYOUT_iso": {
        "LAYOUT_60_iso": {
            "layout": [
                {"x": 0,      "y": 0},
                {"x": 1,      "y": 0},
                {"x": 2,      "y": 0},
                {"x": 3,      "y": 0},
                {"x": 4,      "y": 0},
                {"x": 5,      "y": 0},
                {"x": 6,      "y": 0},
                {"x": 7,      "y": 0},
                {"x": 8,      "y": 0},
                {"x": 9,      "y": 0},
                {"x": 10,     "y": 0},
                {"x": 11,     "y": 0},
                {"x": 12,     "y": 0},
                {"x": 13,     "y": 0, "w": 2},

                {"x": 0,      "y": 1, "w": 1.5},
                {"x": 1.5,    "y": 1},
                {"x": 2.5,    "y": 1},
                {"x": 3.5,    "y": 1},
                {"x": 4.5,    "y": 1},
                {"x": 5.5,    "y": 1},
                {"x": 6.5,    "y": 1},
                {"x": 7.5,    "y": 1},
                {"x": 8.5,    "y": 1},
                {"x": 9.5,    "y": 1},
                {"x": 10.5,   "y": 1},
                {"x": 11.5,   "y": 1},
                {"x": 12.5,   "y": 1},

                {"x": 0,      "y": 2, "w": 1.75},
                {"x": 1.75,   "y": 2},
                {"x": 2.75,   "y": 2},
                {"x": 3.75,   "y": 2},
                {"x": 4.75,   "y": 2},
                {"x": 5.75,   "y": 2},
                {"x": 6.75,   "y": 2},
                {"x": 7.75,   "y": 2},
                {"x": 8.75,   "y": 2},
                {"x": 9.75,   "y": 2},
                {"x": 10.75,  "y": 2},
                {"x": 11.75,  "y": 2},
                {"x": 12.75,  "y": 2},
                {"x": 13.75,  "y": 1, "w": 1.25, "h": 2},

                {"x": 0,      "y": 3, "w": 1.25},
                {"x": 1.25,   "y": 3},
                {"x": 2.25,   "y": 3},
                {"x": 3.25,   "y": 3},
                {"x": 4.25,   "y": 3},
                {"x": 5.25,   "y": 3},
                {"x": 6.25,   "y": 3},
                {"x": 7.25,   "y": 3},
                {"x": 8.25,   "y": 3},
                {"x": 9.25,   "y": 3},
                {"x": 10.25,  "y": 3},
                {"x": 11.25,  "y": 3},
                {"x": 12.25,  "y": 3, "w": 2.75},

                {"x": 0,      "y": 4, "w": 1.25},
                {"x": 1.25,   "y": 4, "w": 1.25},
                {"x": 2.5,    "y": 4, "w": 1.25},
                {"x": 3.75,   "y": 4, "w": 6.25},
                {"x": 10,     "y": 4, "w": 1.25},
                {"x": 11.25,  "y": 4, "w": 1.25},
                {"x": 12.5,   "y": 4, "w": 1.25},
                {"x": 13.75,  "y": 4, "w": 1.25}
            ]
        },
        "LAYOUT_60_iso_split_bs_rshift": {
            "layout": [
                {"x": 0,      "y": 0},
                {"x": 1,      "y": 0},


@@ 290,7 434,7 @@
                {"x": 13.75,  "y": 4, "w": 1.25}
            ]
        },
        "LAYOUT_tsangan": {
        "LAYOUT_60_tsangan_hhkb": {
            "layout": [
                {"x": 0,      "y": 0},
                {"x": 1,      "y": 0},

M keyboards/chlx/merro60/keymaps/ansi/keymap.c => keyboards/chlx/merro60/keymaps/ansi/keymap.c +4 -4
@@ 19,17 19,17 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[0] = LAYOUT_ansi(
[0] = 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_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_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_RSFT, 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_RSFT,
  KC_LCTL, KC_LGUI, KC_LALT,                   KC_SPC,                                      KC_RALT, KC_RGUI, MO(1),   KC_RCTL),

[1] = LAYOUT_ansi(
[1] = 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_UP,   _______, RESET,
  _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT,          _______,
  _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_END,  KC_PGDN, KC_DOWN, _______, _______,
  _______,          _______, _______, _______, _______, _______, _______, _______, KC_END,  KC_PGDN, KC_DOWN, _______, _______,
  _______, _______, _______,                   _______,                                     _______, _______, _______, _______),
};

M keyboards/chlx/merro60/keymaps/default/keymap.c => keyboards/chlx/merro60/keymaps/default/keymap.c +2 -2
@@ 19,14 19,14 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[0] = LAYOUT_default(
[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_UP,   KC_ENT,
  KC_LSFT, KC_LEFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_RGHT,
  KC_LCTL, KC_LGUI, KC_LALT,                   KC_SPC,                                      KC_RALT, KC_RGUI, KC_DOWN, KC_RCTL),

[1] = LAYOUT_default(
[1] = LAYOUT_all(
  KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  _______, KC_DEL,
  _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET,
  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

M keyboards/chlx/merro60/keymaps/hhkb/keymap.c => keyboards/chlx/merro60/keymaps/hhkb/keymap.c +2 -2
@@ 19,14 19,14 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[0] = LAYOUT_hhkb(
[0] = LAYOUT_60_hhkb(
  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_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_LGUI, KC_LALT,                   KC_SPC,                                               KC_RALT, KC_RGUI),

[1] = LAYOUT_hhkb(
[1] = LAYOUT_60_hhkb(
  KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_INS,  KC_DEL,
  KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP,   _______, RESET,
  _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT,          _______,

M keyboards/chlx/merro60/keymaps/iso/keymap.c => keyboards/chlx/merro60/keymaps/iso/keymap.c +2 -2
@@ 19,14 19,14 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[0] = LAYOUT_iso(
[0] = LAYOUT_60_iso_split_bs_rshift(
  KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_BSPC,
  KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC,
  KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_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, KC_RGHT,
  KC_LCTL, KC_LGUI, KC_LALT,                   KC_SPC,                                      KC_RALT, KC_RGUI, KC_APP,  KC_RCTL),

[1] = LAYOUT_iso(
[1] = LAYOUT_60_iso_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,
  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

M keyboards/chlx/merro60/keymaps/tsangan/keymap.c => keyboards/chlx/merro60/keymaps/tsangan/keymap.c +2 -2
@@ 19,14 19,14 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[0] = LAYOUT_tsangan(
[0] = LAYOUT_60_tsangan_hhkb(
  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_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_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_LGUI, KC_LALT,                   KC_SPC,                                               KC_RALT, KC_RGUI, KC_RCTL),

[1] = LAYOUT_tsangan(
[1] = LAYOUT_60_tsangan_hhkb(
  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,  _______,
  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,

M keyboards/chlx/merro60/keymaps/via/keymap.c => keyboards/chlx/merro60/keymaps/via/keymap.c +4 -4
@@ 19,28 19,28 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {

[0] = LAYOUT_via(
[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_UP,   KC_ENT,
  KC_LSFT, KC_LEFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_RGHT,
  KC_LCTL, KC_LGUI, KC_LALT,                   KC_SPC,                                      KC_RALT, KC_RGUI, KC_DOWN, KC_RCTL),

[1] = LAYOUT_via(
[1] = LAYOUT_all(
  KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  _______, KC_DEL,
  _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET,
  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  _______, _______, _______, _______, BL_DEC,  BL_TOGG, BL_INC,  BL_STEP, _______, _______, _______, _______, _______, _______,
  _______, _______, _______,                   _______,                                     _______, _______, _______, _______),

[2] = LAYOUT_via(
[2] = LAYOUT_all(
  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  _______, _______, _______,                   _______,                                     _______, _______, _______, _______),

[3] = LAYOUT_via(
[3] = LAYOUT_all(
  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
  _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,

M keyboards/chlx/merro60/merro60.h => keyboards/chlx/merro60/merro60.h +69 -44
@@ 23,7 23,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#define XXX KC_NO

/* //////////////////// LAYOUT_default ////////////////////
/* //////////////////// LAYOUT_all ////////////////////
 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │
 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤


@@ 37,7 37,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/

#define LAYOUT_default( \
#define LAYOUT_all( \
    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,      \
    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d,      \


@@ 51,34 51,61 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
    { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX }  \
}

/* //////////////////// LAYOUT_ansi ////////////////////
/* //////////////////// LAYOUT_60_ansi ////////////////////
 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d     │
 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
 * │10   │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d   │
 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
 * │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2d      │
 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
 * │31      │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c        │
 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
 * │40  │41  │42  │45                      │4a  │4b  │4c  │4d  │
 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
#define LAYOUT_60_ansi( \
    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d, \
    k31,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3c, \
    k40, k41, k42,           k45,                     k4a, k4b, k4c, k4d  \
) { \
    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \
    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \
    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \
    { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, XXX, XXX }, \
    { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX }  \
}

/* //////////////////// LAYOUT_60_ansi_split_bs_rshift ////////////////////
 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │
 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
 * │10   │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d   │
 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
 * │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2d      │
 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
 * │30  │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3d    │3e │
 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
 * │31      │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c    │3d │
 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
 * │40  │41  │42  │45                      │4a  │4b  │4d  │4e  │
 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
#define LAYOUT_ansi( \
#define LAYOUT_60_ansi_split_bs_rshift( \
    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,      \
    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d,      \
    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d,      \
    k31,      k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d,      \
    k40, k41, k42,           k45,                     k4a, k4b, k4c, k4d       \
) { \
    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \
    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \
    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \
    { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \
    { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX }  \
}

/* //////////////////// LAYOUT_hhkb ////////////////////
/* //////////////////// LAYOUT_60_hhkb ////////////////////
 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │
 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤


@@ 91,7 118,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * │▓▓▓▓▓│41 │42   │45 (7u)                    │4b   │4c │▓▓▓▓▓│
 * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
*/
#define LAYOUT_hhkb( \
#define LAYOUT_60_hhkb( \
    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,      \
    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d,      \


@@ 105,7 132,34 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
    { XXX, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, XXX, k4b, k4c, XXX, XXX }  \
}

/* //////////////////// LAYOUT_iso ////////////////////
/* //////////////////// LAYOUT_60_iso ////////////////////
 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d     │
 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
 * │10   │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │     │
 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐2d  │
 * │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │    │
 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
 * │30  │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c        │
 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
 * │40  │41  │42  │45                      │4a  │4b  │4c  │4d  │
 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
#define LAYOUT_60_iso( \
    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c,      \
    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b,      k3c, \
    k40, k41, k42,           k45,                     k4a, k4b, k4c, k4d  \
) { \
    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \
    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, XXX }, \
    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \
    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, XXX, XXX }, \
    { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX }  \
}

/* //////////////////// LAYOUT_60_iso_split_bs_rshift ////////////////////
 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │
 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤


@@ 118,7 172,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * │40  │41  │42  │45                      │4a  │4b  │4c  │4d  │
 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/
#define LAYOUT_iso( \
#define LAYOUT_60_iso_split_bs_rshift( \
    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c,           \
    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d,      \


@@ 132,7 186,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
    { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX }  \
}

/* //////////////////// LAYOUT_tsangan ////////////////////
/* //////////////////// LAYOUT_60_tsangan_hhkb ////////////////////
 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │
 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤


@@ 145,7 199,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * │40   │41 │42   │45 (7u)                    │4b   │4c │4d   │
 * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
*/
#define LAYOUT_tsangan( \
#define LAYOUT_60_tsangan_hhkb( \
    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,      \
    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b,      k2d,      \


@@ 158,32 212,3 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
    { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \
    { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, XXX, k4b, k4c, k4d, XXX }  \
}

/* //////////////////// LAYOUT_via ////////////////////
 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │
 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
 * │10   │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d   │
 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤
 * │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d  │
 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
 * │30  │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c    │3d │
 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
 * │40  │41  │42  │45 (6.25u)              │4a  │4b  │4c  │4d  │
 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
*/

#define LAYOUT_via( \
    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d,      \
    k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d,      \
    k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d,      \
    k40, k41, k42,           k45,                     k4a, k4b, k4c, k4d       \
) { \
    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \
    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \
    { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \
    { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX }  \
}


M keyboards/chlx/merro60/rules.mk => keyboards/chlx/merro60/rules.mk +2 -0
@@ 20,3 20,5 @@ BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
BLUETOOTH_ENABLE = no       # Enable Bluetooth
AUDIO_ENABLE = no           # Audio output

LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_hhkb 60_iso 60_tsangan_hhkb