From 2ba6b9ab695600f68bfd145a70047270786797ea Mon Sep 17 00:00:00 2001
From: noroadsleft <18669334+noroadsleft@users.noreply.github.com>
Date: Sat, 14 Jul 2018 13:43:15 -0700
Subject: [PATCH] UK78 refactor and Configurator support (#3395)

* Matrix update

* Keymap refactor

* Configurator support

* Readme cleanup
---
 keyboards/uk78/info.json                |  21 +++
 keyboards/uk78/keymaps/default/keymap.c | 167 +++++++++++-----------
 keyboards/uk78/keymaps/rask/keymap.c    | 175 ++++++++++++------------
 keyboards/uk78/readme.md                |   9 +-
 keyboards/uk78/uk78.h                   | 114 +++++++++++++--
 5 files changed, 298 insertions(+), 188 deletions(-)
 create mode 100644 keyboards/uk78/info.json

diff --git a/keyboards/uk78/info.json b/keyboards/uk78/info.json
new file mode 100644
index 000000000..ecc278800
--- /dev/null
+++ b/keyboards/uk78/info.json
@@ -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
diff --git a/keyboards/uk78/keymaps/default/keymap.c b/keyboards/uk78/keymaps/default/keymap.c
index ded77aeeb..5944d4c92 100644
--- a/keyboards/uk78/keymaps/default/keymap.c
+++ b/keyboards/uk78/keymaps/default/keymap.c
@@ -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
diff --git a/keyboards/uk78/keymaps/rask/keymap.c b/keyboards/uk78/keymaps/rask/keymap.c
index f29a0923b..28c6b4394 100644
--- a/keyboards/uk78/keymaps/rask/keymap.c
+++ b/keyboards/uk78/keymaps/rask/keymap.c
@@ -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_NUM_LOCK)) {
 
-	if (usb_led & (1 << USB_LED_CAPS_LOCK)) {
-		DDRA |= (1 << 3); PORTA |= (1 << 3);
-	} else {
-		DDRA &= ~(1 << 3); PORTA &= ~(1 << 3);
-	}
+  } else {
 
-	if (usb_led & (1 << USB_LED_SCROLL_LOCK)) {
-		
-	} else {
-		
-	}
+  }
 
-	if (usb_led & (1 << USB_LED_COMPOSE)) {
-		
-	} 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_KANA)) {
-		
-	} else {
-		
-	}
+  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 {
+
+  }
 
 }
diff --git a/keyboards/uk78/readme.md b/keyboards/uk78/readme.md
index eb4d1824c..8a1ba5e8a 100644
--- a/keyboards/uk78/readme.md
+++ b/keyboards/uk78/readme.md
@@ -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.
diff --git a/keyboards/uk78/uk78.h b/keyboards/uk78/uk78.h
index 6cc5eee47..000a83360 100644
--- a/keyboards/uk78/uk78.h
+++ b/keyboards/uk78/uk78.h
@@ -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,  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, ____, 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 } \
 }
 
-#endif
\ No newline at end of file
+/* 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, ____, 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