summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel H Klein <danielklein@utexas.edu>2019-01-27 09:12:05 +0100
committerDrashna Jaelre <drashna@live.com>2019-01-27 09:12:05 +0100
commit9ae800fab3861a96f13b9226fe744b7785c13105 (patch)
treec94c59f1e0138747ef26b484c14c345424a5e264
parent5d26ebcbaa8069975411e7acf3d8585c35da394f (diff)
downloadqmk_firmware-9ae800fab3861a96f13b9226fe744b7785c13105.tar.gz
qmk_firmware-9ae800fab3861a96f13b9226fe744b7785c13105.tar.xz
[Keyboard] UniGo66 keyboard added (#4913)
* UniGo66 keyboard added * UniGo66 keyboard added * case correction of unigo66 files * create sirius folder * Update keyboards/sirius/unigo66/rules.mk Co-Authored-By: danielhklein <danielklein@utexas.edu> * Update keyboards/sirius/unigo66/keymaps/danielhklein/keymap.c Co-Authored-By: danielhklein <danielklein@utexas.edu> * Update keyboards/sirius/unigo66/keymaps/default/config.h Co-Authored-By: danielhklein <danielklein@utexas.edu> * Update keyboards/sirius/unigo66/keymaps/danielhklein/config.h Co-Authored-By: danielhklein <danielklein@utexas.edu> * debugging * correct keymap to layout * readme * remove common config * suggested changes to config.h * default keymap cleanup
-rw-r--r--keyboards/sirius/unigo66/README.md17
-rw-r--r--keyboards/sirius/unigo66/config.h54
-rw-r--r--keyboards/sirius/unigo66/custom_matrix.cpp242
-rw-r--r--keyboards/sirius/unigo66/info.json485
-rw-r--r--keyboards/sirius/unigo66/keymaps/danielhklein/config.h3
-rw-r--r--keyboards/sirius/unigo66/keymaps/danielhklein/keymap.c177
-rw-r--r--keyboards/sirius/unigo66/keymaps/default/config.h3
-rw-r--r--keyboards/sirius/unigo66/keymaps/default/keymap.c66
-rw-r--r--keyboards/sirius/unigo66/main.c108
-rw-r--r--keyboards/sirius/unigo66/matrix.c1
-rw-r--r--keyboards/sirius/unigo66/readme.md17
-rw-r--r--keyboards/sirius/unigo66/rules.mk32
-rw-r--r--keyboards/sirius/unigo66/unigo66.c1
-rw-r--r--keyboards/sirius/unigo66/unigo66.h103
14 files changed, 1309 insertions, 0 deletions
diff --git a/keyboards/sirius/unigo66/README.md b/keyboards/sirius/unigo66/README.md
new file mode 100644
index 000000000..78a02ed09
--- /dev/null
+++ b/keyboards/sirius/unigo66/README.md
@@ -0,0 +1,17 @@
+# UniGo66
+
+![UniGo66](https://i.imgur.com/ZKlcncg.png)
+
+The UniGo66 is an ergonomic wireless keyboard designed by Sirius and manufactured by ALF Studios.
+
+Join ALF Studios on [Discord](https://discord.gg/GJ8bdM)
+
+Make example:
+
+ make sirius/unigo66:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+To get the U2U into DFU flashing mode, insert the U2U into the computer and press the button in the red circle shown below
+
+![U2U](https://i.imgur.com/WKwgDjZ.png) \ No newline at end of file
diff --git a/keyboards/sirius/unigo66/config.h b/keyboards/sirius/unigo66/config.h
new file mode 100644
index 000000000..883de44a2
--- /dev/null
+++ b/keyboards/sirius/unigo66/config.h
@@ -0,0 +1,54 @@
+/*
+Copyright 2017 Balz Guenat <balz.guenat@gmail.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 CUSTOM_MATRIX 2
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x5369
+#define PRODUCT_ID 0x005B
+#define DEVICE_VER 0x0814
+#define MANUFACTURER Sirius
+#define PRODUCT UniGo66
+#define DESCRIPTION UniGo66 Wireless Split keyboard
+
+
+/* size of virtual matrix */
+#define MATRIX_ROWS 16
+#define MATRIX_COLS 16
+
+/* matrix scanning is done in custom_matrix.cpp */
+#define DIODE_DIRECTION CUSTOM_MATRIX
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+//#define NO_ACTION_MACRO
+//#define NO_ACTION_FUNCTION
diff --git a/keyboards/sirius/unigo66/custom_matrix.cpp b/keyboards/sirius/unigo66/custom_matrix.cpp
new file mode 100644
index 000000000..fba107c7c
--- /dev/null
+++ b/keyboards/sirius/unigo66/custom_matrix.cpp
@@ -0,0 +1,242 @@
+/*
+Copyright 2016 Jun Wako <wakojun@gmail.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 <stdint.h>
+#include <stdbool.h>
+
+// USB HID host
+#include "Usb.h"
+#include "usbhub.h"
+#include "hid.h"
+#include "hidboot.h"
+#include "parser.h"
+
+#include "keycode.h"
+#include "util.h"
+#include "print.h"
+#include "debug.h"
+#include "timer.h"
+#include "matrix.h"
+#include "led.h"
+#include "host.h"
+#include "keyboard.h"
+
+extern "C" {
+#include "quantum.h"
+}
+
+/* KEY CODE to Matrix
+ *
+ * HID keycode(1 byte):
+ * Higher 5 bits indicates ROW and lower 3 bits COL.
+ *
+ * 7 6 5 4 3 2 1 0
+ * +---------------+
+ * | ROW | COL |
+ * +---------------+
+ *
+ * Matrix space(16 * 16):
+ * r\c0123456789ABCDEF
+ * 0 +----------------+
+ * : | |
+ * : | |
+ * 16 +----------------+
+ */
+#define ROW_MASK 0xF0
+#define COL_MASK 0x0F
+#define CODE(row, col) (((row) << 4) | (col))
+#define ROW(code) (((code) & ROW_MASK) >> 4)
+#define COL(code) ((code) & COL_MASK)
+#define ROW_BITS(code) (1 << COL(code))
+
+
+// Integrated key state of all keyboards
+static report_keyboard_t local_keyboard_report;
+
+static bool matrix_is_mod = false;
+
+/*
+ * USB Host Shield HID keyboards
+ * This supports two cascaded hubs and four keyboards
+ */
+USB usb_host;
+USBHub hub1(&usb_host);
+USBHub hub2(&usb_host);
+HIDBoot<HID_PROTOCOL_KEYBOARD> kbd1(&usb_host);
+HIDBoot<HID_PROTOCOL_KEYBOARD> kbd2(&usb_host);
+HIDBoot<HID_PROTOCOL_KEYBOARD> kbd3(&usb_host);
+HIDBoot<HID_PROTOCOL_KEYBOARD> kbd4(&usb_host);
+KBDReportParser kbd_parser1;
+KBDReportParser kbd_parser2;
+KBDReportParser kbd_parser3;
+KBDReportParser kbd_parser4;
+
+
+extern "C"
+{
+ uint8_t matrix_rows(void) { return MATRIX_ROWS; }
+ uint8_t matrix_cols(void) { return MATRIX_COLS; }
+ bool matrix_has_ghost(void) { return false; }
+ void matrix_init(void) {
+ // USB Host Shield setup
+ usb_host.Init();
+ kbd1.SetReportParser(0, (HIDReportParser*)&kbd_parser1);
+ kbd2.SetReportParser(0, (HIDReportParser*)&kbd_parser2);
+ kbd3.SetReportParser(0, (HIDReportParser*)&kbd_parser3);
+ kbd4.SetReportParser(0, (HIDReportParser*)&kbd_parser4);
+ }
+
+ static void or_report(report_keyboard_t report) {
+ // integrate reports into local_keyboard_report
+ local_keyboard_report.mods |= report.mods;
+ for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) {
+ if (IS_ANY(report.keys[i])) {
+ for (uint8_t j = 0; j < KEYBOARD_REPORT_KEYS; j++) {
+ if (! local_keyboard_report.keys[j]) {
+ local_keyboard_report.keys[j] = report.keys[i];
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ uint8_t matrix_scan(void) {
+ static uint16_t last_time_stamp1 = 0;
+ static uint16_t last_time_stamp2 = 0;
+ static uint16_t last_time_stamp3 = 0;
+ static uint16_t last_time_stamp4 = 0;
+
+ // check report came from keyboards
+ if (kbd_parser1.time_stamp != last_time_stamp1 ||
+ kbd_parser2.time_stamp != last_time_stamp2 ||
+ kbd_parser3.time_stamp != last_time_stamp3 ||
+ kbd_parser4.time_stamp != last_time_stamp4) {
+
+ last_time_stamp1 = kbd_parser1.time_stamp;
+ last_time_stamp2 = kbd_parser2.time_stamp;
+ last_time_stamp3 = kbd_parser3.time_stamp;
+ last_time_stamp4 = kbd_parser4.time_stamp;
+
+ // clear and integrate all reports
+ local_keyboard_report = {};
+ or_report(kbd_parser1.report);
+ or_report(kbd_parser2.report);
+ or_report(kbd_parser3.report);
+ or_report(kbd_parser4.report);
+
+ matrix_is_mod = true;
+
+ dprintf("state: %02X %02X", local_keyboard_report.mods, local_keyboard_report.reserved);
+ for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) {
+ dprintf(" %02X", local_keyboard_report.keys[i]);
+ }
+ dprint("\r\n");
+ } else {
+ matrix_is_mod = false;
+ }
+
+ uint16_t timer;
+ timer = timer_read();
+ usb_host.Task();
+ timer = timer_elapsed(timer);
+ if (timer > 100) {
+ dprintf("host.Task: %d\n", timer);
+ }
+
+ static uint8_t usb_state = 0;
+ if (usb_state != usb_host.getUsbTaskState()) {
+ usb_state = usb_host.getUsbTaskState();
+ dprintf("usb_state: %02X\n", usb_state);
+
+ // restore LED state when keyboard comes up
+ if (usb_state == USB_STATE_RUNNING) {
+ dprintf("speed: %s\n", usb_host.getVbusState()==FSHOST ? "full" : "low");
+ keyboard_set_leds(host_keyboard_leds());
+ }
+ }
+ return 1;
+ }
+
+ bool matrix_is_modified(void) {
+ return matrix_is_mod;
+ }
+
+ bool matrix_is_on(uint8_t row, uint8_t col) {
+ uint8_t code = CODE(row, col);
+
+ if (IS_MOD(code)) {
+ if (local_keyboard_report.mods & ROW_BITS(code)) {
+ return true;
+ }
+ }
+ for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) {
+ if (local_keyboard_report.keys[i] == code) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ matrix_row_t matrix_get_row(uint8_t row) {
+ uint16_t row_bits = 0;
+
+ if (IS_MOD(CODE(row, 0)) && local_keyboard_report.mods) {
+ row_bits |= local_keyboard_report.mods;
+ }
+
+ for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) {
+ if (IS_ANY(local_keyboard_report.keys[i])) {
+ if (row == ROW(local_keyboard_report.keys[i])) {
+ row_bits |= ROW_BITS(local_keyboard_report.keys[i]);
+ }
+ }
+ }
+ return row_bits;
+ }
+
+ uint8_t matrix_key_count(void) {
+ uint8_t count = 0;
+
+ count += bitpop(local_keyboard_report.mods);
+ for (uint8_t i = 0; i < KEYBOARD_REPORT_KEYS; i++) {
+ if (IS_ANY(local_keyboard_report.keys[i])) {
+ count++;
+ }
+ }
+ return count;
+ }
+
+ void matrix_print(void) {
+ print("\nr/c 0123456789ABCDEF\n");
+ for (uint8_t row = 0; row < matrix_rows(); row++) {
+ xprintf("%02d: ", row);
+ print_bin_reverse16(matrix_get_row(row));
+ print("\n");
+ }
+ }
+
+ void led_set(uint8_t usb_led)
+ {
+ kbd1.SetReport(0, 0, 2, 0, 1, &usb_led);
+ kbd2.SetReport(0, 0, 2, 0, 1, &usb_led);
+ kbd3.SetReport(0, 0, 2, 0, 1, &usb_led);
+ kbd4.SetReport(0, 0, 2, 0, 1, &usb_led);
+ led_set_kb(usb_led);
+ }
+
+};
diff --git a/keyboards/sirius/unigo66/info.json b/keyboards/sirius/unigo66/info.json
new file mode 100644
index 000000000..142e8f1fa
--- /dev/null
+++ b/keyboards/sirius/unigo66/info.json
@@ -0,0 +1,485 @@
+{
+ "keyboard_name": "UniGo66",
+ "url": "https://discord.gg/GJ8bdM",
+ "maintainer": "qmk",
+ "width": 22.5,
+ "height": 6.5,
+ "layouts": {
+ "LAYOUT_all": {
+ "layout": [
+ {"label":"F13", "x":2, "y":0},
+ {"label":"F14", "x":3, "y":0},
+ {"label":"F15", "x":4, "y":0},
+ {"label":"F16", "x":5, "y":0},
+ {"label":"F17", "x":6.5, "y":0},
+ {"label":"F18", "x":7.5, "y":0},
+ {"label":"F19", "x":8.5, "y":0},
+ {"label":"F20", "x":9.5, "y":0},
+ {"label":"F21", "x":11, "y":0},
+ {"label":"F22", "x":12, "y":0},
+ {"label":"F23", "x":13, "y":0},
+ {"label":"F24", "x":14, "y":0},
+ {"label":"Esc", "x":0, "y":1},
+ {"label":"F1", "x":2, "y":1},
+ {"label":"F2", "x":3, "y":1},
+ {"label":"F3", "x":4, "y":1},
+ {"label":"F4", "x":5, "y":1},
+ {"label":"F5", "x":6.5, "y":1},
+ {"label":"F6", "x":7.5, "y":1},
+ {"label":"F7", "x":8.5, "y":1},
+ {"label":"F8", "x":9.5, "y":1},
+ {"label":"F9", "x":11, "y":1},
+ {"label":"F10", "x":12, "y":1},
+ {"label":"F11", "x":13, "y":1},
+ {"label":"F12", "x":14, "y":1},
+ {"label":"Print Screen", "x":15.25, "y":1},
+ {"label":"Scroll Lock", "x":16.25, "y":1},
+ {"label":"Pause", "x":17.25, "y":1},
+ {"label":"Volume Down", "x":18.5, "y":1},
+ {"label":"Vol Up", "x":19.5, "y":1},
+ {"label":"Mute", "x":20.5, "y":1},
+ {"label":"Power", "x":21.5, "y":1},
+ {"label":"Help", "x":22.75, "y":1},
+ {"label":"`", "x":0, "y":2.5},
+ {"label":"1", "x":1, "y":2.5},
+ {"label":"2", "x":2, "y":2.5},
+ {"label":"3", "x":3, "y":2.5},
+ {"label":"4", "x":4, "y":2.5},
+ {"label":"5", "x":5, "y":2.5},
+ {"label":"6", "x":6, "y":2.5},
+ {"label":"7", "x":7, "y":2.5},
+ {"label":"8", "x":8, "y":2.5},
+ {"label":"9", "x":9, "y":2.5},
+ {"label":"0", "x":10, "y":2.5},
+ {"label":"-", "x":11, "y":2.5},
+ {"label":"=", "x":12, "y":2.5},
+ {"label":"Yen", "x":13, "y":2.5},
+ {"label":"Back Space", "x":14, "y":2.5},
+ {"label":"Insert", "x":15.25, "y":2.5},
+ {"label":"Home", "x":16.25, "y":2.5},
+ {"label":"Page Up", "x":17.25, "y":2.5},
+ {"label":"Num Lock", "x":18.5, "y":2.5},
+ {"label":"Num /", "x":19.5, "y":2.5},
+ {"label":"Num *", "x":20.5, "y":2.5},
+ {"label":"Num -", "x":21.5, "y":2.5},
+ {"label":"Stop", "x":22.75, "y":2.5},
+ {"label":"Again", "x":23.75, "y":2.5},
+ {"label":"Tab", "x":0, "y":3.5, "w":1.5},
+ {"label":"Q", "x":1.5, "y":3.5},
+ {"label":"W", "x":2.5, "y":3.5},
+ {"label":"E", "x":3.5, "y":3.5},
+ {"label":"R", "x":4.5, "y":3.5},
+ {"label":"T", "x":5.5, "y":3.5},
+ {"label":"Y", "x":6.5, "y":3.5},
+ {"label":"U", "x":7.5, "y":3.5},
+ {"label":"I", "x":8.5, "y":3.5},
+ {"label":"O", "x":9.5, "y":3.5},
+ {"label":"P", "x":10.5, "y":3.5},
+ {"label":"[", "x":11.5, "y":3.5},
+ {"label":"]", "x":12.5, "y":3.5},
+ {"label":"\\", "x":13.5, "y":3.5, "w":1.5},
+ {"label":"Delete", "x":15.25, "y":3.5},
+ {"label":"End", "x":16.25, "y":3.5},
+ {"label":"Page Down", "x":17.25, "y":3.5},
+ {"label":"Num 7", "x":18.5, "y":3.5},
+ {"label":"Num 8", "x":19.5, "y":3.5},
+ {"label":"Num 9", "x":20.5, "y":3.5},
+ {"label":"Num +", "x":21.5, "y":3.5},
+ {"label":"Menu", "x":22.75, "y":3.5},
+ {"label":"Undo", "x":23.75, "y":3.5},
+ {"label":"Caps Lock", "x":0, "y":4.5, "w":1.75},
+ {"label":"A", "x":1.75, "y":4.5},
+ {"label":"S", "x":2.75, "y":4.5},
+ {"label":"D", "x":3.75, "y":4.5},
+ {"label":"F", "x":4.75, "y":4.5},
+ {"label":"G", "x":5.75, "y":4.5},
+ {"label":"H", "x":6.75, "y":4.5},
+ {"label":"J", "x":7.75, "y":4.5},
+ {"label":"K", "x":8.75, "y":4.5},
+ {"label":"L", "x":9.75, "y":4.5},
+ {"label":";", "x":10.75, "y":4.5},
+ {"label":"\"", "x":11.75, "y":4.5},
+ {"label":"ISO #", "x":12.75, "y":4.5},
+ {"label":"Enter", "x":13.75, "y":4.5, "w":1.25},
+ {"label":"Num 4", "x":18.5, "y":4.5},
+ {"label":"Num 5", "x":19.5, "y":4.5},
+ {"label":"Num 6", "x":20.5, "y":4.5},
+ {"label":"Num , ", "x":21.5, "y":4.5},
+ {"label":"Select", "x":22.75, "y":4.5},
+ {"label":"Copy", "x":23.75, "y":4.5},
+ {"label":"Shift", "x":0, "y":5.5, "w":1.25},
+ {"label":"ISO \\", "x":1.25, "y":5.5},
+ {"label":"Z", "x":2.25, "y":5.5},
+ {"label":"X", "x":3.25, "y":5.5},
+ {"label":"C", "x":4.25, "y":5.5},
+ {"label":"V", "x":5.25, "y":5.5},
+ {"label":"B", "x":6.25, "y":5.5},
+ {"label":"N", "x":7.25, "y":5.5},
+ {"label":"M", "x":8.25, "y":5.5},
+ {"label":",", "x":9.25, "y":5.5},
+ {"label":".", "x":10.25, "y":5.5},
+ {"label":"/", "x":11.25, "y":5.5},
+ {"label":"JIS \\", "x":12.25, "y":5.5},
+ {"label":"Shift", "x":13.25, "y":5.5, "w":1.75},
+ {"label":"Up", "x":16.25, "y":5.5},
+ {"label":"Num 1", "x":18.5, "y":5.5},
+ {"label":"Num 2", "x":19.5, "y":5.5},
+ {"label":"Num 3", "x":20.5, "y":5.5},
+ {"label":"Num =", "x":21.5, "y":5.5},
+ {"label":"Exec", "x":22.75, "y":5.5},
+ {"label":"Paste", "x":23.75, "y":5.5},
+ {"label":"Ctrl", "x":0, "y":6.5},
+ {"label":"GUI", "x":1, "y":6.5},
+ {"label":"Alt", "x":2, "y":6.5},
+ {"label":"JIS Muhenkan", "x":3, "y":6.5},
+ {"label":"Hanja", "x":4, "y":6.5},
+ {"label":"Space", "x":5, "y":6.5, "w":3},
+ {"label":"Hangul/English", "x":8, "y":6.5},
+ {"label":"JIS Henkan", "x":9, "y":6.5},
+ {"label":"JIS Katakana/Hiragana", "x":10, "y":6.5},
+ {"label":"Alt", "x":11, "y":6.5},
+ {"label":"GUI", "x":12, "y":6.5},
+ {"label":"App", "x":13, "y":6.5},
+ {"label":"Ctrl", "x":14, "y":6.5},
+ {"label":"Left", "x":15.25, "y":6.5},
+ {"label":"Down", "x":16.25, "y":6.5},
+ {"label":"Right", "x":17.25, "y":6.5},
+ {"label":"Num 0", "x":18.5, "y":6.5, "w":2},
+ {"label":"Num .", "x":20.5, "y":6.5},
+ {"label":"Num Enter", "x":21.5, "y":6.5},
+ {"label":"Find", "x":22.75, "y":6.5},
+ {"label":"Cut", "x":23.75, "y":6.5}
+ ]
+ },
+ "LAYOUT_ansi": {
+ "layout": [
+ {"label":"Esc", "x":0, "y":0},
+ {"label":"F1", "x":2, "y":0},
+ {"label":"F2", "x":3, "y":0},
+ {"label":"F3", "x":4, "y":0},
+ {"label":"F4", "x":5, "y":0},
+ {"label":"F5", "x":6.5, "y":0},
+ {"label":"F6", "x":7.5, "y":0},
+ {"label":"F7", "x":8.5, "y":0},
+ {"label":"F8", "x":9.5, "y":0},
+ {"label":"F9", "x":11, "y":0},
+ {"label":"F10", "x":12, "y":0},
+ {"label":"F11", "x":13, "y":0},
+ {"label":"F12", "x":14, "y":0},
+ {"label":"PrtSc", "x":15.25, "y":0},
+ {"label":"Scroll Lock", "x":16.25, "y":0},
+ {"label":"Pause", "x":17.25, "y":0},
+ {"label":"`", "x":0, "y":1.5},
+ {"label":"1", "x":1, "y":1.5},
+ {"label":"2", "x":2, "y":1.5},
+ {"label":"3", "x":3, "y":1.5},
+ {"label":"4", "x":4, "y":1.5},
+ {"label":"5", "x":5, "y":1.5},
+ {"label":"6", "x":6, "y":1.5},
+ {"label":"7", "x":7, "y":1.5},
+ {"label":"8", "x":8, "y":1.5},
+ {"label":"9", "x":9, "y":1.5},
+ {"label":"0", "x":10, "y":1.5},
+ {"label":"-", "x":11, "y":1.5},
+ {"label":"=", "x":12, "y":1.5},
+ {"label":"Backspace", "x":13, "y":1.5, "w":2},
+ {"label":"Insert", "x":15.25, "y":1.5},
+ {"label":"Home", "x":16.25, "y":1.5},
+ {"label":"Page Up", "x":17.25, "y":1.5},
+ {"label":"Num Lock", "x":18.5, "y":1.5},
+ {"label":"Num /", "x":19.5, "y":1.5},
+ {"label":"Num *", "x":20.5, "y":1.5},
+ {"label":"Num -", "x":21.5, "y":1.5},
+ {"label":"Tab", "x":0, "y":2.5, "w":1.5},
+ {"label":"Q", "x":1.5, "y":2.5},
+ {"label":"W", "x":2.5, "y":2.5},
+ {"label":"E", "x":3.5, "y":2.5},
+ {"label":"R", "x":4.5, "y":2.5},
+ {"label":"T", "x":5.5, "y":2.5},
+ {"label":"Y", "x":6.5, "y":2.5},
+ {"label":"U", "x":7.5, "y":2.5},
+ {"label":"I", "x":8.5, "y":2.5},
+ {"label":"O", "x":9.5, "y":2.5},
+ {"label":"P", "x":10.5, "y":2.5},
+ {"label":"[", "x":11.5, "y":2.5},
+ {"label":"]", "x":12.5, "y":2.5},
+ {"label":"\\", "x":13.5, "y":2.5, "w":1.5},
+ {"label":"Delete", "x":15.25, "y":2.5},
+ {"label":"End", "x":16.25, "y":2.5},
+ {"label":"Page Down", "x":17.25, "y":2.5},
+ {"label":"Num 7", "x":18.5, "y":2.5},
+ {"label":"Num 8", "x":19.5, "y":2.5},
+ {"label":"Num 9", "x":20.5, "y":2.5},
+ {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
+ {"label":"A", "x":1.75, "y":3.5},
+ {"label":"S", "x":2.75, "y":3.5},
+ {"label":"D", "x":3.75, "y":3.5},
+ {"label":"F", "x":4.75, "y":3.5},
+ {"label":"G", "x":5.75, "y":3.5},
+ {"label":"H", "x":6.75, "y":3.5},
+ {"label":"J", "x":7.75, "y":3.5},
+ {"label":"K", "x":8.75, "y":3.5},
+ {"label":"L", "x":9.75, "y":3.5},
+ {"label":":", "x":10.75, "y":3.5},
+ {"label":"\"", "x":11.75, "y":3.5},
+ {"label":"Enter", "x":12.75, "y":3.5, "w":2.25},
+ {"label":"Num 4", "x":18.5, "y":3.5},
+ {"label":"Num 5", "x":19.5, "y":3.5},
+ {"label":"Num 6", "x":20.5, "y":3.5},
+ {"label":"Num +", "x":21.5, "y":2.5, "h":2},
+ {"label":"Shift", "x":0, "y":4.5, "w":2.25},
+ {"label":"Z", "x":2.25, "y":4.5},
+ {"label":"X", "x":3.25, "y":4.5},
+ {"label":"C", "x":4.25, "y":4.5},
+ {"label":"V", "x":5.25, "y":4.5},
+ {"label":"B", "x":6.25, "y":4.5},
+ {"label":"N", "x":7.25, "y":4.5},
+ {"label":"M", "x":8.25, "y":4.5},
+ {"label":",", "x":9.25, "y":4.5},
+ {"label":".", "x":10.25, "y":4.5},
+ {"label":"/", "x":11.25, "y":4.5},
+ {"label":"Shift", "x":12.25, "y":4.5, "w":2.75},
+ {"label":"Up", "x":16.25, "y":4.5},
+ {"label":"Num 1", "x":18.5, "y":4.5},
+ {"label":"Num 2", "x":19.5, "y":4.5},
+ {"label":"Num 3", "x":20.5, "y":4.5},
+ {"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
+ {"label":"GUI", "x":1.25, "y":5.5, "w":1.25},
+ {"label":"Alt", "x":2.5, "y":5.5, "w":1.25},
+ {"label":"Space", "x":3.75, "y":5.5, "w":6.25},
+ {"label":"Alt", "x":10, "y":5.5, "w":1.25},
+ {"label":"GUI", "x":11.25, "y":5.5, "w":1.25},
+ {"label":"Menu", "x":12.5, "y":5.5, "w":1.25},
+ {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25},
+ {"label":"Left", "x":15.25, "y":5.5},
+ {"label":"Down", "x":16.25, "y":5.5},
+ {"label":"Right", "x":17.25, "y":5.5},
+ {"label":"Num 0", "x":18.5, "y":5.5, "w":2},
+ {"label":"Num .", "x":20.5, "y":5.5},
+ {"label":"Num Enter", "x":21.5, "y":4.5, "h":2}
+ ]
+ },
+ "LAYOUT_iso": {
+ "layout": [
+ {"label":"Esc", "x":0, "y":0},
+ {"label":"F1", "x":2, "y":0},
+ {"label":"F2", "x":3, "y":0},
+ {"label":"F3", "x":4, "y":0},
+ {"label":"F4", "x":5, "y":0},
+ {"label":"F5", "x":6.5, "y":0},
+ {"label":"F6", "x":7.5, "y":0},
+ {"label":"F7", "x":8.5, "y":0},
+ {"label":"F8", "x":9.5, "y":0},
+ {"label":"F9", "x":11, "y":0},
+ {"label":"F10", "x":12, "y":0},
+ {"label":"F11", "x":13, "y":0},
+ {"label":"F12", "x":14, "y":0},
+ {"label":"Print Screen", "x":15.25, "y":0},
+ {"label":"Scroll Lock", "x":16.25, "y":0},
+ {"label":"Pause", "x":17.25, "y":0},
+ {"label":"`", "x":0, "y":1.5},
+ {"label":"1", "x":1, "y":1.5},
+ {"label":"2", "x":2, "y":1.5},
+ {"label":"3", "x":3, "y":1.5},
+ {"label":"4", "x":4, "y":1.5},
+ {"label":"5", "x":5, "y":1.5},
+ {"label":"6", "x":6, "y":1.5},
+ {"label":"7", "x":7, "y":1.5},
+ {"label":"8", "x":8, "y":1.5},
+ {"label":"9", "x":9, "y":1.5},
+ {"label":"0", "x":10, "y":1.5},
+ {"label":"-", "x":11, "y":1.5},
+ {"label":"=", "x":12, "y":1.5},
+ {"label":"Backspace", "x":13, "y":1.5, "w":2},
+ {"label":"Insert", "x":15.25, "y":1.5},
+ {"label":"Home", "x":16.25, "y":1.5},
+ {"label":"Page Up", "x":17.25, "y":1.5},
+ {"label":"Num Lock", "x":18.5, "y":1.5},
+ {"label":"Num /", "x":19.5, "y":1.5},
+ {"label":"Num *", "x":20.5, "y":1.5},
+ {"label":"Num -", "x":21.5, "y":1.5},
+ {"label":"Tab", "x":0, "y":2.5, "w":1.5},
+ {"label":"Q", "x":1.5, "y":2.5},
+ {"label":"W", "x":2.5, "y":2.5},
+ {"label":"E", "x":3.5, "y":2.5},
+ {"label":"R", "x":4.5, "y":2.5},
+ {"label":"T", "x":5.5, "y":2.5},
+ {"label":"Y", "x":6.5, "y":2.5},
+ {"label":"U", "x":7.5, "y":2.5},
+ {"label":"I", "x":8.5, "y":2.5},
+ {"label":"O", "x":9.5, "y":2.5},
+ {"label":"P", "x":10.5, "y":2.5},
+ {"label":"[", "x":11.5, "y":2.5},
+ {"label":"]", "x":12.5, "y":2.5},
+ {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2},
+ {"label":"Delete", "x":15.25, "y":2.5},
+ {"label":"End", "x":16.25, "y":2.5},
+ {"label":"Page Down", "x":17.25, "y":2.5},
+ {"label":"Num 7", "x":18.5, "y":2.5},
+ {"label":"Num 8", "x":19.5, "y":2.5},
+ {"label":"Num 9", "x":20.5, "y":2.5},
+ {"label":"Num +", "x":21.5, "y":2.5, "h":2},
+ {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
+ {"label":"A", "x":1.75, "y":3.5},
+ {"label":"S", "x":2.75, "y":3.5},
+ {"label":"D", "x":3.75, "y":3.5},
+ {"label":"F", "x":4.75, "y":3.5},
+ {"label":"G", "x":5.75, "y":3.5},
+ {"label":"H", "x":6.75, "y":3.5},
+ {"label":"J", "x":7.75, "y":3.5},
+ {"label":"K", "x":8.75, "y":3.5},
+ {"label":"L", "x":9.75, "y":3.5},
+ {"label":";", "x":10.75, "y":3.5},
+ {"label":"'", "x":11.75, "y":3.5},
+ {"label":"ISO #", "x":12.75, "y":3.5},
+ {"label":"Num 4", "x":18.5, "y":3.5},
+ {"label":"Num 5", "x":19.5, "y":3.5},
+ {"label":"Num 6", "x":20.5, "y":3.5},
+ {"label":"Shift", "x":0, "y":4.5, "w":1.25},
+ {"label":"ISO \\", "x":1.25, "y":4.5},
+ {"label":"Z", "x":2.25, "y":4.5},
+ {"label":"X", "x":3.25, "y":4.5},
+ {"label":"C", "x":4.25, "y":4.5},
+ {"label":"V", "x":5.25, "y":4.5},
+ {"label":"B", "x":6.25, "y":4.5},
+ {"label":"N", "x":7.25, "y":4.5},
+ {"label":"M", "x":8.25, "y":4.5},
+ {"label":",", "x":9.25, "y":4.5},
+ {"label":".", "x":10.25, "y":4.5},
+ {"label":"/", "x":11.25, "y":4.5},
+ {"label":"Shift", "x":12.25, "y":4.5, "w":2.75},
+ {"label":"Up", "x":16.25, "y":4.5},
+ {"label":"Num 1", "x":18.5, "y":4.5},
+ {"label":"Num 2", "x":19.5, "y":4.5},
+ {"label":"Num 3", "x":20.5, "y":4.5},
+ {"label":"Num Enter", "x":21.5, "y":4.5, "h":2},
+ {"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
+ {"label":"GUI", "x":1.25, "y":5.5, "w":1.25},
+ {"label":"Alt", "x":2.5, "y":5.5, "w":1.25},
+ {"label":"Space", "x":3.75, "y":5.5, "w":6.25},
+ {"label":"AltGr", "x":10, "y":5.5, "w":1.25},
+ {"label":"GUI", "x":11.25, "y":5.5, "w":1.25},
+ {"label":"Menu", "x":12.5, "y":5.5, "w":1.25},
+ {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25},
+ {"label":"Left", "x":15.25, "y":5.5},
+ {"label":"Down", "x":16.25, "y":5.5},
+ {"label":"Right", "x":17.25, "y":5.5},
+ {"label":"Num 0", "x":18.5, "y":5.5, "w":2},
+ {"label":"Num .", "x":20.5, "y":5.5}
+ ]
+ },
+ "LAYOUT_jis": {
+ "layout": [
+ {"label":"Esc", "x":0, "y":0},
+ {"label":"F1", "x":2, "y":0},
+ {"label":"F2", "x":3, "y":0},
+ {"label":"F3", "x":4, "y":0},
+ {"label":"F4", "x":5, "y":0},
+ {"label":"F5", "x":6.5, "y":0},
+ {"label":"F6", "x":7.5, "y":0},
+ {"label":"F7", "x":8.5, "y":0},
+ {"label":"F8", "x":9.5, "y":0},
+ {"label":"F9", "x":11, "y":0},
+ {"label":"F10", "x":12, "y":0},
+ {"label":"F11", "x":13, "y":0},
+ {"label":"F12", "x":14, "y":0},
+ {"label":"Print Screen", "x":15.25, "y":0},
+ {"label":"Scroll Lock", "x":16.25, "y":0},
+ {"label":"Pause", "x":17.25, "y":0},
+ {"label":"JIS Hankaku / Zenkaku", "x":0, "y":1.5},
+ {"label":"1", "x":1, "y":1.5},
+ {"label":"2", "x":2, "y":1.5},
+ {"label":"3", "x":3, "y":1.5},
+ {"label":"4", "x":4, "y":1.5},
+ {"label":"5", "x":5, "y":1.5},
+ {"label":"6", "x":6, "y":1.5},
+ {"label":"7", "x":7, "y":1.5},
+ {"label":"8", "x":8, "y":1.5},
+ {"label":"9", "x":9, "y":1.5},
+ {"label":"0", "x":10, "y":1.5},
+ {"label":"-", "x":11, "y":1.5},
+ {"label":"&circ;", "x":12, "y":1.5},
+ {"label":"JIS Yen", "x":13, "y":1.5},
+ {"label":"Back Space", "x":14, "y":1.5},
+ {"label":"Insert", "x":15.25, "y":1.5},
+ {"label":"Home", "x":16.25, "y":1.5},
+ {"label":"Page Up", "x":17.25, "y":1.5},
+ {"label":"Num Lock", "x":18.5, "y":1.5},
+ {"label":"Num /", "x":19.5, "y":1.5},
+ {"label":"Num *", "x":20.5, "y":1.5},
+ {"label":"Num -", "x":21.5, "y":1.5},
+ {"label":"Tab", "x":0, "y":2.5, "w":1.5},
+ {"label":"Q", "x":1.5, "y":2.5},
+ {"label":"W", "x":2.5, "y":2.5},
+ {"label":"E", "x":3.5, "y":2.5},
+ {"label":"R", "x":4.5, "y":2.5},
+ {"label":"T", "x":5.5, "y":2.5},
+ {"label":"Y", "x":6.5, "y":2.5},
+ {"label":"U", "x":7.5, "y":2.5},
+ {"label":"I", "x":8.5, "y":2.5},
+ {"label":"O", "x":9.5, "y":2.5},
+ {"label":"P", "x":10.5, "y":2.5},
+ {"label":"@", "x":11.5, "y":2.5},
+ {"label":"[", "x":12.5, "y":2.5},
+ {"label":"Enter", "x":13.75, "y":2.5, "w":1.25, "h":2},
+ {"label":"Delete", "x":15.25, "y":2.5},
+ {"label":"End", "x":16.25, "y":2.5},
+ {"label":"Page Down", "x":17.25, "y":2.5},
+ {"label":"Num 7", "x":18.5, "y":2.5},
+ {"label":"Num 8", "x":19.5, "y":2.5},
+ {"label":"Num 9", "x":20.5, "y":2.5},
+ {"label":"Num +", "x":21.5, "y":2.5, "h":2},
+ {"label":"Caps Lock", "x":0, "y":3.5, "w":1.75},
+ {"label":"A", "x":1.75, "y":3.5},
+ {"label":"S", "x":2.75, "y":3.5},
+ {"label":"D", "x":3.75, "y":3.5},
+ {"label":"F", "x":4.75, "y":3.5},
+ {"label":"G", "x":5.75, "y":3.5},
+ {"label":"H", "x":6.75, "y":3.5},
+ {"label":"J", "x":7.75, "y":3.5},
+ {"label":"K", "x":8.75, "y":3.5},
+ {"label":"L", "x":9.75, "y":3.5},
+ {"label":";", "x":10.75, "y":3.5},
+ {"label":":", "x":11.75, "y":3.5},
+ {"label":"]", "x":12.75, "y":3.5},
+ {"label":"Num 4", "x":18.5, "y":3.5},
+ {"label":"Num 5", "x":19.5, "y":3.5},
+ {"label":"Num 6", "x":20.5, "y":3.5},
+ {"label":"Shift", "x":0, "y":4.5, "w":2.25},
+ {"label":"Z", "x":2.25, "y":4.5},
+ {"label":"X", "x":3.25, "y":4.5},
+ {"label":"C", "x":4.25, "y":4.5},
+ {"label":"V", "x":5.25, "y":4.5},
+ {"label":"B", "x":6.25, "y":4.5},
+ {"label":"N", "x":7.25, "y":4.5},
+ {"label":"M", "x":8.25, "y":4.5},
+ {"label":",", "x":9.25, "y":4.5},
+ {"label":".", "x":10.25, "y":4.5},
+ {"label":"/", "x":11.25, "y":4.5},
+ {"label":"JIS \\", "x":12.25, "y":4.5},
+ {"label":"Shift", "x":13.25, "y":4.5, "w":1.75},
+ {"label":"Up", "x":16.25, "y":4.5},
+ {"label":"Num 1", "x":18.5, "y":4.5},
+ {"label":"Num 2", "x":19.5, "y":4.5},
+ {"label":"Num 3", "x":20.5, "y":4.5},
+ {"label":"Num Enter", "x":21.5, "y":4.5, "h":2},
+ {"label":"Ctrl", "x":0, "y":5.5, "w":1.25},
+ {"label":"GUI", "x":1.25, "y":5.5, "w":1.25},
+ {"label":"Alt", "x":2.5, "y":5.5, "w":1.25},
+ {"label":"JIS Muhenkan", "x":3.75, "y":5.5, "w":1.25},
+ {"label":"Space", "x":5, "y":5.5, "w":2.5},
+ {"label":"JIS Henkan", "x":7.5, "y":5.5, "w":1.25},
+ {"label":"JIS Hiragana / Katakana", "x":8.75, "y":5.5, "w":1.25},
+ {"label":"Alt", "x":10, "y":5.5, "w":1.25},
+ {"label":"GUI", "x":11.25, "y":5.5, "w":1.25},
+ {"label":"Menu", "x":12.5, "y":5.5, "w":1.25},
+ {"label":"Ctrl", "x":13.75, "y":5.5, "w":1.25},
+ {"label":"Left", "x":15.25, "y":5.5},
+ {"label":"Down", "x":16.25, "y":5.5},
+ {"label":"Right", "x":17.25, "y":5.5},
+ {"label":"Num 0", "x":18.5, "y":5.5, "w":2},
+ {"label":"Num .", "x":20.5, "y":5.5}
+ ]
+ }
+ }
+}
diff --git a/keyboards/sirius/unigo66/keymaps/danielhklein/config.h b/keyboards/sirius/unigo66/keymaps/danielhklein/config.h
new file mode 100644
index 000000000..271f48d00
--- /dev/null
+++ b/keyboards/sirius/unigo66/keymaps/danielhklein/config.h
@@ -0,0 +1,3 @@
+#pragma once
+
+// place overrides here
diff --git a/keyboards/sirius/unigo66/keymaps/danielhklein/keymap.c b/keyboards/sirius/unigo66/keymaps/danielhklein/keymap.c
new file mode 100644
index 000000000..2425572bd
--- /dev/null
+++ b/keyboards/sirius/unigo66/keymaps/danielhklein/keymap.c
@@ -0,0 +1,177 @@
+#include QMK_KEYBOARD_H
+
+enum layer_number {
+ _MAC = 0,
+ _WINDOWS,
+ _FN,
+ _ADJ
+};
+
+enum custom_keycodes {
+ MAC = SAFE_RANGE,
+ WINDOWS,
+ FN,
+ ADJ
+};
+
+const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
+/* Mac
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | - | | = | 6 | 7 | 8 | 9 | 0 | Bsp |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | Enter |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Caps | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
+ * |--------+------+------+------+------+------| ` | | \ |------+------+------+------+------+--------|
+ * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
+ * `--------+------+------+---------------------------' `---------------------------+------+------+--------'
+ * | Ctrl | Alt | Gui | | Gui | Alt | Ctrl |
+ * `--------------------' `--------------------'
+ * ,-------------. ,--------------.
+ * | | | | | |
+ * | Bspc | FN | | ADJ | Space |
+ * | | | | | |
+ * `-------------' `--------------'
+ */
+ [_MAC] = LAYOUT(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_BSLS, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LALT,KC_LGUI, KC_RGUI,KC_RALT, KC_RCTL,
+ KC_BSPC,FN, ADJ, KC_SPC,
+ KC_BSPC,FN, ADJ, KC_SPC
+ ),
+/* Windows
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | - | | = | 6 | 7 | 8 | 9 | 0 | Bsp |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | Q | W | E | R | T | [ | | ] | Y | U | I | O | P | Enter |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Caps | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
+ * |--------+------+------+------+------+------| ` | | \ |------+------+------+------+------+--------|
+ * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | RShift |
+ * `--------+------+------+---------------------------' `---------------------------+------+------+--------'
+ * | Gui | Alt | Ctrl | | Ctrl | Alt | Gui |
+ * `--------------------' `--------------------'
+ * ,-------------. ,--------------.
+ * | | | | | |
+ * | Bspc | FN | | ADJ | Space |
+ * | | | | | |
+ * `-------------' `--------------'
+ */
+ [_WINDOWS] = LAYOUT(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_GRV, KC_BSLS, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LGUI, KC_LALT,KC_LCTL, KC_RCTL,KC_RALT, KC_RGUI,
+ KC_BSPC,FN, ADJ, KC_SPC,
+ KC_BSPC,FN, ADJ, KC_SPC
+ ),
+/* FN
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | RESET | | | | | | | | | | | | | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | MAC | | | | | | | | | | PgDn | Up | PgUp | Print| Home |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | WINDOWS| | | | | |------| |------| | Left | Down | Right|Insert| End |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Shift | | | | | | | | | Play | Mute | Vol- | Vol+ | Last | Next |
+ * `--------+------+------+---------------------------' `---------------------------+------+------+--------'
+ * | | |GuiCtl| |GuiCtl| | |
+ * `--------------------' `--------------------'
+ * ,-------------. ,--------------.
+ * | | | | | |
+ * | | | | | |
+ * | | | | | |
+ * `-------------' `--------------'
+ */
+ [_FN] = LAYOUT(
+ RESET, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ MAC, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME,
+ WINDOWS, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END,
+ _______, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPLY, KC_MUTE, KC_VOLD, KC_VOLU, KC_MRWD, KC_MFFD,
+ XXXXXXX, XXXXXXX,_______, _______, XXXXXXX, XXXXXXX,
+ XXXXXXX, _______, XXXXXXX, XXXXXXX,
+ XXXXXXX, _______, XXXXXXX, XXXXXXX
+ ),
+
+/* ADJ
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | F6 | | |Nlock | = | / | * | - | | |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | F7 | F8 | F9 | F10 | F11 | F12 | | | | 7 | 8 | 9 | + | | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | |------| |------| 4 | 5 | 6 | Enter| | |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | | | | | | | | | | 1 | 2 | 3 | Space| | |
+ * `--------+------+------+---------------------------' `---------------------------+------+------+--------'
+ * | | | | | 0 | . | |
+ * `--------------------' `--------------------'
+ * ,-------------. ,--------------.
+ * | | | | | |
+ * | | | | | |
+ * | | | | | |
+ * `-------------' `--------------'
+ */
+ [_ADJ] = LAYOUT(
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, KC_NLCK, KC_PEQL, KC_PSLS, KC_PAST, KC_PMNS, XXXXXXX, XXXXXXX,
+ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, XXXXXXX, XXXXXXX, KC_P7, KC_P8, KC_P9, KC_PPLS, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_P4, KC_P5, KC_P6, KC_PENT, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_P1, KC_P2, KC_P3, KC_SPC, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX,XXXXXXX, KC_P0, KC_PDOT, XXXXXXX,
+ XXXXXXX, XXXXXXX, _______, XXXXXXX,
+ XXXXXXX, XXXXXXX, _______, XXXXXXX
+ )
+};
+
+void matrix_init_user(void) {
+
+}
+
+void matrix_scan_user(void) {
+
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case MAC:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_MAC);
+ }
+ return false;
+ break;
+ case WINDOWS:
+ if(record->event.pressed) {
+ set_single_persistent_default_layer(_WINDOWS);
+ }
+ return false;
+ break;
+ case FN:
+ if (record->event.pressed) {
+ layer_on(_FN);
+ } else {
+ layer_off(_FN);
+ }
+ return false;
+ break;
+ case ADJ:
+ if (record->event.pressed) {
+ layer_on(_ADJ);
+ } else {
+ layer_off(_ADJ);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+void led_set_user(uint8_t usb_led) {
+
+}
diff --git a/keyboards/sirius/unigo66/keymaps/default/config.h b/keyboards/sirius/unigo66/keymaps/default/config.h
new file mode 100644
index 000000000..271f48d00
--- /dev/null
+++ b/keyboards/sirius/unigo66/keymaps/default/config.h
@@ -0,0 +1,3 @@
+#pragma once
+
+// place overrides here
diff --git a/keyboards/sirius/unigo66/keymaps/default/keymap.c b/keyboards/sirius/unigo66/keymaps/default/keymap.c
new file mode 100644
index 000000000..d2e0cbfbf
--- /dev/null
+++ b/keyboards/sirius/unigo66/keymaps/default/keymap.c
@@ -0,0 +1,66 @@
+#include QMK_KEYBOARD_H
+
+const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS] PROGMEM = {
+/*
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ESC | 1 | 2 | 3 | 4 | 5 | - | | = | 6 | 7 | 8 | 9 | 0 | Bsp |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | Q | W | E | R | T | L1 | | [ | Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Caps | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
+ * |--------+------+------+------+------+------| L2 | | ] |------+------+------+------+------+--------|
+ * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | Up |
+ * `--------+------+------+---------------------------' `---------------------------+------+------+--------'
+ * | Ctrl | Super| Alt | | Left | Down| Right |
+ * `--------------------' `--------------------'
+ * ,------|------. ,---------------.
+ * | | PgUp | | Home | |
+ * | Space|------| |------| Enter |
+ * | | PgDn | | End | |
+ * `-------------' `---------------'
+ */
+ [0] = LAYOUT(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, TG(1), KC_LBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
+ 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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, TG(2), KC_RBRC, KC_N, KC_M, KC_COMM,KC_DOT, KC_SLSH, KC_UP ,
+ KC_LCTL, KC_LGUI,KC_LALT, KC_LEFT,KC_DOWN, KC_RGHT,
+ KC_SPC, KC_PGUP, KC_HOME, KC_ENT,
+ KC_SPC, KC_PGDN, KC_END, KC_ENT
+ ),
+ [1] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______
+ ),
+ [2] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______,
+ _______, _______, _______, _______
+ ),
+};
+
+void matrix_init_user(void) {
+
+}
+
+void matrix_scan_user(void) {
+
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ return true;
+}
+
+void led_set_user(uint8_t usb_led) {
+
+}
diff --git a/keyboards/sirius/unigo66/main.c b/keyboards/sirius/unigo66/main.c
new file mode 100644
index 000000000..b4a0d97aa
--- /dev/null
+++ b/keyboards/sirius/unigo66/main.c
@@ -0,0 +1,108 @@
+#include <avr/io.h>
+#include <avr/wdt.h>
+#include <avr/power.h>
+#include <util/delay.h>
+
+// LUFA
+#include "lufa.h"
+
+#include "sendchar.h"
+#include "debug.h"
+#include "keyboard.h"
+#include "led.h"
+
+
+/* LED ping configuration */
+#define TMK_LED
+//#define LEONARDO_LED
+#if defined(TMK_LED)
+// For TMK converter and Teensy
+#define LED_TX_INIT (DDRD |= (1<<6))
+#define LED_TX_ON (PORTD |= (1<<6))
+#define LED_TX_OFF (PORTD &= ~(1<<6))
+#define LED_TX_TOGGLE (PORTD ^= (1<<6))
+#elif defined(LEONARDO_LED)
+// For Leonardo(TX LED)
+#define LED_TX_INIT (DDRD |= (1<<5))
+#define LED_TX_ON (PORTD &= ~(1<<5))
+#define LED_TX_OFF (PORTD |= (1<<5))
+#define LED_TX_TOGGLE (PORTD ^= (1<<5))
+#else
+#define LED_TX_INIT
+#define LED_TX_ON
+#define LED_TX_OFF
+#define LED_TX_TOGGLE
+#endif
+
+
+static void LUFA_setup(void)
+{
+ /* Disable watchdog if enabled by bootloader/fuses */
+ MCUSR &= ~(1 << WDRF);
+ wdt_disable();
+
+ /* Disable clock division */
+#if (F_CPU == 8000000)
+ clock_prescale_set(clock_div_2); // 16MHz crystal divided by 2
+#else
+ clock_prescale_set(clock_div_1);
+#endif
+
+ // Leonardo needs. Without this USB device is not recognized.
+ USB_Disable();
+
+ USB_Init();
+
+ // for Console_Task
+ USB_Device_EnableSOFEvents();
+ print_set_sendchar(sendchar);
+}
+
+
+
+int main(void)
+{
+ // LED for debug
+ LED_TX_INIT;
+ LED_TX_ON;
+
+ debug_enable = true;
+ debug_keyboard = true;
+
+ host_set_driver(&lufa_driver);
+ keyboard_init();
+
+ LUFA_setup();
+
+ /* NOTE: Don't insert time consuming job here.
+ * It'll cause unclear initialization failure when DFU reset(worm start).
+ */
+ sei();
+
+/* Some keyboards bootup quickly and cannot be initialized with this startup wait.*/
+ // wait for startup of sendchar routine
+ while (USB_DeviceState != DEVICE_STATE_Configured) ;
+ if (debug_enable) {
+ _delay_ms(1000);
+ }
+
+
+/* // wait for USB startup & debug output
+ uint8_t timeout=255
+ while (timeout-- && USB_DeviceState != DEVICE_STATE_Configured) {
+ wait_ms(4);
+*/
+
+ debug("init: done\n");
+
+ for (;;) {
+ keyboard_task();
+
+#if !defined(INTERRUPT_CONTROL_ENDPOINT)
+ // LUFA Task for control request
+ USB_USBTask();
+#endif
+ }
+
+ return 0;
+}
diff --git a/keyboards/sirius/unigo66/matrix.c b/keyboards/sirius/unigo66/matrix.c
new file mode 100644
index 000000000..b077febd7
--- /dev/null
+++ b/keyboards/sirius/unigo66/matrix.c
@@ -0,0 +1 @@
+// Intentionally left empty. This file must exist for this board to build.
diff --git a/keyboards/sirius/unigo66/readme.md b/keyboards/sirius/unigo66/readme.md
new file mode 100644
index 000000000..78a02ed09
--- /dev/null
+++ b/keyboards/sirius/unigo66/readme.md
@@ -0,0 +1,17 @@
+# UniGo66
+
+![UniGo66](https://i.imgur.com/ZKlcncg.png)
+
+The UniGo66 is an ergonomic wireless keyboard designed by Sirius and manufactured by ALF Studios.
+
+Join ALF Studios on [Discord](https://discord.gg/GJ8bdM)
+
+Make example:
+
+ make sirius/unigo66:default
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+To get the U2U into DFU flashing mode, insert the U2U into the computer and press the button in the red circle shown below
+
+![U2U](https://i.imgur.com/WKwgDjZ.png) \ No newline at end of file
diff --git a/keyboards/sirius/unigo66/rules.mk b/keyboards/sirius/unigo66/rules.mk
new file mode 100644
index 000000000..e716aa86f
--- /dev/null
+++ b/keyboards/sirius/unigo66/rules.mk
@@ -0,0 +1,32 @@
+# MCU name
+MCU = atmega32u4
+
+F_CPU = 16000000
+
+ARCH = AVR8
+
+F_USB = $(F_CPU)
+
+BOOTLOADER = atmel-dfu
+
+# Interrupt driven control endpoint task
+OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT
+
+# Build Options
+# comment out to disable the options.
+#
+# BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration(+1000)
+# MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+# CONSOLE_ENABLE = yes # Console for debug(+400)
+# COMMAND_ENABLE = yes # Commands for debug and configuration
+# SLEEP_LED_ENABLE = yes # Breathing sleep LED during USB suspend
+# NKRO_ENABLE = yes # USB Nkey Rollover - not yet supported in LUFA
+# BACKLIGHT_ENABLE = yes
+USB_HID_ENABLE = yes
+
+CUSTOM_MATRIX = yes
+SRC = custom_matrix.cpp
+
+CUSTOM_MATRIX = yes
+SRC = custom_matrix.cpp
diff --git a/keyboards/sirius/unigo66/unigo66.c b/keyboards/sirius/unigo66/unigo66.c
new file mode 100644
index 000000000..6a2d2632b
--- /dev/null
+++ b/keyboards/sirius/unigo66/unigo66.c
@@ -0,0 +1 @@
+#include "unigo66.h"
diff --git a/keyboards/sirius/unigo66/unigo66.h b/keyboards/sirius/unigo66/unigo66.h
new file mode 100644
index 000000000..3215c891b
--- /dev/null
+++ b/keyboards/sirius/unigo66/unigo66.h
@@ -0,0 +1,103 @@
+#ifndef UNIGO66_H
+#define UNIGO66_H
+
+#include "quantum.h"
+
+/* ,---------------. ,---------------. ,---------------.
+ * |F13|F14|F15|F16| |F17|F18|F19|F20| |F21|F22|F23|F24|
+ * ,---. |---------------| |---------------| |---------------| ,-----------. ,---------------. ,-------.
+ * |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |VDn|VUp|Mut|Pwr| | Help |
+ * `---' `---------------' `---------------' `---------------' `-----------' `---------------' `-------'
+ * ,-----------------------------------------------------------. ,-----------. ,---------------. ,-------.
+ * | `| 1| 2| 3| 4| 5| 6| 7| 8| 9| 0| -| =|JPY|Bsp| |Ins|Hom|PgU| |NmL| /| *| -| |Stp|Agn|
+ * |-----------------------------------------------------------| |-----------| |---------------| |-------|
+ * |Tab | Q| W| E| R| T| Y| U| I| O| P| [| ]| \ | |Del|End|PgD| | 7| 8| 9| +| |Mnu|Und|
+ * |-----------------------------------------------------------| `-----------' |---------------| |-------|
+ * |CapsL | A| S| D| F| G| H| J| K| L| ;| :| #|Retn| | 4| 5| 6|KP,| |Sel|Cpy|
+ * |-----------------------------------------------------------| ,---. |---------------| |-------|
+ * |Shft| <| Z| X| C| V| B| N| M| ,| ,| /| RO|Shift | |Up | | 1| 2| 3|KP=| |Exe|Pst|
+ * |-----------------------------------------------------------| ,-----------. |---------------| |-------|
+ * |Ctl|Gui|Alt|MHEN|HNJ| Space |H/E|HENK|KANA|Alt|Gui|App|Ctl| |Lef|Dow|Rig| | 0 | .|Ent| |Fnd|Cut|
+ * `-----------------------------------------------------------' `-----------' `---------------' `-------'
+
+ */
+#define LAYOUT_ALL( \
+ K68,K69,K6A,K6B,K6C,K6D,K6E,K6F,K70,K71,K72,K73, \
+ K29, K3A,K3B,K3C,K3D,K3E,K3F,K40,K41,K42,K43,K44,K45, K46,K47,K48, K81,K80,K7F,K66, K75, \
+ K35,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,K89,K2A, K49,K4A,K4B, K53,K54,K55,K56, K78,K79, \
+ K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30, K31, K4C,K4D,K4E, K5F,K60,K61,K57, K76,K7A, \
+ K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34, K32,K28, K5C,K5D,K5E,K85, K77,K7C, \
+ KE1,K64,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,K38, K87,KE5, K52, K59,K5A,K5B,K67, K74,K7D, \
+ KE0,KE3,KE2,K8B,K91, K2C, K90,K8A,K88,KE6,KE7,K65,KE4, K50,K51,K4F, K62, K63,K58, K7E,K7B \
+) { \
+ { KC_NO, KC_NO, KC_NO, KC_NO, K04, K05, K06, K07, /* 00-07 */ \
+ K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, /* 08-0F */ \
+ { K10, K11, K12, K13, K14, K15, K16, K17, /* 10-17 */ \
+ K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, /* 18-1F */ \
+ { K20, K21, K22, K23, K24, K25, K26, K27, /* 20-27 */ \
+ K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, /* 28-2F */ \
+ { K30, K31, K32, K33, K34, K35, K36, K37, /* 30-37 */ \
+ K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, /* 38-3F */ \
+ { K40, K41, K42, K43, K44, K45, K46, K47, /* 40-47 */ \
+ K48, K49, K4A, K4B, K4C, K4D, K4E, K4F }, /* 48-4F */ \
+ { K50, K51, K52, K53, K54, K55, K56, K57, /* 50-57 */ \
+ K58, K59, K5A, K5B, K5C, K5D, K5E, K5F }, /* 58-5F */ \
+ { K60, K61, K62, K63, K64, K65, K66, K67, /* 60-67 */ \
+ K68, K69, K6A, K6B, K6C, K6D, K6E, K6F }, /* 68-6F */ \
+ { K70, K71, K72, K73, K74, K75, K76, K77, /* 70-77 */ \
+ K78, K79, K7A, K7B, K7C, K7D, K7E, K7F }, /* 78-7F */ \
+ { K80, K81, KC_NO, KC_NO, KC_NO, K85, KC_NO, K87, /* 80-87 */ \
+ K88, K89, K8A, K8B, KC_NO, KC_NO, KC_NO, KC_NO }, /* 88-8F */ \
+ { K90, K91, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, /* 90-97 */ \
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* 98-9F */ \
+ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, /* A0-A7 */ \
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* A8-AF */ \
+ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, /* B0-B7 */ \
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* B8-BF */ \
+ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, /* C0-C7 */ \
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* C8-CF */ \
+ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, /* D0-D7 */ \
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* D8-DF */ \
+ { KE0, KE1, KE2, KE3, KE4, KE5, KE6, KE7, /* E0-E7 */ \
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* E8-EF */ \
+ { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, /* F0-F7 */ \
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO }, /* F8-FF */ \
+}
+
+/*
+ *
+ * ,--------------------------------------------------. ,--------------------------------------------------.
+ * | ESC | 1 | 2 | 3 | 4 | 5 | - | | = | 6 | 7 | 8 | 9 | 0 | Bsp |
+ * |--------+------+------+------+------+-------------| |------+------+------+------+------+------+--------|
+ * | Tab | Q | W | E | R | T | L1 | | [ | Y | U | I | O | P | \ |
+ * |--------+------+------+------+------+------| | | |------+------+------+------+------+--------|
+ * | Caps | A | S | D | F | G |------| |------| H | J | K | L | ; | ' |
+ * |--------+------+------+------+------+------| L2 | | ] |------+------+------+------+------+--------|
+ * | LShift | Z | X | C | V | B | | | | N | M | , | . | / | Up |
+ * `--------+------+------+---------------------------' `---------------------------+------+------+--------'
+ * | Ctrl | Super| Alt | | Left | Down| Right |
+ * `--------------------' `--------------------'
+ * ,------|------. ,---------------.
+ * | | PgUp | | Home | |
+ * | Space|------| |------| Enter |
+ * | | PgDn | | End | |
+ * `-------------' `---------------'
+ */
+#define LAYOUT( \
+ K29,K1E,K1F,K20,K21,K22,K2D, K2E,K23,K24,K25,K26,K27,K2A,\
+ K2B,K14,K1A,K08,K15,K17,K4B, K2F,K1C,K18,K0C,K12,K13,K31,\
+ K39,K04,K16,K07,K09,K0A, K0B,K0D,K0E,K0F,K33,K34,\
+ KE1,K1D,K1B,K06,K19,K05,K4E, K30,K11,K10,K36,K37,K52,KE5,\
+ KE0,KE3,KE2, K50,K51,K4F,\
+ K2C,K49, K4A,K28, \
+ KE6,K4C, K4D,KE4 \
+) LAYOUT_ALL( \
+ KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, \
+ K29, KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,KC_NO, KC_NO,KC_NO,KC_NO, KC_NO,KC_NO,KC_NO,KC_NO,KC_NO,\
+ KC_NO,K1E,K1F,K20,K21,K22,K23,K24,K25,K26,K27,K2D,K2E,KC_NO,K2A, K49,K4A,K4B, KC_NO,KC_NO,KC_NO,KC_NO, KC_NO,KC_NO, \
+ K2B,K14,K1A,K08,K15,K17,K1C,K18,K0C,K12,K13,K2F,K30, K31, K4C,K4D,K4E, KC_NO,KC_NO,KC_NO,KC_NO, KC_NO,KC_NO, \
+ K39,K04,K16,K07,K09,K0A,K0B,K0D,K0E,K0F,K33,K34, KC_NO,K28, KC_NO,KC_NO,KC_NO,KC_NO, KC_NO,KC_NO, \
+ KE1,KC_NO,K1D,K1B,K06,K19,K05,K11,K10,K36,K37,KC_NO, KC_NO,KE5, K52, KC_NO,KC_NO,KC_NO,KC_NO, KC_NO,KC_NO, \
+ KE0,KE3,KE2,KC_NO,KC_NO, K2C, KC_NO,KC_NO,KC_NO,KE6,KC_NO,KC_NO,KE4, K50,K51,K4F, KC_NO, KC_NO,KC_NO, KC_NO,KC_NO \
+)
+#endif