~ruther/qmk_firmware

3bc4aeac6cc940d10bc73589ea67e0eaa7c7a878 — James Young 2 years ago dedacb0
GrayStudio Aero 75 Refactor and Touch-Up (#20640)

* add matrix_diagram.md

* info.json: apply friendly formatting

* rename LAYOUT_all to LAYOUT_ansi_blocker

Existing codebase only supports the Hotswap version, but there is a Soldered version that supports additional layouts.

* refactor keymaps

- use four-space indent
- update grid-alignment of keycodes
- remove trailing spaces

* flesh-out keyboard readme
M keyboards/gray_studio/aero75/info.json => keyboards/gray_studio/aero75/info.json +85 -82
@@ 18,100 18,103 @@
    "diode_direction": "COL2ROW",
    "processor": "STM32F103",
    "bootloader": "stm32duino",
    "layout_aliases": {
        "LAYOUT_all": "LAYOUT_ansi_blocker"
    },
    "layouts": {
        "LAYOUT_all": {
        "LAYOUT_ansi_blocker": {
            "layout": [
                {"matrix": [0, 0], "x": 0, "y": 0},
                {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},

                {"matrix": [0, 1], "x": 1.5, "y": 0},
                {"matrix": [0, 2], "x": 2.5, "y": 0},
                {"matrix": [0, 3], "x": 3.5, "y": 0},
                {"matrix": [0, 4], "x": 4.5, "y": 0},
                {"label": "F1", "matrix": [0, 1], "x": 1.5, "y": 0},
                {"label": "F2", "matrix": [0, 2], "x": 2.5, "y": 0},
                {"label": "F3", "matrix": [0, 3], "x": 3.5, "y": 0},
                {"label": "F4", "matrix": [0, 4], "x": 4.5, "y": 0},

                {"matrix": [0, 5], "x": 6, "y": 0},
                {"matrix": [0, 6], "x": 7, "y": 0},
                {"matrix": [0, 7], "x": 8, "y": 0},
                {"matrix": [0, 8], "x": 9, "y": 0},
                {"label": "F5", "matrix": [0, 5], "x": 6, "y": 0},
                {"label": "F6", "matrix": [0, 6], "x": 7, "y": 0},
                {"label": "F7", "matrix": [0, 7], "x": 8, "y": 0},
                {"label": "F8", "matrix": [0, 8], "x": 9, "y": 0},

                {"matrix": [0, 9], "x": 10.5, "y": 0},
                {"matrix": [0, 10], "x": 11.5, "y": 0},
                {"matrix": [0, 11], "x": 12.5, "y": 0},
                {"matrix": [0, 13], "x": 13.5, "y": 0},
                {"label": "F9", "matrix": [0, 9], "x": 10.5, "y": 0},
                {"label": "F10", "matrix": [0, 10], "x": 11.5, "y": 0},
                {"label": "F11", "matrix": [0, 11], "x": 12.5, "y": 0},
                {"label": "F12", "matrix": [0, 13], "x": 13.5, "y": 0},

                {"matrix": [0, 15], "x": 15, "y": 0},
                {"label": "PrtSc", "matrix": [0, 15], "x": 15, "y": 0},

                {"matrix": [1, 0], "x": 0, "y": 1.25},
                {"matrix": [1, 1], "x": 1, "y": 1.25},
                {"matrix": [1, 2], "x": 2, "y": 1.25},
                {"matrix": [1, 3], "x": 3, "y": 1.25},
                {"matrix": [1, 4], "x": 4, "y": 1.25},
                {"matrix": [1, 5], "x": 5, "y": 1.25},
                {"matrix": [1, 6], "x": 6, "y": 1.25},
                {"matrix": [1, 7], "x": 7, "y": 1.25},
                {"matrix": [1, 8], "x": 8, "y": 1.25},
                {"matrix": [1, 9], "x": 9, "y": 1.25},
                {"matrix": [1, 10], "x": 10, "y": 1.25},
                {"matrix": [1, 11], "x": 11, "y": 1.25},
                {"matrix": [1, 12], "x": 12, "y": 1.25},
                {"matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
                {"matrix": [1, 15], "x": 15, "y": 1.25},
                {"label": "`", "matrix": [1, 0], "x": 0, "y": 1.25},
                {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.25},
                {"label": "2", "matrix": [1, 2], "x": 2, "y": 1.25},
                {"label": "3", "matrix": [1, 3], "x": 3, "y": 1.25},
                {"label": "4", "matrix": [1, 4], "x": 4, "y": 1.25},
                {"label": "5", "matrix": [1, 5], "x": 5, "y": 1.25},
                {"label": "6", "matrix": [1, 6], "x": 6, "y": 1.25},
                {"label": "7", "matrix": [1, 7], "x": 7, "y": 1.25},
                {"label": "8", "matrix": [1, 8], "x": 8, "y": 1.25},
                {"label": "9", "matrix": [1, 9], "x": 9, "y": 1.25},
                {"label": "0", "matrix": [1, 10], "x": 10, "y": 1.25},
                {"label": "-", "matrix": [1, 11], "x": 11, "y": 1.25},
                {"label": "=", "matrix": [1, 12], "x": 12, "y": 1.25},
                {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 1.25, "w": 2},
                {"label": "Home", "matrix": [1, 15], "x": 15, "y": 1.25},

                {"matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
                {"matrix": [2, 2], "x": 1.5, "y": 2.25},
                {"matrix": [2, 3], "x": 2.5, "y": 2.25},
                {"matrix": [2, 4], "x": 3.5, "y": 2.25},
                {"matrix": [2, 5], "x": 4.5, "y": 2.25},
                {"matrix": [2, 6], "x": 5.5, "y": 2.25},
                {"matrix": [2, 7], "x": 6.5, "y": 2.25},
                {"matrix": [2, 8], "x": 7.5, "y": 2.25},
                {"matrix": [2, 9], "x": 8.5, "y": 2.25},
                {"matrix": [2, 10], "x": 9.5, "y": 2.25},
                {"matrix": [2, 11], "x": 10.5, "y": 2.25},
                {"matrix": [2, 12], "x": 11.5, "y": 2.25},
                {"matrix": [2, 13], "x": 12.5, "y": 2.25},
                {"matrix": [2, 14], "x": 13.5, "y": 2.25, "w": 1.5},
                {"matrix": [2, 15], "x": 15, "y": 2.25},
                {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5},
                {"label": "Q", "matrix": [2, 2], "x": 1.5, "y": 2.25},
                {"label": "W", "matrix": [2, 3], "x": 2.5, "y": 2.25},
                {"label": "E", "matrix": [2, 4], "x": 3.5, "y": 2.25},
                {"label": "R", "matrix": [2, 5], "x": 4.5, "y": 2.25},
                {"label": "T", "matrix": [2, 6], "x": 5.5, "y": 2.25},
                {"label": "Y", "matrix": [2, 7], "x": 6.5, "y": 2.25},
                {"label": "U", "matrix": [2, 8], "x": 7.5, "y": 2.25},
                {"label": "I", "matrix": [2, 9], "x": 8.5, "y": 2.25},
                {"label": "O", "matrix": [2, 10], "x": 9.5, "y": 2.25},
                {"label": "P", "matrix": [2, 11], "x": 10.5, "y": 2.25},
                {"label": "[", "matrix": [2, 12], "x": 11.5, "y": 2.25},
                {"label": "]", "matrix": [2, 13], "x": 12.5, "y": 2.25},
                {"label": "\\", "matrix": [2, 14], "x": 13.5, "y": 2.25, "w": 1.5},
                {"label": "Page Up", "matrix": [2, 15], "x": 15, "y": 2.25},

                {"matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
                {"matrix": [3, 2], "x": 1.75, "y": 3.25},
                {"matrix": [3, 3], "x": 2.75, "y": 3.25},
                {"matrix": [3, 4], "x": 3.75, "y": 3.25},
                {"matrix": [3, 5], "x": 4.75, "y": 3.25},
                {"matrix": [3, 6], "x": 5.75, "y": 3.25},
                {"matrix": [3, 7], "x": 6.75, "y": 3.25},
                {"matrix": [3, 8], "x": 7.75, "y": 3.25},
                {"matrix": [3, 9], "x": 8.75, "y": 3.25},
                {"matrix": [3, 10], "x": 9.75, "y": 3.25},
                {"matrix": [3, 11], "x": 10.75, "y": 3.25},
                {"matrix": [3, 12], "x": 11.75, "y": 3.25},
                {"matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
                {"matrix": [3, 15], "x": 15, "y": 3.25},
                {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.75},
                {"label": "A", "matrix": [3, 2], "x": 1.75, "y": 3.25},
                {"label": "S", "matrix": [3, 3], "x": 2.75, "y": 3.25},
                {"label": "D", "matrix": [3, 4], "x": 3.75, "y": 3.25},
                {"label": "F", "matrix": [3, 5], "x": 4.75, "y": 3.25},
                {"label": "G", "matrix": [3, 6], "x": 5.75, "y": 3.25},
                {"label": "H", "matrix": [3, 7], "x": 6.75, "y": 3.25},
                {"label": "J", "matrix": [3, 8], "x": 7.75, "y": 3.25},
                {"label": "K", "matrix": [3, 9], "x": 8.75, "y": 3.25},
                {"label": "L", "matrix": [3, 10], "x": 9.75, "y": 3.25},
                {"label": ";", "matrix": [3, 11], "x": 10.75, "y": 3.25},
                {"label": "'", "matrix": [3, 12], "x": 11.75, "y": 3.25},
                {"label": "Enter", "matrix": [3, 13], "x": 12.75, "y": 3.25, "w": 2.25},
                {"label": "Page Down", "matrix": [3, 15], "x": 15, "y": 3.25},

                {"matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
                {"matrix": [4, 2], "x": 2.25, "y": 4.25},
                {"matrix": [4, 3], "x": 3.25, "y": 4.25},
                {"matrix": [4, 4], "x": 4.25, "y": 4.25},
                {"matrix": [4, 5], "x": 5.25, "y": 4.25},
                {"matrix": [4, 6], "x": 6.25, "y": 4.25},
                {"matrix": [4, 7], "x": 7.25, "y": 4.25},
                {"matrix": [4, 8], "x": 8.25, "y": 4.25},
                {"matrix": [4, 9], "x": 9.25, "y": 4.25},
                {"matrix": [4, 10], "x": 10.25, "y": 4.25},
                {"matrix": [4, 11], "x": 11.25, "y": 4.25},
                {"matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 1.75},
                {"matrix": [4, 14], "x": 14, "y": 4.25},
                {"matrix": [4, 15], "x": 15, "y": 4.25},
                {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.25, "w": 2.25},
                {"label": "Z", "matrix": [4, 2], "x": 2.25, "y": 4.25},
                {"label": "X", "matrix": [4, 3], "x": 3.25, "y": 4.25},
                {"label": "C", "matrix": [4, 4], "x": 4.25, "y": 4.25},
                {"label": "V", "matrix": [4, 5], "x": 5.25, "y": 4.25},
                {"label": "B", "matrix": [4, 6], "x": 6.25, "y": 4.25},
                {"label": "N", "matrix": [4, 7], "x": 7.25, "y": 4.25},
                {"label": "M", "matrix": [4, 8], "x": 8.25, "y": 4.25},
                {"label": ",", "matrix": [4, 9], "x": 9.25, "y": 4.25},
                {"label": ".", "matrix": [4, 10], "x": 10.25, "y": 4.25},
                {"label": "/", "matrix": [4, 11], "x": 11.25, "y": 4.25},
                {"label": "Shift", "matrix": [4, 13], "x": 12.25, "y": 4.25, "w": 1.75},
                {"label": "\u2191", "matrix": [4, 14], "x": 14, "y": 4.25},
                {"label": "End", "matrix": [4, 15], "x": 15, "y": 4.25},

                {"matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
                {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
                {"matrix": [5, 3], "x": 2.5, "y": 5.25, "w": 1.25},
                {"matrix": [5, 7], "x": 3.75, "y": 5.25, "w": 6.25},
                {"matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25},
                {"matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25},
                {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.25, "w": 1.25},
                {"label": "GUI", "matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25},
                {"label": "Alt", "matrix": [5, 3], "x": 2.5, "y": 5.25, "w": 1.25},
                {"label": "Space", "matrix": [5, 7], "x": 3.75, "y": 5.25, "w": 6.25},
                {"label": "Alt", "matrix": [5, 10], "x": 10, "y": 5.25, "w": 1.25},
                {"label": "Fn", "matrix": [5, 11], "x": 11.25, "y": 5.25, "w": 1.25},

                {"matrix": [5, 13], "x": 13, "y": 5.25},
                {"matrix": [5, 14], "x": 14, "y": 5.25},
                {"matrix": [5, 15], "x": 15, "y": 5.25}
                {"label": "\u2190", "matrix": [5, 13], "x": 13, "y": 5.25},
                {"label": "\u2193", "matrix": [5, 14], "x": 14, "y": 5.25},
                {"label": "\u2192", "matrix": [5, 15], "x": 15, "y": 5.25}
            ]
        }
    }

M keyboards/gray_studio/aero75/keymaps/default/keymap.c => keyboards/gray_studio/aero75/keymaps/default/keymap.c +37 -36
@@ 5,45 5,46 @@

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

  [0] = LAYOUT_all(
    KC_ESC,   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_GRV,   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_HOME,
    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_PGUP,
    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_PGDN,
    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_UP,    KC_END,
    KC_LCTL,  KC_LGUI,            KC_LALT,                                KC_SPC,                       KC_RALT,  MO(1),              KC_LEFT,  KC_DOWN,  KC_RGHT
  ),

  [1] = LAYOUT_all(
    _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,            QK_BOOT,
    _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,
    _______,            RGB_TOG,  RGB_MOD,  RGB_HUI,  RGB_HUD,  RGB_SAI,  RGB_SAD,  RGB_VAI,  RGB_VAD,  _______,  _______,  _______,  _______,  _______,  _______,
    _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,
    _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,  _______,  _______,
    _______,  _______,            _______,                                _______,                      _______,  _______,            _______,  _______,  _______
  ),

  [2] = LAYOUT_all(
    _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,            _______,
    _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,
    _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,
    _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,
    _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,  _______,  _______,
    _______,  _______,            _______,                                _______,                      _______,  _______,            _______,  _______,  _______
  ),
 
  [3] = LAYOUT_all(
    _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,            _______,
    _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,
    _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,
    _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,
    _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,  _______,  _______,
    _______,  _______,            _______,                                _______,                      _______,  _______,            _______,  _______,  _______
  ),    
    [0] = LAYOUT_ansi_blocker(
        KC_ESC,           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_GRV,  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_HOME,
        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_PGUP,
        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_PGDN,
        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_UP,   KC_END,
        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                    KC_RALT, MO(1),            KC_LEFT, KC_DOWN, KC_RGHT
    ),

    [1] = LAYOUT_ansi_blocker(
        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______,
        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, _______, _______,                            _______,                   _______, _______,          _______, _______, _______
    ),

    [2] = LAYOUT_ansi_blocker(
        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______,
        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, _______, _______,                            _______,                   _______, _______,          _______, _______, _______
    ),

    [3] = LAYOUT_ansi_blocker(
        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______,
        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, _______, _______,                            _______,                   _______, _______,          _______, _______, _______
    ),

};
const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
    {0,1, HSV_WHITE}
);     
);
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
    my_capslock_layer
);

M keyboards/gray_studio/aero75/keymaps/via/keymap.c => keyboards/gray_studio/aero75/keymaps/via/keymap.c +37 -36
@@ 5,45 5,46 @@

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

  [0] = LAYOUT_all(
    KC_ESC,   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_GRV,   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_HOME,
    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_PGUP,
    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_PGDN,
    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_UP,    KC_END,
    KC_LCTL,  KC_LGUI,            KC_LALT,                                KC_SPC,                       KC_RALT,  MO(1),              KC_LEFT,  KC_DOWN,  KC_RGHT
  ),

  [1] = LAYOUT_all(
    _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,            QK_BOOT,
    _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,
    _______,            RGB_TOG,  RGB_MOD,  RGB_HUI,  RGB_HUD,  RGB_SAI,  RGB_SAD,  RGB_VAI,  RGB_VAD,  _______,  _______,  _______,  _______,  _______,  _______,
    _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,
    _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,  _______,  _______,
    _______,  _______,            _______,                                _______,                      _______,  _______,            _______,  _______,  _______
  ),

  [2] = LAYOUT_all(
    _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,            _______,
    _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,
    _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,
    _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,
    _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,  _______,  _______,
    _______,  _______,            _______,                                _______,                      _______,  _______,            _______,  _______,  _______
  ),
 
  [3] = LAYOUT_all(
    _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,            _______,
    _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,
    _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,
    _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,
    _______,            _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,  _______,            _______,  _______,  _______,
    _______,  _______,            _______,                                _______,                      _______,  _______,            _______,  _______,  _______
  ),    
    [0] = LAYOUT_ansi_blocker(
        KC_ESC,           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_GRV,  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_HOME,
        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_PGUP,
        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_PGDN,
        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_UP,   KC_END,
        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                    KC_RALT, MO(1),            KC_LEFT, KC_DOWN, KC_RGHT
    ),

    [1] = LAYOUT_ansi_blocker(
        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______,
        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, _______, _______,                            _______,                   _______, _______,          _______, _______, _______
    ),

    [2] = LAYOUT_ansi_blocker(
        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______,
        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, _______, _______,                            _______,                   _______, _______,          _______, _______, _______
    ),

    [3] = LAYOUT_ansi_blocker(
        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______,
        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
        _______, _______, _______,                            _______,                   _______, _______,          _______, _______, _______
    ),

};
const rgblight_segment_t PROGMEM my_capslock_layer[] = RGBLIGHT_LAYER_SEGMENTS(
    {0,1, HSV_WHITE}
);     
);
const rgblight_segment_t* const PROGMEM my_rgb_layers[] = RGBLIGHT_LAYERS_LIST(
    my_capslock_layer
);

A keyboards/gray_studio/aero75/matrix_diagram.md => keyboards/gray_studio/aero75/matrix_diagram.md +18 -0
@@ 0,0 1,18 @@
# Matrix Diagram for GrayStudio Aero 75 Hotswap

```
┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┐
│00 │ │01 │02 │03 │04 │ │05 │06 │07 │08 │ │09 │0A │0B │0D │ │0F │
└───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┘
┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐
│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D     │1F │
├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤
│20   │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │2E   │2F │
├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
│30    │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D      │3F │
├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
│40      │42 │43 │44 │45 │46 │47 │48 │49 │4A │4B │4D    │4E │4F │
├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
│50  │51  │53  │57                      │5A  │5B  │ │5D │5E │5F │
└────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
```

M keyboards/gray_studio/aero75/readme.md => keyboards/gray_studio/aero75/readme.md +27 -0
@@ 1,1 1,28 @@
# Gray Studio Aero 75

![Gray Studio Aero 75](https://graystudio.site/wp-content/uploads/2022/09/aero75-png-1024x442.png)

A 75% keyboard featuring an anodized aluminum case around a gasket-mounted, flex-cut PCB.

* Keyboard Maintainer: [edwardslau](https://github.com/edwardslau)
* Hardware Supported: Aero 75 Hotswap (STM32F103)
  * Aero 75 Soldered version is **not currently supported**.
* Hardware Availability: [GrayStudio](https://graystudio.site/en/aero75/)

Make example for this keyboard (after setting up your build environment):

    make gray_studio/aero75:default

Flashing example for this keyboard:

    make gray_studio/aero75:default:flash

## Bootloader

Enter the bootloader in 3 ways:

* **Bootmagic reset**: Hold down the top-left key (Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available (top-right on the Function layer by default)

See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).