~ruther/qmk_firmware

2ba6b9ab695600f68bfd145a70047270786797ea — noroadsleft 7 years ago 5d5fa0d
UK78 refactor and Configurator support (#3395)

* Matrix update

* Keymap refactor

* Configurator support

* Readme cleanup
A keyboards/uk78/info.json => keyboards/uk78/info.json +21 -0
@@ 0,0 1,21 @@
{
  "keyboard_name": "UK78",
  "url": "",
  "maintainer": "qmk",
  "width": 19,
  "height": 5,
  "layouts": {
    "LAYOUT_all": {
      "key_count": 87,
      "layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K015", "x":15, "y":0}, {"label":"K016", "x":16, "y":0}, {"label":"K017", "x":17, "y":0}, {"label":"K018", "x":18, "y":0}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K101", "x":1.5, "y":1}, {"label":"K102", "x":2.5, "y":1}, {"label":"K103", "x":3.5, "y":1}, {"label":"K104", "x":4.5, "y":1}, {"label":"K105", "x":5.5, "y":1}, {"label":"K106", "x":6.5, "y":1}, {"label":"K107", "x":7.5, "y":1}, {"label":"K108", "x":8.5, "y":1}, {"label":"K109", "x":9.5, "y":1}, {"label":"K110", "x":10.5, "y":1}, {"label":"K111", "x":11.5, "y":1}, {"label":"K112", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K115", "x":15, "y":1}, {"label":"K116", "x":16, "y":1}, {"label":"K117", "x":17, "y":1}, {"label":"K118", "x":18, "y":1}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K201", "x":1.75, "y":2}, {"label":"K202", "x":2.75, "y":2}, {"label":"K203", "x":3.75, "y":2}, {"label":"K204", "x":4.75, "y":2}, {"label":"K205", "x":5.75, "y":2}, {"label":"K206", "x":6.75, "y":2}, {"label":"K207", "x":7.75, "y":2}, {"label":"K208", "x":8.75, "y":2}, {"label":"K209", "x":9.75, "y":2}, {"label":"K210", "x":10.75, "y":2}, {"label":"K211", "x":11.75, "y":2}, {"label":"K212", "x":12.75, "y":2}, {"label":"K214", "x":13.75, "y":2, "w":1.25}, {"label":"K215", "x":15, "y":2}, {"label":"K216", "x":16, "y":2}, {"label":"K217", "x":17, "y":2}, {"label":"K218", "x":18, "y":2}, {"label":"K300", "x":0, "y":3, "w":1.25}, {"label":"K301", "x":1.25, "y":3}, {"label":"K302", "x":2.25, "y":3}, {"label":"K303", "x":3.25, "y":3}, {"label":"K304", "x":4.25, "y":3}, {"label":"K305", "x":5.25, "y":3}, {"label":"K306", "x":6.25, "y":3}, {"label":"K307", "x":7.25, "y":3}, {"label":"K308", "x":8.25, "y":3}, {"label":"K309", "x":9.25, "y":3}, {"label":"K310", "x":10.25, "y":3}, {"label":"K311", "x":11.25, "y":3}, {"label":"K312", "x":12.25, "y":3}, {"label":"K313", "x":13.25, "y":3, "w":0.75}, {"label":"K314", "x":14, "y":3}, {"label":"K315", "x":15, "y":3}, {"label":"K316", "x":16, "y":3}, {"label":"K317", "x":17, "y":3}, {"label":"K318", "x":18, "y":3}, {"label":"K400", "x":0, "y":4, "w":1.25}, {"label":"K401", "x":1.25, "y":4, "w":1.25}, {"label":"K402", "x":2.5, "y":4, "w":1.25}, {"label":"K406", "x":3.75, "y":4, "w":6.25}, {"label":"K410", "x":10, "y":4}, {"label":"K411", "x":11, "y":4}, {"label":"K412", "x":12, "y":4}, {"label":"K413", "x":13, "y":4}, {"label":"K414", "x":14, "y":4}, {"label":"K415", "x":15, "y":4}, {"label":"K416", "x":16, "y":4}, {"label":"K417", "x":17, "y":4}, {"label":"K418", "x":18, "y":4}]
    },
    "LAYOUT_ansi": {
      "key_count": 83,
      "layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K015", "x":15, "y":0}, {"label":"K016", "x":16, "y":0}, {"label":"K017", "x":17, "y":0}, {"label":"K018", "x":18, "y":0}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K101", "x":1.5, "y":1}, {"label":"K102", "x":2.5, "y":1}, {"label":"K103", "x":3.5, "y":1}, {"label":"K104", "x":4.5, "y":1}, {"label":"K105", "x":5.5, "y":1}, {"label":"K106", "x":6.5, "y":1}, {"label":"K107", "x":7.5, "y":1}, {"label":"K108", "x":8.5, "y":1}, {"label":"K109", "x":9.5, "y":1}, {"label":"K110", "x":10.5, "y":1}, {"label":"K111", "x":11.5, "y":1}, {"label":"K112", "x":12.5, "y":1}, {"label":"K114", "x":13.5, "y":1, "w":1.5}, {"label":"K115", "x":15, "y":1}, {"label":"K116", "x":16, "y":1}, {"label":"K117", "x":17, "y":1}, {"label":"K118", "x":18, "y":1}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K201", "x":1.75, "y":2}, {"label":"K202", "x":2.75, "y":2}, {"label":"K203", "x":3.75, "y":2}, {"label":"K204", "x":4.75, "y":2}, {"label":"K205", "x":5.75, "y":2}, {"label":"K206", "x":6.75, "y":2}, {"label":"K207", "x":7.75, "y":2}, {"label":"K208", "x":8.75, "y":2}, {"label":"K209", "x":9.75, "y":2}, {"label":"K210", "x":10.75, "y":2}, {"label":"K211", "x":11.75, "y":2}, {"label":"K214", "x":12.75, "y":2, "w":2.25}, {"label":"K215", "x":15, "y":2}, {"label":"K216", "x":16, "y":2}, {"label":"K217", "x":17, "y":2}, {"label":"K218", "x":18, "y":2}, {"label":"K300", "x":0, "y":3, "w":2.25}, {"label":"K302", "x":2.25, "y":3}, {"label":"K303", "x":3.25, "y":3}, {"label":"K304", "x":4.25, "y":3}, {"label":"K305", "x":5.25, "y":3}, {"label":"K306", "x":6.25, "y":3}, {"label":"K307", "x":7.25, "y":3}, {"label":"K308", "x":8.25, "y":3}, {"label":"K309", "x":9.25, "y":3}, {"label":"K310", "x":10.25, "y":3}, {"label":"K311", "x":11.25, "y":3}, {"label":"K312", "x":12.25, "y":3, "w":1.75}, {"label":"K314", "x":14, "y":3}, {"label":"K315", "x":15, "y":3}, {"label":"K316", "x":16, "y":3}, {"label":"K317", "x":17, "y":3}, {"label":"K318", "x":18, "y":3}, {"label":"K400", "x":0, "y":4, "w":1.25}, {"label":"K401", "x":1.25, "y":4, "w":1.25}, {"label":"K402", "x":2.5, "y":4, "w":1.25}, {"label":"K406", "x":3.75, "y":4, "w":6.25}, {"label":"K410", "x":10, "y":4, "w":1.5}, {"label":"K412", "x":11.5, "y":4, "w":1.5}, {"label":"K413", "x":13, "y":4}, {"label":"K414", "x":14, "y":4}, {"label":"K415", "x":15, "y":4}, {"label":"K416", "x":16, "y":4}, {"label":"K417", "x":17, "y":4}, {"label":"K418", "x":18, "y":4}]
    },
    "LAYOUT_iso": {
      "key_count": 84,
      "layout": [{"label":"K000", "x":0, "y":0}, {"label":"K001", "x":1, "y":0}, {"label":"K002", "x":2, "y":0}, {"label":"K003", "x":3, "y":0}, {"label":"K004", "x":4, "y":0}, {"label":"K005", "x":5, "y":0}, {"label":"K006", "x":6, "y":0}, {"label":"K007", "x":7, "y":0}, {"label":"K008", "x":8, "y":0}, {"label":"K009", "x":9, "y":0}, {"label":"K010", "x":10, "y":0}, {"label":"K011", "x":11, "y":0}, {"label":"K012", "x":12, "y":0}, {"label":"K013", "x":13, "y":0}, {"label":"K014", "x":14, "y":0}, {"label":"K015", "x":15, "y":0}, {"label":"K016", "x":16, "y":0}, {"label":"K017", "x":17, "y":0}, {"label":"K018", "x":18, "y":0}, {"label":"K100", "x":0, "y":1, "w":1.5}, {"label":"K101", "x":1.5, "y":1}, {"label":"K102", "x":2.5, "y":1}, {"label":"K103", "x":3.5, "y":1}, {"label":"K104", "x":4.5, "y":1}, {"label":"K105", "x":5.5, "y":1}, {"label":"K106", "x":6.5, "y":1}, {"label":"K107", "x":7.5, "y":1}, {"label":"K108", "x":8.5, "y":1}, {"label":"K109", "x":9.5, "y":1}, {"label":"K110", "x":10.5, "y":1}, {"label":"K111", "x":11.5, "y":1}, {"label":"K112", "x":12.5, "y":1}, {"label":"K114", "x":13.75, "y":1, "w":1.25, "h":2}, {"label":"K115", "x":15, "y":1}, {"label":"K116", "x":16, "y":1}, {"label":"K117", "x":17, "y":1}, {"label":"K118", "x":18, "y":1}, {"label":"K200", "x":0, "y":2, "w":1.75}, {"label":"K201", "x":1.75, "y":2}, {"label":"K202", "x":2.75, "y":2}, {"label":"K203", "x":3.75, "y":2}, {"label":"K204", "x":4.75, "y":2}, {"label":"K205", "x":5.75, "y":2}, {"label":"K206", "x":6.75, "y":2}, {"label":"K207", "x":7.75, "y":2}, {"label":"K208", "x":8.75, "y":2}, {"label":"K209", "x":9.75, "y":2}, {"label":"K210", "x":10.75, "y":2}, {"label":"K211", "x":11.75, "y":2}, {"label":"K212", "x":12.75, "y":2}, {"label":"K215", "x":15, "y":2}, {"label":"K216", "x":16, "y":2}, {"label":"K217", "x":17, "y":2}, {"label":"K218", "x":18, "y":2}, {"label":"K300", "x":0, "y":3, "w":1.25}, {"label":"K301", "x":1.25, "y":3}, {"label":"K302", "x":2.25, "y":3}, {"label":"K303", "x":3.25, "y":3}, {"label":"K304", "x":4.25, "y":3}, {"label":"K305", "x":5.25, "y":3}, {"label":"K306", "x":6.25, "y":3}, {"label":"K307", "x":7.25, "y":3}, {"label":"K308", "x":8.25, "y":3}, {"label":"K309", "x":9.25, "y":3}, {"label":"K310", "x":10.25, "y":3}, {"label":"K311", "x":11.25, "y":3}, {"label":"K312", "x":12.25, "y":3, "w":1.75}, {"label":"K314", "x":14, "y":3}, {"label":"K315", "x":15, "y":3}, {"label":"K316", "x":16, "y":3}, {"label":"K317", "x":17, "y":3}, {"label":"K318", "x":18, "y":3}, {"label":"K400", "x":0, "y":4, "w":1.25}, {"label":"K401", "x":1.25, "y":4, "w":1.25}, {"label":"K402", "x":2.5, "y":4, "w":1.25}, {"label":"K406", "x":3.75, "y":4, "w":6.25}, {"label":"K410", "x":10, "y":4, "w":1.5}, {"label":"K412", "x":11.5, "y":4, "w":1.5}, {"label":"K413", "x":13, "y":4}, {"label":"K414", "x":14, "y":4}, {"label":"K415", "x":15, "y":4}, {"label":"K416", "x":16, "y":4}, {"label":"K417", "x":17, "y":4}, {"label":"K418", "x":18, "y":4}]
    }
  }
}
\ No newline at end of file

M keyboards/uk78/keymaps/default/keymap.c => keyboards/uk78/keymaps/default/keymap.c +83 -84
@@ 1,7 1,4 @@
#include "uk78.h"

// Helpful defines
#define _______ KC_TRNS
#include QMK_KEYBOARD_H

// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.


@@ 12,63 9,68 @@
#define _FL2 2

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    /* _BL: Base Layer(Default) - For ISO enter use ANSI \
    * ,-------------------------------------------------------------------------------.
    * |Esc | 1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =| /|BSpc| Del|  P/|  P*|  P-|
    * |-------------------------------------------------------------------------------|
    * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|  \  |  P7|  P8|  P9|  P=|
    * |-------------------------------------------------------------------------------|
    * |CAPS   |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '| #| Ent|  P4|  P5|  P6|  P+|
    * |-------------------------------------------------------------------------------|
    * |Shift| \|  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift | Up|  P1|  P2|  P3|SLck|
    * |-------------------------------------------------------------------------------|
    * |Ctrl|Win |Alt |        Space        |Alt|Ctrl|Mo(1)|Lef|Dow| Rig|  P0|  P.|PEnt|
    * `-------------------------------------------------------------------------------'
    */
    [_BL] = KEYMAP(
        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_BSPC, KC_DEL,  KC_PSLS, KC_PAST, KC_PMNS,
        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_P7,   KC_P8,   KC_P9,   KC_PEQL,
        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_P4,   KC_P5,   KC_P6,   KC_PPLS,
        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_RSFT, KC_UP,   KC_P1,   KC_P2,   KC_P3,   KC_SLCK,
        KC_LCTL, KC_LGUI, KC_LALT,                         KC_SPC,                             KC_RALT, KC_RCTL, MO(_FL1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0,   KC_PDOT, KC_PENT),
    /* _FL1: Function Layer 1 - For ISO enter use ANSI \
    * ,-------------------------------------------------------------------------------.
    * |  `|F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|PScr|Ins|NLck|    |    |    |
    * |-------------------------------------------------------------------------------|
    * |     |   |   |   |RST|   |   |   |   |   |   |   |   |     |    |    |    |    |
    * |-------------------------------------------------------------------------------|
    * |       |   |   |   |   |   |Hu+|Va+|Sa+|   |   |   |  |    |    |    |    |    |
    * |-------------------------------------------------------------------------------|
    * |     |   |   |   |   |RGB|Hu-|Va-|Sa-|Bl-|Bl+|   |Mute|Vol+|    |    |    |    |
    * |-------------------------------------------------------------------------------|
    * |    |    |    |      BL_Toggle       |   |   |   |    |Vol-|    |    |    |    |
    * `-------------------------------------------------------------------------------'
    */
    [_FL1] = KEYMAP(
        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_PSCR, KC_INS,  KC_NLCK, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,   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, RGB_HUI, RGB_SAI, RGB_VAI, 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, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, BL_DEC,  BL_INC,  KC_TRNS, KC_MUTE, KC_MUTE, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS,                            BL_TOGG,                            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
    /* _FL2: Function Layer 2 - For ISO enter use ANSI \
    * ,-------------------------------------------------------------------------------.
    * |   |  |   |   |   |   |   |   |   |   |   |   |   |    |   |    |    |    |    |
    * |-------------------------------------------------------------------------------|
    * |     |   |   |   |   |   |   |   |   |   |   |   |   |     |    |    |    |    |
    * |-------------------------------------------------------------------------------|
    * |       |   |   |   |   |   |   |   |   |   |   |   |  |    |    |    |    |    |
    * |-------------------------------------------------------------------------------|
    * |     |   |   |   |   |   |   |   |   |   |   |   |    |    |    |    |    |    |
    * |-------------------------------------------------------------------------------|
    * |    |    |    |                      |   |   |   |    |    |    |    |    |    |
    * `-------------------------------------------------------------------------------'
    */
    [_FL2] = KEYMAP(
        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, 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),
  /* _BL: Base Layer(Default) - For ISO enter use ANSI \
  * ,-------------------------------------------------------------------------------.
  * |Esc | 1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =| /|BSpc| Del|  P/|  P*|  P-|
  * |-------------------------------------------------------------------------------|
  * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|  \  |  P7|  P8|  P9|  P=|
  * |-------------------------------------------------------------------------------|
  * |CAPS   |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '| #| Ent|  P4|  P5|  P6|  P+|
  * |-------------------------------------------------------------------------------|
  * |Shift| \|  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /|Shift | Up|  P1|  P2|  P3|SLck|
  * |-------------------------------------------------------------------------------|
  * |Ctrl|Win |Alt |        Space        |Alt|Ctrl|Mo(1)|Lef|Dow| Rig|  P0|  P.|PEnt|
  * `-------------------------------------------------------------------------------'
  */
  [_BL] = LAYOUT(
    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_BSPC, KC_DEL,  KC_PSLS, KC_PAST, KC_PMNS,
    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_P7,   KC_P8,   KC_P9,   KC_PEQL,
    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_P4,   KC_P5,   KC_P6,   KC_PPLS,
    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_RSFT, KC_UP,   KC_P1,   KC_P2,   KC_P3,   KC_SLCK,
    KC_LCTL, KC_LGUI, KC_LALT,                         KC_SPC,                             KC_RALT, KC_RCTL, MO(_FL1), KC_LEFT, KC_DOWN, KC_RGHT, KC_P0,   KC_PDOT, KC_PENT
  ),

  /* _FL1: Function Layer 1 - For ISO enter use ANSI \
  * ,-------------------------------------------------------------------------------.
  * |  `|F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|PScr|Ins|NLck|    |    |    |
  * |-------------------------------------------------------------------------------|
  * |     |   |   |   |RST|   |   |   |   |   |   |   |   |     |    |    |    |    |
  * |-------------------------------------------------------------------------------|
  * |       |   |   |   |   |   |Hu+|Va+|Sa+|   |   |   |  |    |    |    |    |    |
  * |-------------------------------------------------------------------------------|
  * |     |   |   |   |   |RGB|Hu-|Va-|Sa-|Bl-|Bl+|   |Mute|Vol+|    |    |    |    |
  * |-------------------------------------------------------------------------------|
  * |    |    |    |      BL_Toggle       |   |   |   |    |Vol-|    |    |    |    |
  * `-------------------------------------------------------------------------------'
  */
  [_FL1] = LAYOUT(
    KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_PSCR, KC_INS,  KC_NLCK, _______, _______, _______,
    _______, _______, _______, _______, RESET,   _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______, _______, _______, _______,
    _______, _______, _______, _______, _______, _______, RGB_HUI, RGB_SAI, RGB_VAI, _______, _______, _______, _______,          _______, _______, _______, _______, _______,
    _______, _______, _______, _______, _______, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, BL_DEC,  BL_INC,  _______, KC_MUTE, KC_MUTE, KC_VOLU, _______, _______, _______, _______,
    _______, _______, _______,                            BL_TOGG,                            _______, _______, _______, _______, KC_VOLD, _______, _______, _______, _______
  ),

  /* _FL2: Function Layer 2 - For ISO enter use ANSI \
  * ,-------------------------------------------------------------------------------.
  * |   |  |   |   |   |   |   |   |   |   |   |   |   |    |   |    |    |    |    |
  * |-------------------------------------------------------------------------------|
  * |     |   |   |   |   |   |   |   |   |   |   |   |   |     |    |    |    |    |
  * |-------------------------------------------------------------------------------|
  * |       |   |   |   |   |   |   |   |   |   |   |   |  |    |    |    |    |    |
  * |-------------------------------------------------------------------------------|
  * |     |   |   |   |   |   |   |   |   |   |   |   |    |    |    |    |    |    |
  * |-------------------------------------------------------------------------------|
  * |    |    |    |                      |   |   |   |    |    |    |    |    |    |
  * `-------------------------------------------------------------------------------'
  */
  [_FL2] = LAYOUT(
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______, _______, _______, _______,
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______, _______, _______, _______,
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
    _______, _______, _______,                            _______,                            _______, _______, _______, _______, _______, _______, _______, _______, _______
  ),


};


@@ 81,43 83,40 @@ void matrix_scan_user(void) {
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
    return true;
  return true;
}

void led_set_user(uint8_t usb_led) {

    if (usb_led & (1 << USB_LED_NUM_LOCK)) {
  if (usb_led & (1 << USB_LED_NUM_LOCK)) {

    }
    else {
  } else {

    }
  }

    if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
        DDRA |= (1 << 3); PORTA |= (1 << 3);
    }
    else {
        DDRA &= ~(1 << 3); PORTA &= ~(1 << 3);
    }
  if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
    DDRA |= (1 << 3);
    PORTA |= (1 << 3);
  } else {
    DDRA &= ~(1 << 3);
    PORTA &= ~(1 << 3);
  }

    if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
  if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {

    }
    else {
  } else {

    }
  }

    if (usb_led & (1 << USB_LED_COMPOSE)) {
  if (usb_led & (1 << USB_LED_COMPOSE)) {

    }
    else {
  } else {

    }
  }

    if (usb_led & (1 << USB_LED_KANA)) {
  if (usb_led & (1 << USB_LED_KANA)) {

    }
    else {
  } else {

    }
  }
}
\ No newline at end of file

M keyboards/uk78/keymaps/rask/keymap.c => keyboards/uk78/keymaps/rask/keymap.c +93 -92
@@ 1,7 1,4 @@
#include "uk78.h"

// Helpful defines
#define _______ KC_TRNS
#include QMK_KEYBOARD_H

// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.


@@ 12,64 9,68 @@
#define _FL2 2

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    /* _BL: Base Layer(Default) - For ISO enter use ANSI \
    * ,-------------------------------------------------------------------------------.
    * |`   | 1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =| \|Del |NLck|  P/|  P*|  P-|
    * |-------------------------------------------------------------------------------|
    * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|Bspc |  P7|  P8|  P9|    |
    * |--------------------------------------------------------------------------|  P+|
    * | L1    |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|    Ent|  P4|  P5|  P6|    |
    * |-------------------------------------------------------------------------------|
    * |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /| L2   | Up|  P1|  P2|  P3|    |
    * |--------------------------------------------------------------------------|PEnt|
    * |Ctrl  |Alt   |        Space        |AltGr  |Win    |Lef|Dow| Rig|  P0|  P.|    |
    * `-------------------------------------------------------------------------------'
    */
    [_BL] = KEYMAP(
        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_BSLS,  KC_DEL,  KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
        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_P7,   KC_P8,   KC_P9,   KC_PPLS,
        MO(_FL1),KC_A,    KC_S,    KC_D,   KC_F,    KC_G,  KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_BSLS,           KC_ENT,  KC_P4,   KC_P5,   KC_P6,   KC_PPLS,
        KC_LSFT, KC_LSFT, KC_Z,    KC_X,   KC_C,    KC_V,  KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, MO(_FL2),MO(_FL2), KC_UP,   KC_P1,   KC_P2,   KC_P3,   KC_PENT,
        KC_LCTL, KC_LALT, KC_LALT,                         KC_SPC,                             KC_RALT, KC_LGUI, KC_LGUI, KC_LEFT,  KC_DOWN, KC_RGHT, KC_P0,   KC_PDOT, KC_PENT),
    /* _FL1: Function Layer 1 - For ISO enter use ANSI \
    * ,-------------------------------------------------------------------------------.
    * |Esc|F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|PScr|Ins|    |    |    |    |
    * |-------------------------------------------------------------------------------|
    * |     |   |   |   |   |   |   |   |   |   |   |   |   |     |    |    |    |    |
    * |-------------------------------------------------------------------------------|
    * |       |   |   |   |   |   |   |   |   |   |   |   |       |    |    |    |    |
    * |-------------------------------------------------------------------------------|
    * |         |   |   |   |   |   |   |   |   |   |   |    |PgUp|    |    |    |    |
    * |-------------------------------------------------------------------------------|
    * |       |      |                      |     |     |Home|PgDn|End |    |    |    |
    * `-------------------------------------------------------------------------------'
    */
    [_FL1] = KEYMAP(
        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_PSCR, KC_INS,  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_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
        KC_TRNS, KC_TRNS, KC_TRNS,                            KC_TRNS,                            KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGDN, KC_END,  KC_TRNS, KC_TRNS, KC_TRNS),
    /* _FL2: Function Layer 2 - For ISO enter use ANSI \
    * ,-------------------------------------------------------------------------------.
    * |   |  |   |   |   |   |   |   |   |   |   |   |   |    |   |    |    |    |    |
    * |-------------------------------------------------------------------------------|
    * |     |   |   |   |RST|   |   |   |   |Prv|Ply|Nxt|   |     |    |    |    |    |
    * |-------------------------------------------------------------------------------|
    * |Caps   |   |   |uln|Hu+|Va+|Sa+|   |   |Vod|Vou|Mut|  |    |    |    |    |    |
    * |-------------------------------------------------------------------------------|
    * |         |   |   |RGB|Hu-|Va-|Sa-|Bl-|Bl+|Stp|   |    |    |    |    |    |    |
    * |-------------------------------------------------------------------------------|
    * |       |Menu  |       BL_Toggle      |     |     |    |    |    |    |    |    |
    * `-------------------------------------------------------------------------------'
    */
    [_FL2] = KEYMAP(
		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, RESET,   KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
		KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
		KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, BL_DEC,  BL_INC,  KC_MSTP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 
		KC_TRNS, KC_APP,  KC_APP,                             BL_TOGG,                            KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),

  /* _BL: Base Layer(Default) - For ISO enter use ANSI \
   * ,-------------------------------------------------------------------------------.
   * |`   | 1|  2|  3|  4|  5|  6|  7|  8|  9|  0|  -|  =| \|Del |NLck|  P/|  P*|  P-|
   * |-------------------------------------------------------------------------------|
   * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P|  [|  ]|Bspc |  P7|  P8|  P9|    |
   * |--------------------------------------------------------------------------|  P+|
   * | L1    |  A|  S|  D|  F|  G|  H|  J|  K|  L|  ;|  '|    Ent|  P4|  P5|  P6|    |
   * |-------------------------------------------------------------------------------|
   * |Shift   |  Z|  X|  C|  V|  B|  N|  M|  ,|  .|  /| L2   | Up|  P1|  P2|  P3|    |
   * |--------------------------------------------------------------------------|PEnt|
   * |Ctrl  |Alt   |        Space        |AltGr  |Win    |Lef|Dow| Rig|  P0|  P.|    |
   * `-------------------------------------------------------------------------------'
   */
  [_BL] = LAYOUT(
    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_BSLS,  KC_DEL,  KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
    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_P7,   KC_P8,   KC_P9,   KC_PPLS,
    MO(_FL1),KC_A,    KC_S,    KC_D,   KC_F,    KC_G,  KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_BSLS,           KC_ENT,  KC_P4,   KC_P5,   KC_P6,   KC_PPLS,
    KC_LSFT, KC_LSFT, KC_Z,    KC_X,   KC_C,    KC_V,  KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, MO(_FL2),MO(_FL2), KC_UP,   KC_P1,   KC_P2,   KC_P3,   KC_PENT,
    KC_LCTL, KC_LALT, KC_LALT,                         KC_SPC,                             KC_RALT, KC_LGUI, KC_LGUI, KC_LEFT,  KC_DOWN, KC_RGHT, KC_P0,   KC_PDOT, KC_PENT
  ),

  /* _FL1: Function Layer 1 - For ISO enter use ANSI \
   * ,-------------------------------------------------------------------------------.
   * |Esc|F1| F2| F3| F4| F5| F6| F7| F8| F9|F10|F11|F12|PScr|Ins|    |    |    |    |
   * |-------------------------------------------------------------------------------|
   * |     |   |   |   |   |   |   |   |   |   |   |   |   |     |    |    |    |    |
   * |-------------------------------------------------------------------------------|
   * |       |   |   |   |   |   |   |   |   |   |   |   |       |    |    |    |    |
   * |-------------------------------------------------------------------------------|
   * |         |   |   |   |   |   |   |   |   |   |   |    |PgUp|    |    |    |    |
   * |-------------------------------------------------------------------------------|
   * |       |      |                      |     |     |Home|PgDn|End |    |    |    |
   * `-------------------------------------------------------------------------------'
   */
  [_FL1] = LAYOUT(
    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_PSCR, KC_INS,  _______, _______, _______, _______,
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______, _______, _______, _______,
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______, _______, _______, _______, _______,
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, _______, _______, _______,
    _______, _______, _______,                            _______,                            _______, _______, _______, KC_HOME, KC_PGDN, KC_END,  _______, _______, _______
  ),

  /* _FL2: Function Layer 2 - For ISO enter use ANSI \
   * ,-------------------------------------------------------------------------------.
   * |   |  |   |   |   |   |   |   |   |   |   |   |   |    |   |    |    |    |    |
   * |-------------------------------------------------------------------------------|
   * |     |   |   |   |RST|   |   |   |   |Prv|Ply|Nxt|   |     |    |    |    |    |
   * |-------------------------------------------------------------------------------|
   * |Caps   |   |   |uln|Hu+|Va+|Sa+|   |   |Vod|Vou|Mut|  |    |    |    |    |    |
   * |-------------------------------------------------------------------------------|
   * |         |   |   |RGB|Hu-|Va-|Sa-|Bl-|Bl+|Stp|   |    |    |    |    |    |    |
   * |-------------------------------------------------------------------------------|
   * |       |Menu  |       BL_Toggle      |     |     |    |    |    |    |    |    |
   * `-------------------------------------------------------------------------------'
   */
  [_FL2] = LAYOUT(
    _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
    _______, _______, _______, _______, RESET,   _______, _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT, _______,          _______, _______, _______, _______, _______,
    KC_CAPS, _______, _______, _______, RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______,          _______, _______, _______, _______, _______,
    _______, _______, _______, _______, RGB_TOG, RGB_HUD, RGB_SAD, RGB_VAD, BL_DEC,  BL_INC,  KC_MSTP, _______, _______, _______, _______, _______, _______, _______, _______,
    _______, KC_APP,  KC_APP,                             BL_TOGG,                            _______, _______, _______, _______, _______, _______, _______, _______, _______
  ),

};



@@ 81,39 82,39 @@ void matrix_scan_user(void) {
}

bool process_record_user(uint16_t keycode, keyrecord_t *record) {
	return true;
  return true;
}

void led_set_user(uint8_t usb_led) {

	if (usb_led & (1 << USB_LED_NUM_LOCK)) {
		
	} else {
		
	}

	if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
		DDRA |= (1 << 3); PORTA |= (1 << 3);
	} else {
		DDRA &= ~(1 << 3); PORTA &= ~(1 << 3);
	}

	if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
		
	} else {
		
	}

	if (usb_led & (1 << USB_LED_COMPOSE)) {
		
	} else {
		
	}

	if (usb_led & (1 << USB_LED_KANA)) {
		
	} else {
		
	}
  if (usb_led & (1 << USB_LED_NUM_LOCK)) {

  } else {

  }

  if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
    DDRA |= (1 << 3); PORTA |= (1 << 3);
  } else {
    DDRA &= ~(1 << 3); PORTA &= ~(1 << 3);
  }

  if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {

  } else {

  }

  if (usb_led & (1 << USB_LED_COMPOSE)) {

  } else {

  }

  if (usb_led & (1 << USB_LED_KANA)) {

  } else {

  }

}

M keyboards/uk78/readme.md => keyboards/uk78/readme.md +4 -5
@@ 4,13 4,12 @@

A fully customizable 60%+numpad keyboard.

* Keyboard Maintainer: [Rozakiin](https://github.com/rozakiin)
* Hardware Supported: UK78 PCB
  * rev2 
* Hardware Availability: [ukkeyboards.](http://ukkeyboards.bigcartel.com/)
Keyboard Maintainer: [Rozakiin](https://github.com/rozakiin)  
Hardware Supported: UK78 rev2 PCB  
Hardware Availability: [ukkeyboards](http://ukkeyboards.bigcartel.com/)

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

    make uk78:default

See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.
\ No newline at end of file
See [build environment setup](https://docs.qmk.fm/build_environment_setup.html) then the [make instructions](https://docs.qmk.fm/make_instructions.html) for more information.

M keyboards/uk78/uk78.h => keyboards/uk78/uk78.h +102 -12
@@ 3,18 3,108 @@

#include "quantum.h"

#define KEYMAP( \
	K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, \
	K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K114, K115, K116, K117, K118, \
	K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, K216, K217, K218, \
	K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, K317, K318, \
	K400, K401, K402,                   K406,                   K410, K411, K412, K413, K414, K415, K416, K417, K418  \
// readability
#define ____ KC_NO

/* Re: Right Shift
 *
 * Per a conversation I had on reddit with Rozakiin, matrix positions K312,
 * K313 and K314 are never in use all together at the same time.
 *
 * A 2.75u-sized right Shift uses position K313, rendering K312 and K314
 * inaccessible.
 *
 * A split right Shift, in either 1.75u/1u or 1u/1.75u (JIS layout) uses
 * positions K312 and K314, rendering K313 inaccessible.
 *
 *                                                            - @noroadsleft
 *                                                             July 13, 2018
 */

#define LAYOUT( \
	  K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018, \
	  K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K114, K115, K116, K117, K118, \
	  K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,       K214, K215, K216, K217, K218, \
	  K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, K317, K318, \
	  K400, K401, K402,                   K406,                   K410, K411, K412, K413, K414, K415, K416, K417, K418  \
) { \
  { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \
  { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, ____, K114, K115, K116, K117, K118 }, \
  { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, ____, K214, K215, K216, K217, K218 }, \
  { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, K313, K314, K315, K316, K317, K318 }, \
  { K400, K401, K402, ____, ____, ____, K406, ____, ____, ____, K410, K411, K412, K413, K414, K415, K416, K417, K418 } \
}

/* LAYOUT_ansi
 *
 * This layout uses:
 *
 *   - Split Backspace (K013 and K014)
 *   - ANSI Enter (K214)
 *   - ANSI 2.25u Left Shift (K300)
 *   - Compact right Shift (K312 and K314)
 *   - Two 1.5u modifiers (K410 and K412) between the spacebar and the Left
 *     arrow key
 * ,---------------------------------------------------------------------------.
 * |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0| -_| =+| \||Bsp|Del|P/ |P* |P- |
 * |---------------------------------------------------------------------------|
 * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P| [{| ]}|   \||P7 |P8 |P9 |P= |
 * |---------------------------------------------------------------------------|
 * |Caps  |  A|  S|  D|  F|  G|  H|  J|  K|  L| ;:| '"|   Enter|P4 |P5 |P6 |P+ |
 * |---------------------------------------------------------------------------|
 * |Shift   |  Z|  X|  C|  V|  B|  N|  M| ,<| .>| /?| Shift| Up|P1 |P2 |P3 |SLk|
 * |---------------------------------------------------------------------------|
 * |Ctrl|GUI |Alt |                        |  Alt|   Fn|Lft|Dwn|Rgh|P0 |P. |Ent|
 * `---------------------------------------------------------------------------'
 */
#define LAYOUT_ansi( \
	  K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014,     K015, K016, K017, K018, \
	  K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K114,     K115, K116, K117, K118, \
	  K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211,             K214,     K215, K216, K217, K218, \
	  K300,       K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312,         K314,   K315, K316, K317, K318, \
	  K400, K401, K402,                   K406,                     K410,   K412,     K413, K414, K415,   K416, K417, K418  \
) { \
  { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \
  { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, ____, K114, K115, K116, K117, K118 }, \
  { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, ____, ____, K214, K215, K216, K217, K218 }, \
  { K300, ____, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, ____, K314, K315, K316, K317, K318 }, \
  { K400, K401, K402, ____, ____, ____, K406, ____, ____, ____, K410, ____, K412, K413, K414, K415, K416, K417, K418 } \
}

/* LAYOUT_iso
 *
 * This layout uses:
 *
 *   - Split Backspace (K013 and K014)
 *   - ISO Enter (K114)
 *   - ISO Left Shift and 1u (K300 and K301)
 *   - Compact right Shift (K312 and K314)
 *   - Two 1.5u modifiers (K410 and K412) between the spacebar and the Left
 *     arrow key
 * ,---------------------------------------------------------------------------.
 * |Esc|  1|  2|  3|  4|  5|  6|  7|  8|  9|  0| -_| =+| \||Bsp|Del|P/ |P* |P- |
 * |---------------------------------------------------------------------------|
 * |Tab  |  Q|  W|  E|  R|  T|  Y|  U|  I|  O|  P| [{| ]}|Enter|P7 |P8 |P9 |P= |
 * |------------------------------------------------------.    ----------------|
 * |Caps  |  A|  S|  D|  F|  G|  H|  J|  K|  L| ;:| '@| #~|    |P4 |P5 |P6 |P+ |
 * |---------------------------------------------------------------------------|
 * |Sft | \||  Z|  X|  C|  V|  B|  N|  M| ,<| .>| /?| Shift| Up|P1 |P2 |P3 |SLk|
 * |---------------------------------------------------------------------------|
 * |Ctrl|GUI |Alt |                        |  Alt|   Fn|Lft|Dwn|Rgh|P0 |P. |Ent|
 * `---------------------------------------------------------------------------'
 */
#define LAYOUT_iso( \
	  K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014,     K015, K016, K017, K018, \
	  K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112,       K114,     K115, K116, K117, K118, \
	  K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212,                 K215, K216, K217, K218, \
	  K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312,         K314,   K315, K316, K317, K318, \
	  K400, K401, K402,                   K406,                     K410,   K412,     K413, K414, K415,   K416, K417, K418  \
) { \
	{ K000,  K001,  K002,  K003,  K004,  K005,  K006,  K007,  K008,  K009,  K010,  K011,  K012,  K013,  K014,  K015,  K016,  K017,  K018 }, \
	{ K100,  K101,  K102,  K103,  K104,  K105,  K106,  K107,  K108,  K109,  K110,  K111,  K112,  KC_NO, K114,  K115,  K116,  K117,  K118 }, \
	{ K200,  K201,  K202,  K203,  K204,  K205,  K206,  K207,  K208,  K209,  K210,  K211,  K212,  KC_NO, K214,  K215,  K216,  K217,  K218 }, \
	{ K300,  K301,  K302,  K303,  K304,  K305,  K306,  K307,  K308,  K309,  K310,  K311,  K312,  K313,  K314,  K315,  K316,  K317,  K318 }, \
	{ K400,  K401,  K402,  KC_NO, KC_NO, KC_NO, K406,  KC_NO, KC_NO, KC_NO, K410,  K411,  K412,  K413,  K414,  K415,  K416,  K417,  K418 }  \
  { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, K015, K016, K017, K018 }, \
  { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, ____, K114, K115, K116, K117, K118 }, \
  { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, ____, ____, K215, K216, K217, K218 }, \
  { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, ____, K314, K315, K316, K317, K318 }, \
  { K400, K401, K402, ____, ____, ____, K406, ____, ____, ____, K410, ____, K412, K413, K414, K415, K416, K417, K418 } \
}

#endif
\ No newline at end of file
#endif