~ruther/qmk_firmware

673a5b0ea27d76b5135399a7dbfffc5cb2790ec9 — James Young 4 years ago fa309df
Molecule: Layout Macro Refactor (#13453)

M keyboards/molecule/info.json => keyboards/molecule/info.json +45 -203
@@ 7,209 7,51 @@
    "layouts": {
        "LAYOUT": {
            "layout": [
                {
                   "label":"E",
                   "x":2,
                   "y":0
                },
                {
                   "label":"I",
                   "x":11.75,
                   "y":0
                },
                {
                   "label":"W",
                   "x":1,
                   "y":0.25
                },
                {
                   "label":"O",
                   "x":12.75,
                   "y":0.25
                },
                {
                   "label":"R",
                   "x":3,
                   "y":0.5
                },
                {
                   "label":"U",
                   "x":10.75,
                   "y":0.5
                },
                {
                   "label":"T",
                   "x":4,
                   "y":0.75
                },
                {
                   "label":"Y",
                   "x":9.75,
                   "y":0.75
                },
                {
                   "label":"Q",
                   "x":0,
                   "y":1
                },
                {
                   "label":"D",
                   "x":2,
                   "y":1
                },
                {
                   "label":"K",
                   "x":11.75,
                   "y":1
                },
                {
                   "label":"P",
                   "x":13.75,
                   "y":1
                },
                {
                   "label":"S",
                   "x":1,
                   "y":1.25
                },
                {
                   "label":"L",
                   "x":12.75,
                   "y":1.25
                },
                {
                   "label":"F",
                   "x":3,
                   "y":1.5
                },
                {
                   "label":"J",
                   "x":10.75,
                   "y":1.5
                },
                {
                   "label":"G",
                   "x":4,
                   "y":1.75
                },
                {
                   "label":"H",
                   "x":9.75,
                   "y":1.75
                },
                {
                   "label":"A",
                   "x":0,
                   "y":2
                },
                {
                   "label":"C",
                   "x":2,
                   "y":2
                },
                {
                   "label":",",
                   "x":11.75,
                   "y":2
                },
                {
                   "label":";",
                   "x":13.75,
                   "y":2
                },
                {
                   "label":"X",
                   "x":1,
                   "y":2.25
                },
                {
                   "label":".",
                   "x":12.75,
                   "y":2.25
                },
                {
                   "label":"V",
                   "x":3,
                   "y":2.5
                },
                {
                   "label":"M",
                   "x":10.75,
                   "y":2.5
                },
                {
                   "label":"B",
                   "x":4,
                   "y":2.75
                },
                {
                   "label":"N",
                   "x":9.75,
                   "y":2.75
                },
                {
                   "label":"Z",
                   "x":0,
                   "y":3
                },
                {
                   "label":"Shift",
                   "x":2,
                   "y":3
                },
                {
                   "label":"Alt",
                   "x":5.25,
                   "y":3
                },
                {
                   "label":"Super",
                   "x":8.5,
                   "y":3
                },
                {
                   "label":"Shift",
                   "x":11.75,
                   "y":3
                },
                {
                   "label":"/",
                   "x":13.75,
                   "y":3
                },
                {
                   "label":"Ctrl",
                   "x":1,
                   "y":3.25
                },
                {
                   "label":"Space",
                   "x":6.25,
                   "y":3.25,
                   "h":1.5
                },
                {
                   "label":"Enter",
                   "x":7.5,
                   "y":3.25,
                   "h":1.5
                },
                {
                   "label":"Ctrl",
                   "x":12.75,
                   "y":3.25
                },
                {
                   "label":"Lower",
                   "x":5.25,
                   "y":4
                },
                {
                   "label":"Raise",
                   "x":8.5,
                   "y":4
                }
                {"label":"Q", "x":0, "y":1},
                {"label":"W", "x":1, "y":0.25},
                {"label":"E", "x":2, "y":0},
                {"label":"R", "x":3, "y":0.5},
                {"label":"T", "x":4, "y":0.75},
                {"label":"Y", "x":9.75, "y":0.75},
                {"label":"U", "x":10.75, "y":0.5},
                {"label":"I", "x":11.75, "y":0},
                {"label":"O", "x":12.75, "y":0.25},
                {"label":"P", "x":13.75, "y":1},

                {"label":"A", "x":0, "y":2},
                {"label":"S", "x":1, "y":1.25},
                {"label":"D", "x":2, "y":1},
                {"label":"F", "x":3, "y":1.5},
                {"label":"G", "x":4, "y":1.75},
                {"label":"H", "x":9.75, "y":1.75},
                {"label":"J", "x":10.75, "y":1.5},
                {"label":"K", "x":11.75, "y":1},
                {"label":"L", "x":12.75, "y":1.25},
                {"label":";", "x":13.75, "y":2},

                {"label":"Z", "x":0, "y":3},
                {"label":"X", "x":1, "y":2.25},
                {"label":"C", "x":2, "y":2},
                {"label":"V", "x":3, "y":2.5},
                {"label":"B", "x":4, "y":2.75},
                {"label":"N", "x":9.75, "y":2.75},
                {"label":"M", "x":10.75, "y":2.5},
                {"label":",", "x":11.75, "y":2},
                {"label":".", "x":12.75, "y":2.25},
                {"label":"/", "x":13.75, "y":3},

                {"label":"Ctrl", "x":1, "y":3.25},
                {"label":"Shift", "x":2, "y":3},
                {"label":"Alt", "x":5.25, "y":3},
                {"label":"Space", "x":6.25, "y":3.25, "h":1.5},
                {"label":"Enter", "x":7.5, "y":3.25, "h":1.5},
                {"label":"Super", "x":8.5, "y":3},
                {"label":"Shift", "x":11.75, "y":3},
                {"label":"Ctrl", "x":12.75, "y":3.25},

                {"label":"Lower", "x":5.25, "y":4},
                {"label":"Raise", "x":8.5, "y":4}
            ]
        }
    }
}
\ No newline at end of file
}

M keyboards/molecule/keymaps/default/keymap.c => keyboards/molecule/keymaps/default/keymap.c +35 -5
@@ 31,9 31,39 @@ enum custom_keycodes {
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
        [_QWERTY_BASE] = LAYOUT(KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_LCTL, KC_LSFT, MO(2), KC_LALT, KC_SPC, KC_ENT, KC_RGUI, MO(3), KC_RSFT, KC_RCTL),
        [_EUCALYN_BASE] = LAYOUT(KC_Q, KC_W, KC_COMM, KC_DOT, KC_SCLN, KC_M, KC_R, KC_D, KC_Y, KC_P, KC_A, KC_O, KC_E, KC_I, KC_U, KC_G, KC_T, KC_K, KC_S, KC_N, KC_Z, KC_X, KC_C, KC_V, KC_F, KC_B, KC_H, KC_J, KC_L, KC_SLSH, KC_LCTL, KC_LSFT, MO(2), KC_LALT, KC_SPC, KC_ENT, KC_RGUI, MO(3), KC_RSFT, KC_RCTL),
        [_LOWER] = LAYOUT(KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F2, KC_F3, KC_WH_U, KC_F4, KC_F5, KC_F6, KC_F7, KC_UP, KC_F8, KC_F9, KC_F1, KC_MS_BTN2, KC_WH_D, KC_MS_BTN1, KC_F11, KC_F12, KC_LEFT, KC_DOWN, KC_RGHT, KC_F10, KC_LCTL, KC_LSFT, KC_TRNS, KC_LALT, KC_SPC, KC_ENT, KC_RGUI, MO(4),  KC_RSFT, KC_RCTL),
        [_RAISE] = LAYOUT(KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_ESC, KC_DEL, KC_BSPC, KC_GRV, KC_BSLS, KC_MINS, KC_EQL, KC_QUOT, KC_LCBR, KC_RCBR, KC_CAPS, KC_TAB, KC_PSCR, KC_TILD, KC_PIPE, KC_UNDS, KC_PLUS, KC_DQUO, KC_LBRC, KC_RBRC, KC_LCTL, KC_LSFT, MO(4), KC_LALT, KC_SPC, KC_ENT, KC_RGUI, KC_TRNS, KC_RSFT, KC_RCTL),
		[_FN] = LAYOUT(KC_VOLU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BRIU, KC_VOLD, KC_NO, KC_NO, KC_NO, DF(0), DF(1), KC_NO, KC_NO, KC_NO, KC_BRID, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LCTL, KC_LSFT, KC_TRNS, KC_LALT, KC_SPC, KC_ENT, KC_RGUI, KC_TRNS, KC_RSFT, KC_RCTL)
    [_QWERTY_BASE] = LAYOUT(
        KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,                                        KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,
        KC_A,    KC_S,    KC_D,    KC_F,    KC_G,                                        KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN,
        KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,                                        KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,
                 KC_LCTL, KC_LSFT,                   KC_LALT, KC_SPC,  KC_ENT,  KC_RGUI,                   KC_RSFT, KC_RCTL,
                                                     MO(2),                     MO(3)
    ),
    [_EUCALYN_BASE] = LAYOUT(
        KC_Q,    KC_W,    KC_COMM, KC_DOT,  KC_SCLN,                                     KC_M,    KC_R,    KC_D,    KC_Y,    KC_P,
        KC_A,    KC_O,    KC_E,    KC_I,    KC_U,                                        KC_G,    KC_T,    KC_K,    KC_S,    KC_N,
        KC_Z,    KC_X,    KC_C,    KC_V,    KC_F,                                        KC_B,    KC_H,    KC_J,    KC_L,    KC_SLSH,
                 KC_LCTL, KC_LSFT,                   KC_LALT, KC_SPC,  KC_ENT,  KC_RGUI,                   KC_RSFT, KC_RCTL,
                                                     MO(2),                     MO(3)
    ),
    [_LOWER] = LAYOUT(
        KC_1,    KC_2,    KC_3,    KC_4,    KC_5,                                        KC_6,    KC_7,    KC_8,    KC_9,    KC_0,
        KC_F2,   KC_F3,   KC_WH_U, KC_F4,   KC_F5,                                       KC_F6,   KC_F7,   KC_UP,   KC_F8,   KC_F9,
        KC_F1,   KC_BTN2, KC_WH_D, KC_BTN1, KC_F11,                                      KC_F12,  KC_LEFT, KC_DOWN, KC_RGHT, KC_F10,
                 KC_LCTL, KC_LSFT,                   KC_LALT, KC_SPC,  KC_ENT,  KC_RGUI,                   KC_RSFT, KC_RCTL,
                                                     KC_TRNS,                   MO(4)
    ),
    [_RAISE] = LAYOUT(
        KC_EXLM, KC_AT,   KC_HASH, KC_DLR,  KC_PERC,                                     KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN,
        KC_ESC,  KC_DEL,  KC_BSPC, KC_GRV,  KC_BSLS,                                     KC_MINS, KC_EQL,  KC_QUOT, KC_LCBR, KC_RCBR,
        KC_CAPS, KC_TAB,  KC_PSCR, KC_TILD, KC_PIPE,                                     KC_UNDS, KC_PLUS, KC_DQUO, KC_LBRC, KC_RBRC,
                 KC_LCTL, KC_LSFT,                   KC_LALT, KC_SPC,  KC_ENT,  KC_RGUI,                   KC_RSFT, KC_RCTL,
                                                     MO(4),                     KC_TRNS
    ),
    [_FN] = LAYOUT(
        KC_VOLU, KC_NO,   KC_NO,   KC_NO,   KC_NO,                                       KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_BRIU,
        KC_VOLD, KC_NO,   KC_NO,   KC_NO,   DF(0),                                       DF(1),   KC_NO,   KC_NO,   KC_NO,   KC_BRID,
        KC_MUTE, KC_NO,   KC_NO,   KC_NO,   KC_NO,                                       KC_NO,   KC_NO,   KC_NO,   KC_NO,   KC_NO,
                 KC_LCTL, KC_LSFT,                   KC_LALT, KC_SPC,  KC_ENT,  KC_RGUI,                   KC_RSFT, KC_RCTL,
                                                     KC_TRNS,                   KC_TRNS
    )
};

M keyboards/molecule/molecule.h => keyboards/molecule/molecule.h +5 -4
@@ 27,10 27,11 @@
 * represents the switch matrix.
 */
#define LAYOUT( \
  L00, L01, L02, L03, L04,      R00, R01, R02, R03, R04, \
  L10, L11, L12, L13, L14,      R10, R11, R12, R13, R14, \
  L20, L21, L22, L23, L24,      R20, R21, R22, R23, R24, \
  L30, L31, L32, L33, L34,      R30, R31, R32, R33, R34  \
  L00, L01, L02, L03, L04,                     R00, R01, R02, R03, R04, \
  L10, L11, L12, L13, L14,                     R10, R11, R12, R13, R14, \
  L20, L21, L22, L23, L24,                     R20, R21, R22, R23, R24, \
       L30, L31,           L33, L34, R30, R31,           R33, R34,      \
                           L32,           R32                           \
  ) \
  { \
    { L00, L01, L02, L03, L04, R00, R01, R02, R03, R04 }, \