~ruther/qmk_firmware

8a5e8ed88e818e2a4ccd1349ea63cb35042e674f — 4pplet 2 years ago fb6557a
Adding Unextended Standard PCB (#20190)

Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: 4pplet <4pplet@protonmail.com>
Co-authored-by: 4pplet <stefan.ess@gmail.com>
A keyboards/4pplet/unextended_std/keymaps/default/keymap.c => keyboards/4pplet/unextended_std/keymaps/default/keymap.c +34 -0
@@ 0,0 1,34 @@
/*
Copyright 2023 Stefan Sundin "4pplet" <4pplet@protonmail.com>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// main layer
[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_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_LCTL,  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_UP,
  MO(1),    KC_LALT,  KC_LGUI,  KC_GRV,             KC_SPC,                KC_BSLS,              KC_LEFT,    KC_RIGHT,KC_DOWN, KC_UP),
// basic function layer
[1] = LAYOUT_all(
  QK_BOOT,  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_TRNS,
  KC_TRNS,  KC_TRNS,  KC_UP,    KC_TRNS,  KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,    KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS,
  KC_CAPS,  KC_LEFT,  KC_DOWN,  KC_RIGHT, KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,    KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS,
  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,    KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS,
  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,             KC_TRNS,              KC_TRNS,   KC_TRNS,   KC_TRNS,    KC_TRNS, KC_TRNS)
};

A keyboards/4pplet/unextended_std/keymaps/m0116/keymap.c => keyboards/4pplet/unextended_std/keymaps/m0116/keymap.c +40 -0
@@ 0,0 1,40 @@
/*
Copyright 2023 Stefan Sundin "4pplet" <4pplet@protonmail.com>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// main layer
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────┐
* │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Delete│
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │    │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴    │
* │ Ctrl │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───────┤
* │ Shift  │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │   Shift │
* ├────┬───│───┴┬──┴┬──┴───┴───┴───┴─┬─┴─┬─┴──┬┴───┴┬────┬───┤
* │Caps│Alt│Gui │ ` │     Space      │ \ │Left│Right│Down│ Up│
* └────┴───┴────┴───┴────────────────┴───┴────┴─────┴────┴───┘
*/
[0] = LAYOUT_m0116(
  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_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_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,
  KC_CAPS,  KC_LALT,  KC_LGUI,  KC_GRV,             KC_SPC,                KC_BSLS,              KC_LEFT,    KC_RIGHT,KC_DOWN, KC_UP)
};

A keyboards/4pplet/unextended_std/keymaps/m0118/keymap.c => keyboards/4pplet/unextended_std/keymaps/m0118/keymap.c +39 -0
@@ 0,0 1,39 @@
/*
Copyright 2023 Stefan Sundin "4pplet" <4pplet@protonmail.com>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────┐
* │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Backsp│
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬────┤
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │    │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐Ent│
* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ \ │   │
* ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───│───┤
* │Shft│ ` │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift│ Up│
* ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴┬──┴─┬─┴──┬┴────┬────┤
* │Ctrl│Alt │GUI │        Space         │GUI │Left│Right│Down│
* └────┴────┴────┴──────────────────────┴────┴────┴─────┴────┘
*/
[0] = LAYOUT_m0118(
  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_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_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_NUHS,
  KC_LSFT,  KC_GRV,   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_LCTL,  KC_LALT,  KC_LGUI,            KC_SPC,                                                KC_RGUI,    KC_LEFT, KC_RIGHT,KC_DOWN)
};

A keyboards/4pplet/unextended_std/keymaps/via/keymap.c => keyboards/4pplet/unextended_std/keymaps/via/keymap.c +48 -0
@@ 0,0 1,48 @@
/*
Copyright 2023 Stefan Sundin "4pplet" <4pplet@protonmail.com>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
#include QMK_KEYBOARD_H

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
// main layer
[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_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_LCTL,  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_UP,
  MO(1),    KC_LALT,  KC_LGUI,  KC_GRV,             KC_SPC,                KC_BSLS,              KC_LEFT,    KC_RIGHT,KC_DOWN, KC_UP),
// basic function layer
[1] = LAYOUT_all(
  QK_BOOT,  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_TRNS,
  KC_TRNS,  KC_TRNS,  KC_UP,    KC_TRNS,  KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,    KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS,
  KC_CAPS,  KC_LEFT,  KC_DOWN,  KC_RIGHT, KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,    KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS,
  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,    KC_TRNS, KC_TRNS,  KC_TRNS, KC_TRNS,
  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,             KC_TRNS,              KC_TRNS,   KC_TRNS,   KC_TRNS,    KC_TRNS, KC_TRNS),
// extra layer for VIA
[2] = LAYOUT_all(
  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,    KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,    KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,    KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,    KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,             KC_TRNS,              KC_TRNS,              KC_TRNS,    KC_TRNS,  KC_TRNS,  KC_TRNS),
// extra layer for VIA
[3] = LAYOUT_all(
  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,    KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,    KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,    KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,   KC_TRNS,    KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,
  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,             KC_TRNS,              KC_TRNS,              KC_TRNS,    KC_TRNS,  KC_TRNS,  KC_TRNS)
};

A keyboards/4pplet/unextended_std/keymaps/via/rules.mk => keyboards/4pplet/unextended_std/keymaps/via/rules.mk +1 -0
@@ 0,0 1,1 @@
VIA_ENABLE = yes

A keyboards/4pplet/unextended_std/readme.md => keyboards/4pplet/unextended_std/readme.md +23 -0
@@ 0,0 1,23 @@
# Unextended Standard PCB

PCB for the Unextended Standard Project. The PCB enables use of M0116, M0118, IIc and NeXT keycaps and is designed to fit in the open sourced Unextended case.

* Keyboard Maintainer: [4pplet](https://github.com/4pplet)
* Hardware Supported: [Unextended Standard PCB](https://github.com/4pplet/Unextended-Standard-PCB)

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

    make 4pplet/unextended_std/rev_a:default

Flashing example for this keyboard:

    make 4pplet/unextended_std/rev_a:default:flash

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).

## Bootloader
Enter the bootloader in 3 ways:

* **Bootmagic reset**: Hold down the Escape-key and plug in the keyboard
* **Physical reset header**: Briefly short the header labled "BL/reset" on the PCB
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

A keyboards/4pplet/unextended_std/rev_a/config.h => keyboards/4pplet/unextended_std/rev_a/config.h +19 -0
@@ 0,0 1,19 @@
/*
Copyright 2023 Stefan Sundin "4pplet" <mail@4pplet.com>

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once

#define WS2812_EXTERNAL_PULLUP

A keyboards/4pplet/unextended_std/rev_a/info.json => keyboards/4pplet/unextended_std/rev_a/info.json +262 -0
@@ 0,0 1,262 @@
{
    "keyboard_name": "Unextended Standard Rev A",
    "manufacturer": "4pplet",
    "url": "https://github.com/4pplet/Unextended",
    "maintainer": "4pplet",
    "usb": {
        "vid": "0x4444",
        "pid": "0x0012",
        "device_version": "0.0.1"
    },
    "processor": "STM32F072",
    "bootloader": "stm32-dfu",

    "matrix_pins": {
        "rows":
        ["B14","B15","B6","B5","B4"],
        "cols":
        ["B2","A4","A1","A2","F1","F0","C15","C14","C13","B9","B8","B7","B12","B3"]
    },

    "diode_direction": "COL2ROW",

    "features": {
        "bootmagic": true,
        "mousekey": true,
        "extrakey": true,
        "console": false,
        "command": false,
        "nkro": true,
        "backlight": false,
        "rgblight": true,
        "audio": false
    },

    "rgblight": {
        "pin": "A8",
        "led_count": 16,
        "animations": {
            "alternating": true,
            "breathing": true,
            "christmas": true,
            "knight": true,
            "rainbow_mood": true,
            "rainbow_swirl": true,
            "rgb_test": true,
            "snake": true,
            "static_gradient": true,
            "twinkle": true
        }
    },

    "indicators": {
        "caps_lock": "A10",
        "on_state": 0
    },

    "layouts": {
        "LAYOUT_all": {
            "layout": [
                {"label":"Esc", "matrix": [0, 0], "x":0, "y":0},
                {"label":"!", "matrix": [0, 1], "x":1, "y":0},
                {"label":"@", "matrix": [0, 2], "x":2, "y":0},
                {"label":"#", "matrix": [0, 3], "x":3, "y":0},
                {"label":"$", "matrix": [0, 4], "x":4, "y":0},
                {"label":"%", "matrix": [0, 5], "x":5, "y":0},
                {"label":"^", "matrix": [0, 6], "x":6, "y":0},
                {"label":"&", "matrix": [0, 7], "x":7, "y":0},
                {"label":"*", "matrix": [0, 8], "x":8, "y":0},
                {"label":"(", "matrix": [0, 9], "x":9, "y":0},
                {"label":")", "matrix": [0, 10], "x":10, "y":0},
                {"label":"_", "matrix": [0, 11], "x":11, "y":0},
                {"label":"+", "matrix": [0, 12], "x":12, "y":0},
                {"label":"Backsp", "matrix": [0, 13], "x":13, "y":0, "w":1.5},
                {"label":"Tab", "matrix": [1, 0], "x":0, "y":1, "w":1.5},
                {"label":"Q", "matrix": [1, 1], "x":1.5, "y":1},
                {"label":"W", "matrix": [1, 2], "x":2.5, "y":1},
                {"label":"E", "matrix": [1, 3], "x":3.5, "y":1},
                {"label":"R", "matrix": [1, 4], "x":4.5, "y":1},
                {"label":"T", "matrix": [1, 5], "x":5.5, "y":1},
                {"label":"Y", "matrix": [1, 6], "x":6.5, "y":1},
                {"label":"U", "matrix": [1, 7], "x":7.5, "y":1},
                {"label":"I", "matrix": [1, 8], "x":8.5, "y":1},
                {"label":"O", "matrix": [1, 9], "x":9.5, "y":1},
                {"label":"P", "matrix": [1, 10], "x":10.5, "y":1},
                {"label":"{", "matrix": [1, 11], "x":11.5, "y":1},
                {"label":"}", "matrix": [1, 12], "x":12.5, "y":1},
                {"label":"|", "matrix": [1, 13], "x":13.5, "y":1},
                {"label":"Caps Lock", "matrix": [2, 0], "x":0, "y":2, "w":1.75},
                {"label":"A", "matrix": [2, 1], "x":1.75, "y":2},
                {"label":"S", "matrix": [2, 2], "x":2.75, "y":2},
                {"label":"D", "matrix": [2, 3], "x":3.75, "y":2},
                {"label":"F", "matrix": [2, 4], "x":4.75, "y":2},
                {"label":"G", "matrix": [2, 5], "x":5.75, "y":2},
                {"label":"H", "matrix": [2, 6], "x":6.75, "y":2},
                {"label":"J", "matrix": [2, 7], "x":7.75, "y":2},
                {"label":"K", "matrix": [2, 8], "x":8.75, "y":2},
                {"label":"L", "matrix": [2, 9], "x":9.75, "y":2},
                {"label":":", "matrix": [2, 10], "x":10.75, "y":2},
                {"label":"\"", "matrix": [2, 11], "x":11.75, "y":2},
                {"label":"nubs", "matrix": [3, 13], "x":12.75, "y":2},
                {"label":"Enter", "matrix": [2, 13], "x":13.75, "y":2, "w":0.75},
                {"label":"Shift", "matrix": [3, 0], "x":0, "y":3, "w":1.25},
                {"label":"nubs", "matrix": [3, 1], "x":1.25, "y":3},
                {"label":"Z", "matrix": [3, 2], "x":2.25, "y":3},
                {"label":"X", "matrix": [3, 3], "x":3.25, "y":3},
                {"label":"C", "matrix": [3, 4], "x":4.25, "y":3},
                {"label":"V", "matrix": [3, 5], "x":5.25, "y":3},
                {"label":"B", "matrix": [3, 6], "x":6.25, "y":3},
                {"label":"N", "matrix": [3, 7], "x":7.25, "y":3},
                {"label":"M", "matrix": [3, 8], "x":8.25, "y":3},
                 {"label":"<", "matrix": [3, 9], "x":9.25, "y":3},
                 {"label":">", "matrix": [3, 10], "x":10.25, "y":3},
                 {"label":"?", "matrix": [3, 11], "x":11.25, "y":3},
                 {"label":"Shift", "matrix": [3, 12], "x":12.25, "y":3, "w":1.25},
                 {"label":"\u2191", "matrix": [4, 13], "x":13.5, "y":3},
                 {"label":"Caps", "matrix": [4, 0], "x":0, "y":4},
                 {"label":"opt", "matrix": [4, 1], "x":1, "y":4},
                 {"label":"Cmd", "matrix": [4, 2], "x":2, "y":4, "w":1.75},
                 {"label":"`", "matrix": [4, 3], "x":3.75, "y":4},
                 {"label":"Space", "matrix": [4, 6], "x":4.75, "y":4, "w":4.75},
                 {"label":"\\", "matrix": [4, 8], "x":9.5, "y":4},
                 {"label":"\u2190", "matrix": [4, 9], "x":10.5, "y":4},
                 {"label":"\u2192", "matrix": [4, 10], "x":11.5, "y":4},
                 {"label":"\u2193", "matrix": [4, 11], "x":12.5, "y":4},
                 {"label":"\u2191", "matrix": [4, 12], "x":13.5, "y":4}
            ]
        },
        "LAYOUT_m0116": {
            "layout": [
                {"label":"Esc", "matrix": [0, 0], "x":0, "y":0},
                {"label":"!", "matrix": [0, 1], "x":1, "y":0},
                {"label":"@", "matrix": [0, 2], "x":2, "y":0},
                {"label":"#", "matrix": [0, 3], "x":3, "y":0},
                {"label":"$", "matrix": [0, 4], "x":4, "y":0},
                {"label":"%", "matrix": [0, 5], "x":5, "y":0},
                {"label":"^", "matrix": [0, 6], "x":6, "y":0},
                {"label":"&", "matrix": [0, 7], "x":7, "y":0},
                {"label":"*", "matrix": [0, 8], "x":8, "y":0},
                {"label":"(", "matrix": [0, 9], "x":9, "y":0},
                {"label":")", "matrix": [0, 10], "x":10, "y":0},
                {"label":"_", "matrix": [0, 11], "x":11, "y":0},
                {"label":"+", "matrix": [0, 12], "x":12, "y":0},
                {"label":"Backsp", "matrix": [0, 13], "x":13, "y":0, "w":1.5},
                {"label":"Tab", "matrix": [1, 0], "x":0, "y":1, "w":1.5},
                {"label":"Q", "matrix": [1, 1], "x":1.5, "y":1},
                {"label":"W", "matrix": [1, 2], "x":2.5, "y":1},
                {"label":"E", "matrix": [1, 3], "x":3.5, "y":1},
                {"label":"R", "matrix": [1, 4], "x":4.5, "y":1},
                {"label":"T", "matrix": [1, 5], "x":5.5, "y":1},
                {"label":"Y", "matrix": [1, 6], "x":6.5, "y":1},
                {"label":"U", "matrix": [1, 7], "x":7.5, "y":1},
                {"label":"I", "matrix": [1, 8], "x":8.5, "y":1},
                {"label":"O", "matrix": [1, 9], "x":9.5, "y":1},
                {"label":"P", "matrix": [1, 10], "x":10.5, "y":1},
                {"label":"{", "matrix": [1, 11], "x":11.5, "y":1},
                {"label":"}", "matrix": [1, 12], "x":12.5, "y":1},
                {"label":"Enter", "matrix": [2, 13], "x":13.5, "y":1, "h":2},
                {"label":"Control", "matrix": [2, 0], "x":0, "y":2, "w":1.75},
                {"label":"A", "matrix": [2, 1], "x":1.75, "y":2},
                {"label":"S", "matrix": [2, 2], "x":2.75, "y":2},
                {"label":"D", "matrix": [2, 3], "x":3.75, "y":2},
                {"label":"F", "matrix": [2, 4], "x":4.75, "y":2},
                {"label":"G", "matrix": [2, 5], "x":5.75, "y":2},
                {"label":"H", "matrix": [2, 6], "x":6.75, "y":2},
                {"label":"J", "matrix": [2, 7], "x":7.75, "y":2},
                {"label":"K", "matrix": [2, 8], "x":8.75, "y":2},
                {"label":"L", "matrix": [2, 9], "x":9.75, "y":2},
                {"label":":", "matrix": [2, 10], "x":10.75, "y":2},
                {"label":"\"", "matrix": [2, 11], "x":11.75, "y":2},
                {"label":"Shift", "matrix": [3, 0], "x":0, "y":3, "w":2.25},
                {"label":"Z", "matrix": [3, 2], "x":2.25, "y":3},
                {"label":"X", "matrix": [3, 3], "x":3.25, "y":3},
                {"label":"C", "matrix": [3, 4], "x":4.25, "y":3},
                {"label":"V", "matrix": [3, 5], "x":5.25, "y":3},
                {"label":"B", "matrix": [3, 6], "x":6.25, "y":3},
                {"label":"N", "matrix": [3, 7], "x":7.25, "y":3},
                {"label":"M", "matrix": [3, 8], "x":8.25, "y":3},
                {"label":"<", "matrix": [3, 9], "x":9.25, "y":3},
                {"label":">", "matrix": [3, 10], "x":10.25, "y":3},
                {"label":"?", "matrix": [3, 11], "x":11.25, "y":3},
                {"label":"Shift", "matrix": [3, 12], "x":12.25, "y":3, "w":2.25},
                {"label":"Caps", "matrix": [4, 0], "x":0, "y":4},
                {"label":"opt", "matrix": [4, 1], "x":1, "y":4},
                {"label":"Cmd", "matrix": [4, 2], "x":2, "y":4, "w":1.75},
                {"label":"`", "matrix": [4, 3], "x":3.75, "y":4},
                {"label":"Space", "matrix": [4, 6],"x":4.75, "y":4, "w":4.75},
                {"label":"\\", "matrix": [4, 8], "x":9.5, "y":4},
                {"label":"\u2190", "matrix": [4, 9], "x":10.5, "y":4},
                {"label":"\u2192", "matrix": [4, 10], "x":11.5, "y":4},
                {"label":"\u2193", "matrix": [4, 11], "x":12.5, "y":4},
                {"label":"\u2191", "matrix": [4, 12], "x":13.5, "y":4}
            ]
        },
        "LAYOUT_m0118": {
            "layout": [
                {"label":"Esc", "matrix": [0, 0], "x":0, "y":0},
                {"label":"!", "matrix": [0, 1], "x":1, "y":0},
                {"label":"@", "matrix": [0, 2], "x":2, "y":0},
                {"label":"#", "matrix": [0, 3], "x":3, "y":0},
                {"label":"$", "matrix": [0, 4], "x":4, "y":0},
                {"label":"%", "matrix": [0, 5], "x":5, "y":0},
                {"label":"^", "matrix": [0, 6], "x":6, "y":0},
                {"label":"&", "matrix": [0, 7], "x":7, "y":0},
                {"label":"*", "matrix": [0, 8], "x":8, "y":0},
                {"label":"(", "matrix": [0, 9], "x":9, "y":0},
                {"label":")", "matrix": [0, 10], "x":10, "y":0},
                {"label":"_", "matrix": [0, 11], "x":11, "y":0},
                {"label":"+", "matrix": [0, 12], "x":12, "y":0},
                {"label":"Backsp", "matrix": [0, 13], "x":13, "y":0, "w":1.5},
                {"label":"Tab", "matrix": [1, 0], "x":0, "y":1, "w":1.5},
                {"label":"Q", "matrix": [1, 1], "x":1.5, "y":1},
                {"label":"W", "matrix": [1, 2], "x":2.5, "y":1},
                {"label":"E", "matrix": [1, 3], "x":3.5, "y":1},
                {"label":"R", "matrix": [1, 4], "x":4.5, "y":1},
                {"label":"T", "matrix": [1, 5], "x":5.5, "y":1},
                {"label":"Y", "matrix": [1, 6], "x":6.5, "y":1},
                {"label":"U", "matrix": [1, 7], "x":7.5, "y":1},
                {"label":"I", "matrix": [1, 8], "x":8.5, "y":1},
                {"label":"O", "matrix": [1, 9], "x":9.5, "y":1},
                {"label":"P", "matrix": [1, 10], "x":10.5, "y":1},
                {"label":"{", "matrix": [1, 11], "x":11.5, "y":1},
                {"label":"}", "matrix": [1, 12], "x":12.5, "y":1},
                {"label":"Enter", "matrix": [2, 13], "x":13.75, "y":1, "w":0.75, "h":2},
                {"label":"Caps Lock", "matrix": [2, 0], "x":0, "y":2, "w":1.75},
                {"label":"A", "matrix": [2, 1], "x":1.75, "y":2},
                {"label":"S", "matrix": [2, 2], "x":2.75, "y":2},
                {"label":"D", "matrix": [2, 3], "x":3.75, "y":2},
                {"label":"F", "matrix": [2, 4], "x":4.75, "y":2},
                {"label":"G", "matrix": [2, 5], "x":5.75, "y":2},
                {"label":"H", "matrix": [2, 6], "x":6.75, "y":2},
                {"label":"J", "matrix": [2, 7], "x":7.75, "y":2},
                {"label":"K", "matrix": [2, 8], "x":8.75, "y":2},
                {"label":"L", "matrix": [2, 9], "x":9.75, "y":2},
                {"label":":", "matrix": [2, 10], "x":10.75, "y":2},
                {"label":"\"", "matrix": [2, 11], "x":11.75, "y":2},
                {"label":"nuhs", "matrix": [3, 13], "x":12.75, "y":2},
                {"label":"Shift", "matrix": [3, 0], "x":0, "y":3, "w":1.25},
                {"label":"nubs", "matrix": [3, 1], "x":1.25, "y":3},
                {"label":"Z", "matrix": [3, 2], "x":2.25, "y":3},
                {"label":"X", "matrix": [3, 3], "x":3.25, "y":3},
                {"label":"C", "matrix": [3, 4], "x":4.25, "y":3},
                {"label":"V", "matrix": [3, 5], "x":5.25, "y":3},
                {"label":"B", "matrix": [3, 6], "x":6.25, "y":3},
                {"label":"N", "matrix": [3, 7], "x":7.25, "y":3},
                {"label":"M", "matrix": [3, 8], "x":8.25, "y":3},
                {"label":"<", "matrix": [3, 9], "x":9.25, "y":3},
                {"label":">", "matrix": [3, 10], "x":10.25, "y":3},
                {"label":"?", "matrix": [3, 11], "x":11.25, "y":3},
                {"label":"Shift", "matrix": [3, 12], "x":12.25, "y":3, "w":1.25},
                {"label":"\u2191", "matrix": [4, 13], "x":13.5, "y":3},
                {"label":"Ctrl", "matrix": [4, 0], "x":0, "y":4, "w":1.25},
                {"label":"Opt", "matrix": [4, 2], "x":1.25, "y":4, "w":1.5},
                {"label":"Cmd", "matrix": [4, 3], "x":2.75, "y":4, "w":1.75},
                {"label":"Space", "matrix": [4, 6], "x":4.5, "y":4, "w":5.25},
                {"label":"Cmd", "matrix": [4, 9], "x":9.75, "y":4, "w":1.75},
                {"label":"\u2190", "matrix": [4, 10], "x":11.5, "y":4},
                {"label":"\u2192", "matrix": [4, 11], "x":12.5, "y":4},
                {"label":"\u2193", "matrix": [4, 12], "x":13.5, "y":4}
            ]
        }
    }
}

A keyboards/4pplet/unextended_std/rev_a/rules.mk => keyboards/4pplet/unextended_std/rev_a/rules.mk +10 -0
@@ 0,0 1,10 @@
# Build Options
#   change yes to no to disable
#
KEY_LOCK_ENABLE = yes

# Wildcard to allow APM32 MCU
DFU_SUFFIX_ARGS = -p FFFF -v FFFF

# Enter lower-power sleep mode when on the ChibiOS idle thread
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE