summaryrefslogtreecommitdiff
path: root/keyboards/rominronin/katana60
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/rominronin/katana60')
-rw-r--r--keyboards/rominronin/katana60/rev1/config.h105
-rw-r--r--keyboards/rominronin/katana60/rev1/info.json83
-rw-r--r--keyboards/rominronin/katana60/rev1/keymaps/colemak/config.h24
-rw-r--r--keyboards/rominronin/katana60/rev1/keymaps/colemak/keymap.c97
-rw-r--r--keyboards/rominronin/katana60/rev1/keymaps/colemak/readme.md5
-rw-r--r--keyboards/rominronin/katana60/rev1/keymaps/default/config.h19
-rw-r--r--keyboards/rominronin/katana60/rev1/keymaps/default/keymap.c81
-rw-r--r--keyboards/rominronin/katana60/rev1/keymaps/default/readme.md7
-rw-r--r--keyboards/rominronin/katana60/rev1/keymaps/josefadamcik/config.h20
-rw-r--r--keyboards/rominronin/katana60/rev1/keymaps/josefadamcik/keymap.c163
-rw-r--r--keyboards/rominronin/katana60/rev1/keymaps/josefadamcik/readme.md23
-rw-r--r--keyboards/rominronin/katana60/rev1/keymaps/msiu/config.h21
-rw-r--r--keyboards/rominronin/katana60/rev1/keymaps/msiu/keymap.c70
-rw-r--r--keyboards/rominronin/katana60/rev1/keymaps/msiu/readme.md3
-rw-r--r--keyboards/rominronin/katana60/rev1/keymaps/rominronin/config.h24
-rw-r--r--keyboards/rominronin/katana60/rev1/keymaps/rominronin/keymap.c82
-rw-r--r--keyboards/rominronin/katana60/rev1/keymaps/rominronin/readme.md5
-rw-r--r--keyboards/rominronin/katana60/rev1/readme.md17
-rw-r--r--keyboards/rominronin/katana60/rev1/rev1.c16
-rw-r--r--keyboards/rominronin/katana60/rev1/rev1.h37
-rw-r--r--keyboards/rominronin/katana60/rev1/rules.mk22
-rw-r--r--keyboards/rominronin/katana60/rev2/config.h105
-rw-r--r--keyboards/rominronin/katana60/rev2/info.json579
-rw-r--r--keyboards/rominronin/katana60/rev2/keymaps/default/config.h19
-rw-r--r--keyboards/rominronin/katana60/rev2/keymaps/default/keymap.c71
-rw-r--r--keyboards/rominronin/katana60/rev2/keymaps/default/readme.md1
-rw-r--r--keyboards/rominronin/katana60/rev2/keymaps/rominronin_7u/config.h19
-rw-r--r--keyboards/rominronin/katana60/rev2/keymaps/rominronin_7u/keymap.c79
-rw-r--r--keyboards/rominronin/katana60/rev2/keymaps/rominronin_7u/readme.md1
-rw-r--r--keyboards/rominronin/katana60/rev2/readme.md17
-rw-r--r--keyboards/rominronin/katana60/rev2/rev2.c16
-rw-r--r--keyboards/rominronin/katana60/rev2/rev2.h238
-rw-r--r--keyboards/rominronin/katana60/rev2/rules.mk22
33 files changed, 2091 insertions, 0 deletions
diff --git a/keyboards/rominronin/katana60/rev1/config.h b/keyboards/rominronin/katana60/rev1/config.h
new file mode 100644
index 0000000000..fe10d1a533
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/config.h
@@ -0,0 +1,105 @@
+/*
+Copyright 2017 Baris Tosun
+
+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
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x7272 // "rr" - rominronin
+#define PRODUCT_ID 0x0C2C
+#define DEVICE_VER 0x0001
+#define MANUFACTURER RominRonin CandyKeys
+#define PRODUCT Katana60 rev1
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 15
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+*/
+#define MATRIX_ROW_PINS { F5, F6, F4, F1, D0 }
+#define MATRIX_COL_PINS { B7, B3, B2, B1, B0, C7, D1, D2, C6, B6, B5, B4, D4, D6, D7 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION ROW2COL
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+#define TAPPING_TERM 200
+
+/*
+ * 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/rominronin/katana60/rev1/info.json b/keyboards/rominronin/katana60/rev1/info.json
new file mode 100644
index 0000000000..fa0aa93d67
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/info.json
@@ -0,0 +1,83 @@
+{
+ "keyboard_name": "Katana60 rev1",
+ "url": "",
+ "maintainer": "rominronin",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ {"label":"k40", "x":0, "y":0},
+ {"label":"k41", "x":1, "y":0},
+ {"label":"k42", "x":2, "y":0},
+ {"label":"k43", "x":3, "y":0},
+ {"label":"k44", "x":4, "y":0},
+ {"label":"k45", "x":5, "y":0},
+ {"label":"k46", "x":6, "y":0},
+ {"label":"k47", "x":7, "y":0},
+ {"label":"k48", "x":8, "y":0},
+ {"label":"k49", "x":9, "y":0},
+ {"label":"k4a", "x":10, "y":0},
+ {"label":"k4b", "x":11, "y":0},
+ {"label":"k4c", "x":12, "y":0},
+ {"label":"k4d", "x":13, "y":0},
+ {"label":"k4e", "x":14, "y":0},
+ {"label":"k30", "x":0, "y":1, "w":1.5},
+ {"label":"k31", "x":1.5, "y":1},
+ {"label":"k32", "x":2.5, "y":1},
+ {"label":"k33", "x":3.5, "y":1},
+ {"label":"k34", "x":4.5, "y":1},
+ {"label":"k35", "x":5.5, "y":1},
+ {"label":"k36", "x":6.5, "y":1},
+ {"label":"k37", "x":7.5, "y":1},
+ {"label":"k38", "x":8.5, "y":1},
+ {"label":"k39", "x":9.5, "y":1},
+ {"label":"k3a", "x":10.5, "y":1},
+ {"label":"k3b", "x":11.5, "y":1},
+ {"label":"k3c", "x":12.5, "y":1},
+ {"label":"k3d", "x":13.5, "y":1, "w":1.5},
+ {"label":"k20", "x":0, "y":2, "w":1.25},
+ {"label":"k21", "x":1.25, "y":2},
+ {"label":"k22", "x":2.25, "y":2},
+ {"label":"k23", "x":3.25, "y":2},
+ {"label":"k24", "x":4.25, "y":2},
+ {"label":"k25", "x":5.25, "y":2},
+ {"label":"k26", "x":6.25, "y":2},
+ {"label":"k27", "x":7.75, "y":2},
+ {"label":"k28", "x":8.75, "y":2},
+ {"label":"k29", "x":9.75, "y":2},
+ {"label":"k2a", "x":10.75, "y":2},
+ {"label":"k2b", "x":11.75, "y":2},
+ {"label":"k2c", "x":12.75, "y":2},
+ {"label":"k2d", "x":13.75, "y":2, "w":1.25},
+ {"label":"k10", "x":0, "y":3},
+ {"label":"k11", "x":1, "y":3},
+ {"label":"k12", "x":2, "y":3},
+ {"label":"k13", "x":3, "y":3},
+ {"label":"k14", "x":4, "y":3},
+ {"label":"k15", "x":5, "y":3},
+ {"label":"k16", "x":6, "y":3},
+ {"label":"k17", "x":7, "y":3},
+ {"label":"k18", "x":8, "y":3},
+ {"label":"k19", "x":9, "y":3},
+ {"label":"k1a", "x":10, "y":3},
+ {"label":"k1b", "x":11, "y":3},
+ {"label":"k1c", "x":12, "y":3},
+ {"label":"k1d", "x":13, "y":3},
+ {"label":"k1e", "x":14, "y":3},
+ {"label":"k00", "x":0, "y":4},
+ {"label":"k01", "x":1, "y":4, "w":1.25},
+ {"label":"k02", "x":2.25, "y":4, "w":1.25},
+ {"label":"k03", "x":3.5, "y":4, "w":1.25},
+ {"label":"k04", "x":4.75, "y":4, "w":2.25},
+ {"label":"k05", "x":7, "y":4},
+ {"label":"k06", "x":8, "y":4, "w":2},
+ {"label":"k09", "x":10, "y":4},
+ {"label":"k0a", "x":11, "y":4},
+ {"label":"k0b", "x":12, "y":4},
+ {"label":"k0c", "x":13, "y":4},
+ {"label":"k0d", "x":14, "y":4}
+ ]
+ }
+ }
+}
diff --git a/keyboards/rominronin/katana60/rev1/keymaps/colemak/config.h b/keyboards/rominronin/katana60/rev1/keymaps/colemak/config.h
new file mode 100644
index 0000000000..08c51f6cb5
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/keymaps/colemak/config.h
@@ -0,0 +1,24 @@
+/* Copyright 2017 Baris Tosun
+ *
+ * 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/>.
+ */
+
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+// place overrides here
+
+#endif
diff --git a/keyboards/rominronin/katana60/rev1/keymaps/colemak/keymap.c b/keyboards/rominronin/katana60/rev1/keymaps/colemak/keymap.c
new file mode 100644
index 0000000000..91128bd5c4
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/keymaps/colemak/keymap.c
@@ -0,0 +1,97 @@
+/* Copyright 2017 Baris Tosun
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// Windows based definitions.
+#define K_SPCFN LT(SYMB, KC_SPACE) // Tap for space, hold for symbols layer
+#define K_PRVWD LCTL(KC_LEFT) // Previous word
+#define K_NXTWD LCTL(KC_RIGHT) // Next word
+#define K_LSTRT KC_HOME // Start of line
+#define K_LEND KC_END // End of line
+#define UNDO LCTL(KC_Z) // UNDO
+#define CUT LCTL(KC_X) // CUT
+#define COPY LCTL(KC_C) // COPY
+#define PASTE LCTL(KC_V) // PASTE
+
+
+#define BASE 0 // Default
+#define NUMB 1 // Numbers
+#define SYMB 2 // Symbols
+#define CURS 3 // Text Editing
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[BASE] = LAYOUT( /* Base */
+ KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, DF(1), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRC, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
+ MO(3), KC_A, KC_R, KC_S, KC_T, KC_D, KC_HOME, KC_PGUP, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_DEL, KC_PGDN, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ MO(2), KC_LCTL, KC_LGUI, KC_LALT, KC_BSPC, KC_ENT, K_SPCFN, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,MO(2)
+ ),
+[NUMB] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, DF(0), KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______,
+ _______, _______, _______, KC_MS_U, _______, _______, _______, KC_7, KC_8, KC_9, KC_PPLS, _______, _______, _______,
+ _______, KC_BTN2, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_4, KC_5, KC_6, KC_PPLS, _______, _______, _______,
+ _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, KC_1, KC_2, KC_3, KC_PENT, _______, _______, _______,
+ _______, _______, _______, _______, KC_BTN1, _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______
+ ),
+[SYMB] = LAYOUT(
+ RESET, _______, 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_VOLD, KC_VOLU, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
+ _______, KC_PLUS, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_MPRV, KC_MPLY, KC_MNXT, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______,
+ _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______, _______
+ ),
+[CURS] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, KC_WH_U, _______, _______, _______, _______, _______, _______, K_PRVWD, KC_UP, K_NXTWD, _______, _______,
+ _______, KC_LCTL, KC_WH_D, KC_LSFT, _______, _______, _______, _______, KC_BSPC, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, _______,
+ _______, UNDO, CUT, COPY, PASTE, _______, _______, _______, _______, _______, K_LSTRT, _______, K_LEND, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+
+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/rominronin/katana60/rev1/keymaps/colemak/readme.md b/keyboards/rominronin/katana60/rev1/keymaps/colemak/readme.md
new file mode 100644
index 0000000000..4446bffca3
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/keymaps/colemak/readme.md
@@ -0,0 +1,5 @@
+# The colemak keymap for katana60
+
+Same as the default layout, but with default Colemal layout.
+
+# TODO: references to extend layer and symbol layers \ No newline at end of file
diff --git a/keyboards/rominronin/katana60/rev1/keymaps/default/config.h b/keyboards/rominronin/katana60/rev1/keymaps/default/config.h
new file mode 100644
index 0000000000..c4bea7eb03
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/keymaps/default/config.h
@@ -0,0 +1,19 @@
+/* Copyright 2017 Baris Tosun
+ *
+ * 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
+
+// place overrides here
diff --git a/keyboards/rominronin/katana60/rev1/keymaps/default/keymap.c b/keyboards/rominronin/katana60/rev1/keymaps/default/keymap.c
new file mode 100644
index 0000000000..989c7c16b3
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/keymaps/default/keymap.c
@@ -0,0 +1,81 @@
+/* Copyright 2017 Baris Tosun
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// Windows based definitions.
+#define K_SPCFN LT(SYMB, KC_SPACE) // Tap for space, hold for symbols layer
+#define K_PRVWD LCTL(KC_LEFT) // Previous word
+#define K_NXTWD LCTL(KC_RIGHT) // Next word
+#define K_LSTRT KC_HOME // Start of line
+#define K_LEND KC_END // End of line
+#define UNDO LCTL(KC_Z) // UNDO
+#define CUT LCTL(KC_X) // CUT
+#define COPY LCTL(KC_C) // COPY
+#define PASTE LCTL(KC_V) // PASTE
+
+
+#define BASE 0 // Default
+#define NUMB 1 // Numbers
+#define SYMB 2 // Symbols
+#define CURS 3 // Text Editing
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[BASE] = LAYOUT( /* Base */
+ KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, DF(1), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
+ 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_BSPC,
+ MO(3), KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_DEL, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ MO(2), KC_LCTL, KC_LGUI, KC_LALT, KC_BSPC, KC_ENT, K_SPCFN, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,MO(2)
+ ),
+[NUMB] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, DF(0), KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______,
+ _______, _______, _______, KC_MS_U, _______, _______, _______, KC_7, KC_8, KC_9, KC_PPLS, _______, _______, _______,
+ _______, KC_BTN2, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_4, KC_5, KC_6, KC_PPLS, _______, _______, _______,
+ _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, KC_1, KC_2, KC_3, KC_PENT, _______, _______, _______,
+ _______, _______, _______, _______, KC_BTN1, _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______
+ ),
+[SYMB] = LAYOUT(
+ RESET, _______, 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_VOLD, KC_VOLU, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
+ _______, KC_PLUS, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_MPRV, KC_MPLY, KC_MNXT, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______,
+ _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______, _______
+ ),
+[CURS] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, KC_WH_U, _______, _______, _______, _______, _______, _______, K_PRVWD, KC_UP, K_NXTWD, _______, _______,
+ _______, KC_LCTL, KC_WH_D, KC_LSFT, _______, _______, _______, _______, KC_BSPC, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, _______,
+ _______, UNDO, CUT, COPY, PASTE, _______, _______, _______, _______, _______, K_LSTRT, _______, K_LEND, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+
+};
+
+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/rominronin/katana60/rev1/keymaps/default/readme.md b/keyboards/rominronin/katana60/rev1/keymaps/default/readme.md
new file mode 100644
index 0000000000..a75a385869
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/keymaps/default/readme.md
@@ -0,0 +1,7 @@
+# The default keymap for katana60
+
+This layout takes my own personal layout (in development at the Colemak forum) and remaps the keys and shortcuts for Windows (I'm a MacOS user).
+The testing was comducted on my Windows gaming PC, though it was not exhaustive, all the many layers and useful navigation shortcuts worked fine.
+
+# TODO: references to extend layer and symbol layers
+# TODO: more information \ No newline at end of file
diff --git a/keyboards/rominronin/katana60/rev1/keymaps/josefadamcik/config.h b/keyboards/rominronin/katana60/rev1/keymaps/josefadamcik/config.h
new file mode 100644
index 0000000000..0054f43e6b
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/keymaps/josefadamcik/config.h
@@ -0,0 +1,20 @@
+/* Copyright 2017 Baris Tosun
+ *
+ * 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
+
+// place overrides here
+
diff --git a/keyboards/rominronin/katana60/rev1/keymaps/josefadamcik/keymap.c b/keyboards/rominronin/katana60/rev1/keymaps/josefadamcik/keymap.c
new file mode 100644
index 0000000000..8556ee424c
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/keymaps/josefadamcik/keymap.c
@@ -0,0 +1,163 @@
+/* Copyright 2019 Josef Adamcik
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+enum katana_layers {
+ /* _M_XYZ = Mac Os, _W_XYZ = Win/Linux */
+ _M_COLEMAK,
+ _M_QWERTY,
+ _W_COLEMAK,
+ _W_QWERTY,
+ _NUMB,
+ _SYMB,
+ _M_EXT,
+ _W_EXT
+};
+
+enum katana_keycodes {
+ M_COLEMAK = SAFE_RANGE,
+ M_QWERTY,
+ W_COLEMAK,
+ W_QWERTY
+};
+
+#define K_SPCFN LT(_SYMB, KC_SPACE) /* Tap for space, hold for symbols layer */
+#define K_BSPFN LT(_SYMB, KC_BSPC) /* Tap for backspace, hold for symbols layer */
+/* Linux/win variants */
+#define W_LEFT_MOD MT(MOD_RCTL, KC_LEFT)
+#define W_DOWN_MOD MT(MOD_RALT, KC_DOWN)
+#define W_UP_MOD MT(MOD_RGUI, KC_UP)
+#define W_UNDO LCTL(KC_Z)
+#define W_CUT LCTL(KC_X)
+#define W_COPY LCTL(KC_C)
+#define W_PASTE LCTL(KC_V)
+#define W_PRVWD LCTL(KC_LEFT)
+#define W_NXTWD LCTL(KC_RIGHT)
+#define W_LSTRT KC_HOME
+#define W_LEND KC_END
+/* Mac variants */
+#define M_LEFT_MOD MT(MOD_RGUI, KC_LEFT)
+#define M_DOWN_MOD MT(MOD_RALT, KC_DOWN)
+#define M_UP_MOD MT(MOD_RCTL, KC_UP)
+#define M_UNDO LGUI(KC_Z)
+#define M_CUT LGUI(KC_X)
+#define M_COPY LGUI(KC_C)
+#define M_PASTE LGUI(KC_V)
+#define M_PRVWD LALT(KC_LEFT)
+#define M_NXTWD LALT(KC_RIGHT)
+#define M_LSTRT LGUI(KC_LEFT)
+#define M_LEND LGUI(KC_RIGHT)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_M_COLEMAK] = LAYOUT(
+ KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_NUMB),KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRC, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
+ MO(_M_EXT),KC_A, KC_R, KC_S, KC_T, KC_D, KC_MINS, KC_QUOT, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_EQL, KC_DEL, KC_BSLS, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ MO(_SYMB), KC_LCTL, KC_LALT, KC_LGUI, K_BSPFN, KC_ENT, KC_SPACE, M_LEFT_MOD,M_DOWN_MOD,M_UP_MOD, KC_RIGHT,MO(_SYMB)
+),
+[_M_QWERTY] = LAYOUT(
+ KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_NUMB),KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
+ 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_BSPC,
+ MO(_M_EXT),KC_A, KC_S, KC_D, KC_F, KC_G, KC_MINS, KC_QUOT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_EQL, KC_DEL, KC_BSLS, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ MO(_SYMB), KC_LCTL, KC_LALT, KC_LGUI, K_BSPFN, KC_ENT, KC_SPACE, M_LEFT_MOD,M_DOWN_MOD,M_UP_MOD, KC_RIGHT,MO(_SYMB)
+),
+[_W_COLEMAK] = LAYOUT(
+ KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_NUMB),KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRC, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
+ MO(_W_EXT),KC_A, KC_R, KC_S, KC_T, KC_D, KC_MINS, KC_QUOT, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_EQL, KC_DEL, KC_BSLS, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ MO(_SYMB), KC_LGUI, KC_LALT, KC_LCTL, K_BSPFN, KC_ENT, KC_SPACE, W_LEFT_MOD,W_DOWN_MOD,W_UP_MOD, KC_RIGHT,MO(_SYMB)
+),
+[_W_QWERTY] = LAYOUT(
+ KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, TG(_NUMB),KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
+ 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_BSPC,
+ MO(_W_EXT),KC_A, KC_S, KC_D, KC_F, KC_G, KC_MINS, KC_QUOT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_EQL, KC_DEL, KC_BSLS, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ MO(_SYMB), KC_LGUI, KC_LALT, KC_LCTL, K_BSPFN, KC_ENT, KC_SPACE, W_LEFT_MOD,W_DOWN_MOD,W_UP_MOD, KC_RIGHT,MO(_SYMB)
+),
+[_NUMB] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______,_______, KC_PSLS, KC_PAST, KC_PMNS, _______, _______,
+ _______, _______, _______, KC_MS_U, _______, _______, _______, _______,_______, KC_7, KC_8, KC_9, KC_PPLS, _______,
+ _______, KC_BTN2, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______,_______, KC_4, KC_5, KC_6, KC_PPLS, _______,
+ _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, _______,_______, KC_1, KC_2, KC_3, KC_PENT, _______,
+ _______, _______, _______, _______, KC_BTN1, _______, KC_P0, KC_PDOT, _______, _______, _______, _______
+),
+[_SYMB] = LAYOUT(
+ RESET, _______, 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_VOLD, KC_VOLU, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
+ _______, KC_PLUS, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_MPRV, KC_MPLY, KC_MNXT, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______,
+ _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______, _______
+),
+[_M_EXT] = LAYOUT(
+ RESET ,M_COLEMAK,M_QWERTY,W_COLEMAK,W_QWERTY,_______,_______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, M_PRVWD, KC_UP, M_NXTWD, _______, _______,
+ _______, KC_LALT, KC_LCTL, KC_LSFT, _______, KC_CAPS, _______, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, _______,
+ _______, M_UNDO, M_CUT, M_COPY, M_PASTE, _______, _______, _______, _______, _______, M_LSTRT, _______, M_LEND, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+[_W_EXT] = LAYOUT(
+ RESET ,M_COLEMAK,M_QWERTY,W_COLEMAK,W_QWERTY,_______,_______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, W_PRVWD, KC_UP, W_NXTWD, _______, _______,
+ _______, KC_LALT, KC_LCTL, KC_LSFT, _______, KC_CAPS, _______, _______, KC_PGDN, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, _______,
+ _______, W_UNDO, W_CUT, W_COPY, W_PASTE, _______, _______, _______, _______, _______, W_LSTRT, _______, W_LEND, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+)
+};
+
+void matrix_init_user(void) {
+
+}
+
+void matrix_scan_user(void) {
+
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case M_QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_M_QWERTY);
+ }
+ return false;
+ break;
+ case M_COLEMAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_M_COLEMAK);
+ }
+ return false;
+ break;
+ case W_QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_W_QWERTY);
+ }
+ return false;
+ break;
+ case W_COLEMAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_W_COLEMAK);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+void led_set_user(uint8_t usb_led) {
+
+}
diff --git a/keyboards/rominronin/katana60/rev1/keymaps/josefadamcik/readme.md b/keyboards/rominronin/katana60/rev1/keymaps/josefadamcik/readme.md
new file mode 100644
index 0000000000..5d72b1defa
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/keymaps/josefadamcik/readme.md
@@ -0,0 +1,23 @@
+![Multi OS Katana60 layout image](https://i.imgur.com/1w2OA1o.png)
+
+# Multi OS Katana60 layout
+
+Based on the default Katana60 layout, customized by [Josef Adamcik](https://josef-adamcik.cz) with several basic layers (Colemak vs Qwerty, Mac OS vs Linux/Win)
+
+- Supports 4 default layers: Colemak Mac, Qwerty Mac, Colemak Win/Linux, Qwerty Win/Linux. Switching between default layers is persisted. For more details about Mac vs Win/Linux see below.
+- There are arrows mapped to the right side of the bottom row on Katana6O. I kept this mapping but modified it a bit - when you press and hold any of the first three arrow keys it acts as a modifier (CMD, OPT, CTRL). If you just tap it, it acts as an arrow.
+
+## Mac versus Win/Linux layers:
+
+- Modifiers are ordered differently. Mac version has (from the middle to the outside): CMD, ALT, CTRL, Win/Linux version has CTRL, ALT, CMD. It's meant to make switching between platforms easier.
+- Extend layer is different, so the keys which represent shortcuts ("previous/next word" and "copy", "paste", "cut", "undo") work properly.
+
+## More details - reasons for some choices in this layout
+
+I use Mac for work and Ubuntu at home. So I would like to stay compatible with both systems. The main problem is the modifiers. Firstly, they tend to be ordered differently on Mac keyboards. Secondly, the main modifier on Mac is CMD (equivalent to WIn or SUPER on other keyboards). The same role is played by CTRL on Windows and Linux. Most of IDE’s or editors (Android Studio, VS Code, SublimeText) follow this habit in their OS-specific keymaps.
+
+I am a user of the Colemak layout. But I would like to have the ability to switch to qwerty. That would allow my other people to use my keyboard occasionally.
+
+I am a heavy user of keyboard shortcuts. So I need the layout to support my needs. Some keyboard layout has modifiers only on one side of the keyboard or they hide some of them (CMD) under a key combination. I tend to press the modifiers for a key shortcut with the opposite hand to the one which presses the letter.
+
+Layout in [keyboard-layout-editor.com](http://www.keyboard-layout-editor.com/#/gists/14d62ee67d36621c37888783fa29b107)
diff --git a/keyboards/rominronin/katana60/rev1/keymaps/msiu/config.h b/keyboards/rominronin/katana60/rev1/keymaps/msiu/config.h
new file mode 100644
index 0000000000..b57cc482ec
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/keymaps/msiu/config.h
@@ -0,0 +1,21 @@
+/* Copyright 2017 Baris Tosun
+ *
+ * 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
+
+
+// place overrides here
+
diff --git a/keyboards/rominronin/katana60/rev1/keymaps/msiu/keymap.c b/keyboards/rominronin/katana60/rev1/keymaps/msiu/keymap.c
new file mode 100644
index 0000000000..72b795baa5
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/keymaps/msiu/keymap.c
@@ -0,0 +1,70 @@
+#include QMK_KEYBOARD_H
+
+// Mod-Tap keys for cleaner code
+#define ESC_CTL LCTL_T(KC_ESC)
+#define SPC_LW LT(2, KC_SPC)
+#define ENT_FN LT(4, KC_ENT)
+
+#define _QW 0
+#define _DV 1
+#define _LW 2
+#define _RS 3
+#define _FN 4
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[_QW] = LAYOUT( /* Base */
+ KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, TG(1), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_PLUS,
+ 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_BSPC,
+ ESC_CTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_PGUP, 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_END, KC_DEL, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
+ KC_LCTL, KC_HYPR, KC_LALT, KC_LGUI, SPC_LW, ENT_FN, KC_SPC, MO(3), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
+ ),
+[_DV] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, _______, _______, KC_F, KC_G, KC_C, KC_R, KC_L, _______,
+ _______, KC_A, KC_O, KC_E, KC_U, KC_I, _______, _______, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
+ _______, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, _______, _______, _______, KC_B, KC_M, KC_W, KC_V, KC_Z, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+[_LW] = LAYOUT(
+ _______, _______, 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_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, KC_PGDN, KC_PGUP, KC_HOME, KC_END , KC_MUTE,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+[_RS] = LAYOUT(
+ _______, _______, 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_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, KC_PGDN, KC_PGUP, KC_HOME, KC_END , KC_MUTE,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
+ ),
+[_FN] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, KC_PSCR, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
+
+
+
+
+
+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/rominronin/katana60/rev1/keymaps/msiu/readme.md b/keyboards/rominronin/katana60/rev1/keymaps/msiu/readme.md
new file mode 100644
index 0000000000..e4f0ebdb6e
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/keymaps/msiu/readme.md
@@ -0,0 +1,3 @@
+# msiu's keymap for katana: standard QWERTY layout with planck like layers
+
+This layout take a standard QWERTY default layer, with raise and lower layers similar to planck. It is for me to easily transition between keyboards. I put a few nav keys in the 'tree' middle, but I have come to realise I rarely use them as I am used to the planck layering. Top of the tree is a toggle for Dvorak layer.
diff --git a/keyboards/rominronin/katana60/rev1/keymaps/rominronin/config.h b/keyboards/rominronin/katana60/rev1/keymaps/rominronin/config.h
new file mode 100644
index 0000000000..08c51f6cb5
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/keymaps/rominronin/config.h
@@ -0,0 +1,24 @@
+/* Copyright 2017 Baris Tosun
+ *
+ * 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/>.
+ */
+
+#ifndef CONFIG_USER_H
+#define CONFIG_USER_H
+
+#include "../../config.h"
+
+// place overrides here
+
+#endif
diff --git a/keyboards/rominronin/katana60/rev1/keymaps/rominronin/keymap.c b/keyboards/rominronin/katana60/rev1/keymaps/rominronin/keymap.c
new file mode 100644
index 0000000000..5666dba9d5
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/keymaps/rominronin/keymap.c
@@ -0,0 +1,82 @@
+/* Copyright 2017 Baris Tosun
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// MacOS based definitions.
+#define K_SPCFN LT(SYMB, KC_SPACE) // Tap for space, hold for symbols layer
+#define K_PRVWD LALT(KC_LEFT) // Previous word
+#define K_NXTWD LALT(KC_RIGHT) // Next word
+#define K_LSTRT LGUI(KC_LEFT) // Start of line
+#define K_LEND LGUI(KC_RIGHT) // End of line
+#define UNDO LGUI(KC_Z) // UNDO
+#define CUT LGUI(KC_X) // CUT
+#define COPY LGUI(KC_C) // COPY
+#define PASTE LGUI(KC_V) // PASTE
+
+
+#define BASE 0 // Default
+#define NUMB 1 // Numbers
+#define SYMB 2 // Symbols
+#define CURS 3 // Text Editing
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+[BASE] = LAYOUT( /* Base */
+ KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, DF(1), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_LBRC, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, KC_BSPC,
+ MO(3), KC_A, KC_R, KC_S, KC_T, KC_G, KC_HOME, KC_PGUP, KC_M, KC_N, KC_E, KC_I, KC_O, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_END, KC_DEL, KC_PGDN, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ MO(2), KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, KC_ENT, K_SPCFN, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,MO(2)
+ ),
+[NUMB] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, DF(0), KC_PSLS, KC_PAST, KC_PMNS, _______, _______, _______, _______,
+ _______, _______, _______, KC_MS_U, _______, _______, _______, KC_7, KC_8, KC_9, KC_PPLS, _______, _______, _______,
+ _______, KC_BTN2, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, KC_4, KC_5, KC_6, KC_PPLS, _______, _______, _______,
+ _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, KC_1, KC_2, KC_3, KC_PENT, _______, _______, _______,
+ _______, _______, _______, _______, KC_BTN1, _______, KC_P0, KC_PDOT, KC_PENT, _______, _______, _______
+ ),
+[SYMB] = LAYOUT(
+ RESET, _______, 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_VOLD, KC_VOLU, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
+ _______, KC_PLUS, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_MPRV, KC_MPLY, KC_MNXT, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______,
+ _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______, _______
+ ),
+[CURS] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, KC_WH_U, _______, _______, _______, _______, _______, _______, K_PRVWD, KC_UP, K_NXTWD, _______, _______,
+ _______, KC_LCTL, KC_WH_D, KC_LSFT, _______, _______, _______, _______, KC_BSPC, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, _______,
+ _______, UNDO, CUT, COPY, PASTE, _______, _______, _______, _______, _______, K_LSTRT, _______, K_LEND, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+
+};
+
+
+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/rominronin/katana60/rev1/keymaps/rominronin/readme.md b/keyboards/rominronin/katana60/rev1/keymaps/rominronin/readme.md
new file mode 100644
index 0000000000..9647426f70
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/keymaps/rominronin/readme.md
@@ -0,0 +1,5 @@
+# RominRonin's keymap for katana60
+
+My own personal daily layout. OS keys are oriented for MacOS and the keys are in COLEMAK Mod-DH layout.
+
+# TODO: references to extend layer and symbol layers \ No newline at end of file
diff --git a/keyboards/rominronin/katana60/rev1/readme.md b/keyboards/rominronin/katana60/rev1/readme.md
new file mode 100644
index 0000000000..d41548b18d
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/readme.md
@@ -0,0 +1,17 @@
+# Katana60 rev1
+
+![Katana60 rev1](https://i.imgur.com/xVkODOul.jpg)
+
+A 60% keyboard with a symmetrical staggered layout, sold by CandyKeys.com.
+
+Keyboard Maintainer: [Baris Tosun](https://github.com/rominronin)
+Hardware Supported: Katana60 PCB rev1
+Hardware Availability: the rev1 is no longer available, the rev2 can be found at [candykeys.com](https://candykeys.com/product/katana60-pcb-V2)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make rominronin/katana60/rev1: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).
+
+There is also ongoing discussion for the extend layer, at the [Colemak Forum](https://forum.colemak.com/topic/2327-developing-an-extend-layer-for-the-katana60/)
diff --git a/keyboards/rominronin/katana60/rev1/rev1.c b/keyboards/rominronin/katana60/rev1/rev1.c
new file mode 100644
index 0000000000..e57ae2bbcb
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/rev1.c
@@ -0,0 +1,16 @@
+/* Copyright 2017 Baris Tosun
+ *
+ * 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 "rev1.h"
diff --git a/keyboards/rominronin/katana60/rev1/rev1.h b/keyboards/rominronin/katana60/rev1/rev1.h
new file mode 100644
index 0000000000..52926cc35e
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/rev1.h
@@ -0,0 +1,37 @@
+/* Copyright 2017 Baris Tosun
+ *
+ * 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
+
+#include "quantum.h"
+
+// This a shortcut to help you visually see your layout.
+// The following is an example using the Planck MIT layout
+// The first section contains all of the arguments
+// The second converts the arguments into a two-dimensional array
+#define LAYOUT( \
+ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
+ k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
+ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, \
+ k00, k01, k02, k03, k04, k05, k06, k09, k0a, k0b, k0c, k0d \
+) \
+{ \
+ { k00, k01, k02, k03, k04, k05, k06, KC_NO, KC_NO, k09, k0a, k0b, k0c, k0d, KC_NO }, \
+ { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e }, \
+ { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, KC_NO }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, KC_NO }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4b, k4c, k4d, k4e }, \
+}
diff --git a/keyboards/rominronin/katana60/rev1/rules.mk b/keyboards/rominronin/katana60/rev1/rules.mk
new file mode 100644
index 0000000000..7b69908b1b
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev1/rules.mk
@@ -0,0 +1,22 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+BLUETOOTH_ENABLE = no # Enable Bluetooth
+AUDIO_ENABLE = no # Audio output
diff --git a/keyboards/rominronin/katana60/rev2/config.h b/keyboards/rominronin/katana60/rev2/config.h
new file mode 100644
index 0000000000..7eff68a7f4
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev2/config.h
@@ -0,0 +1,105 @@
+/*
+Copyright 2019 rominronin
+
+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
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x7272 // "rr" - rominronin
+#define PRODUCT_ID 0xF03B
+#define DEVICE_VER 0x0001
+#define MANUFACTURER RominRonin CandyKeys
+#define PRODUCT Katana60 rev2
+
+/* key matrix size */
+#define MATRIX_ROWS 5
+#define MATRIX_COLS 15
+
+/*
+ * Keyboard Matrix Assignments
+ *
+ * Change this to how you wired your keyboard
+ * COLS: AVR pins used for columns, left to right
+ * ROWS: AVR pins used for rows, top to bottom
+ * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
+ * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
+ *
+ */
+#define MATRIX_ROW_PINS { B0, E6, D5, B4, B5 }
+#define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7, C6, B6, D6, D4, D3, D2, D1, D0 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+#define TAPPING_TERM 200
+
+/*
+ * 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/rominronin/katana60/rev2/info.json b/keyboards/rominronin/katana60/rev2/info.json
new file mode 100644
index 0000000000..bc31ae6491
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev2/info.json
@@ -0,0 +1,579 @@
+{
+ "keyboard_name": "Katana60 rev2",
+ "url": "https://candykeys.com/product/katana60-pcb-V2",
+ "maintainer": "rominronin",
+ "width": 15,
+ "height": 5,
+ "layouts": {
+ "LAYOUT_7u_a": {
+ "layout": [
+ {"label":"k00","x":0,"y":0},
+ {"label":"k01","x":1,"y":0},
+ {"label":"k02","x":2,"y":0},
+ {"label":"k03","x":3,"y":0},
+ {"label":"k04","x":4,"y":0},
+ {"label":"k05","x":5,"y":0},
+ {"label":"k06","x":6,"y":0},
+ {"label":"k07","x":7,"y":0},
+ {"label":"k08","x":8,"y":0},
+ {"label":"k09","x":9,"y":0},
+ {"label":"k0a","x":10,"y":0},
+ {"label":"k0b","x":11,"y":0},
+ {"label":"k0c","x":12,"y":0},
+ {"label":"k0d","x":13,"y":0},
+ {"label":"k0e","x":14,"y":0},
+ {"label":"k10","x":0,"y":1,"w":1.5},
+ {"label":"k11","x":1.5,"y":1},
+ {"label":"k12","x":2.5,"y":1},
+ {"label":"k13","x":3.5,"y":1},
+ {"label":"k14","x":4.5,"y":1},
+ {"label":"k15","x":5.5,"y":1},
+ {"label":"k16","x":6.5,"y":1},
+ {"label":"k18","x":7.5,"y":1},
+ {"label":"k19","x":8.5,"y":1},
+ {"label":"k1a","x":9.5,"y":1},
+ {"label":"k1b","x":10.5,"y":1},
+ {"label":"k1c","x":11.5,"y":1},
+ {"label":"k1d","x":12.5,"y":1},
+ {"label":"k1e","x":13.5,"y":1,"w":1.5},
+ {"label":"k20","x":0,"y":2,"w":1.25},
+ {"label":"k21","x":1.25,"y":2},
+ {"label":"k22","x":2.25,"y":2},
+ {"label":"k23","x":3.25,"y":2},
+ {"label":"k24","x":4.25,"y":2},
+ {"label":"k25","x":5.25,"y":2},
+ {"label":"k26","x":6.25,"y":2},
+ {"label":"k28","x":7.75,"y":2},
+ {"label":"k29","x":8.75,"y":2},
+ {"label":"k2a","x":9.75,"y":2},
+ {"label":"k2b","x":10.75,"y":2},
+ {"label":"k2c","x":11.75,"y":2},
+ {"label":"k2d","x":12.75,"y":2},
+ {"label":"k2e","x":13.75,"y":2,"w":1.25},
+ {"label":"k30","x":0,"y":3},
+ {"label":"k31","x":1,"y":3},
+ {"label":"k32","x":2,"y":3},
+ {"label":"k33","x":3,"y":3},
+ {"label":"k34","x":4,"y":3},
+ {"label":"k35","x":5,"y":3},
+ {"label":"k36","x":6,"y":3},
+ {"label":"k37","x":7,"y":3},
+ {"label":"k38","x":8,"y":3},
+ {"label":"k39","x":9,"y":3},
+ {"label":"k3a","x":10,"y":3},
+ {"label":"k3b","x":11,"y":3},
+ {"label":"k3c","x":12,"y":3},
+ {"label":"k3d","x":13,"y":3},
+ {"label":"k3e","x":14,"y":3},
+ {"label":"k41","x":0,"y":4,"w":1.5},
+ {"label":"k42","x":1.5,"y":4},
+ {"label":"k43","x":2.5,"y":4,"w":1.5},
+ {"label":"k47","x":4,"y":4,"w":7},
+ {"label":"k4b","x":11,"y":4},
+ {"label":"k4c","x":12,"y":4},
+ {"label":"k4d","x":13,"y":4},
+ {"label":"k4e","x":14,"y":4}
+ ]
+ },
+ "LAYOUT_7u_b": {
+ "layout": [
+ {"label":"k00","x":0,"y":0},
+ {"label":"k01","x":1,"y":0},
+ {"label":"k02","x":2,"y":0},
+ {"label":"k03","x":3,"y":0},
+ {"label":"k04","x":4,"y":0},
+ {"label":"k05","x":5,"y":0},
+ {"label":"k06","x":6,"y":0},
+ {"label":"k07","x":7,"y":0},
+ {"label":"k08","x":8,"y":0},
+ {"label":"k09","x":9,"y":0},
+ {"label":"k0a","x":10,"y":0},
+ {"label":"k0b","x":11,"y":0},
+ {"label":"k0c","x":12,"y":0},
+ {"label":"k0d","x":13,"y":0},
+ {"label":"k0e","x":14,"y":0},
+ {"label":"k10","x":0,"y":1,"w":1.5},
+ {"label":"k11","x":1.5,"y":1},
+ {"label":"k12","x":2.5,"y":1},
+ {"label":"k13","x":3.5,"y":1},
+ {"label":"k14","x":4.5,"y":1},
+ {"label":"k15","x":5.5,"y":1},
+ {"label":"k16","x":6.5,"y":1},
+ {"label":"k18","x":7.5,"y":1},
+ {"label":"k19","x":8.5,"y":1},
+ {"label":"k1a","x":9.5,"y":1},
+ {"label":"k1b","x":10.5,"y":1},
+ {"label":"k1c","x":11.5,"y":1},
+ {"label":"k1d","x":12.5,"y":1},
+ {"label":"k1e","x":13.5,"y":1,"w":1.5},
+ {"label":"k20","x":0,"y":2,"w":1.25},
+ {"label":"k21","x":1.25,"y":2},
+ {"label":"k22","x":2.25,"y":2},
+ {"label":"k23","x":3.25,"y":2},
+ {"label":"k24","x":4.25,"y":2},
+ {"label":"k25","x":5.25,"y":2},
+ {"label":"k26","x":6.25,"y":2},
+ {"label":"k28","x":7.75,"y":2},
+ {"label":"k29","x":8.75,"y":2},
+ {"label":"k2a","x":9.75,"y":2},
+ {"label":"k2b","x":10.75,"y":2},
+ {"label":"k2c","x":11.75,"y":2},
+ {"label":"k2d","x":12.75,"y":2},
+ {"label":"k2e","x":13.75,"y":2,"w":1.25},
+ {"label":"k30","x":0,"y":3},
+ {"label":"k31","x":1,"y":3},
+ {"label":"k32","x":2,"y":3},
+ {"label":"k33","x":3,"y":3},
+ {"label":"k34","x":4,"y":3},
+ {"label":"k35","x":5,"y":3},
+ {"label":"k36","x":6,"y":3},
+ {"label":"k37","x":7,"y":3},
+ {"label":"k38","x":8,"y":3},
+ {"label":"k39","x":9,"y":3},
+ {"label":"k3a","x":10,"y":3},
+ {"label":"k3b","x":11,"y":3},
+ {"label":"k3c","x":12,"y":3},
+ {"label":"k3d","x":13,"y":3},
+ {"label":"k3e","x":14,"y":3},
+ {"label":"k41","x":0,"y":4,"w":1.5},
+ {"label":"k42","x":1.5,"y":4},
+ {"label":"k43","x":2.5,"y":4,"w":1.5},
+ {"label":"k47","x":4,"y":4,"w":7},
+ {"label":"k17","x":11,"y":4,"w":1.5},
+ {"label":"k27","x":12.5,"y":4},
+ {"label":"k48","x":13.5,"y":4,"w":1.5}
+ ]
+ },
+ "LAYOUT_1_a": {
+ "layout": [
+ {"label":"k00","x":0,"y":0},
+ {"label":"k01","x":1,"y":0},
+ {"label":"k02","x":2,"y":0},
+ {"label":"k03","x":3,"y":0},
+ {"label":"k04","x":4,"y":0},
+ {"label":"k05","x":5,"y":0},
+ {"label":"k06","x":6,"y":0},
+ {"label":"k07","x":7,"y":0},
+ {"label":"k08","x":8,"y":0},
+ {"label":"k09","x":9,"y":0},
+ {"label":"k0a","x":10,"y":0},
+ {"label":"k0b","x":11,"y":0},
+ {"label":"k0c","x":12,"y":0},
+ {"label":"k0d","x":13,"y":0},
+ {"label":"k0e","x":14,"y":0},
+ {"label":"k10","x":0,"y":1,"w":1.5},
+ {"label":"k11","x":1.5,"y":1},
+ {"label":"k12","x":2.5,"y":1},
+ {"label":"k13","x":3.5,"y":1},
+ {"label":"k14","x":4.5,"y":1},
+ {"label":"k15","x":5.5,"y":1},
+ {"label":"k16","x":6.5,"y":1},
+ {"label":"k18","x":7.5,"y":1},
+ {"label":"k19","x":8.5,"y":1},
+ {"label":"k1a","x":9.5,"y":1},
+ {"label":"k1b","x":10.5,"y":1},
+ {"label":"k1c","x":11.5,"y":1},
+ {"label":"k1d","x":12.5,"y":1},
+ {"label":"k1e","x":13.5,"y":1,"w":1.5},
+ {"label":"k20","x":0,"y":2,"w":1.25},
+ {"label":"k21","x":1.25,"y":2},
+ {"label":"k22","x":2.25,"y":2},
+ {"label":"k23","x":3.25,"y":2},
+ {"label":"k24","x":4.25,"y":2},
+ {"label":"k25","x":5.25,"y":2},
+ {"label":"k26","x":6.25,"y":2},
+ {"label":"k28","x":7.75,"y":2},
+ {"label":"k29","x":8.75,"y":2},
+ {"label":"k2a","x":9.75,"y":2},
+ {"label":"k2b","x":10.75,"y":2},
+ {"label":"k2c","x":11.75,"y":2},
+ {"label":"k2d","x":12.75,"y":2},
+ {"label":"k2e","x":13.75,"y":2,"w":1.25},
+ {"label":"k30","x":0,"y":3},
+ {"label":"k31","x":1,"y":3},
+ {"label":"k32","x":2,"y":3},
+ {"label":"k33","x":3,"y":3},
+ {"label":"k34","x":4,"y":3},
+ {"label":"k35","x":5,"y":3},
+ {"label":"k36","x":6,"y":3},
+ {"label":"k37","x":7,"y":3},
+ {"label":"k38","x":8,"y":3},
+ {"label":"k39","x":9,"y":3},
+ {"label":"k3a","x":10,"y":3},
+ {"label":"k3b","x":11,"y":3},
+ {"label":"k3c","x":12,"y":3},
+ {"label":"k3d","x":13,"y":3},
+ {"label":"k3e","x":14,"y":3},
+ {"label":"k40","x":0,"y":4},
+ {"label":"k41","x":1,"y":4,"w":1.25},
+ {"label":"k42","x":2.25,"y":4,"w":1.25},
+ {"label":"k43","x":3.5,"y":4,"w":1.25},
+ {"label":"k44","x":4.75,"y":4,"w":2.25},
+ {"label":"k47","x":7,"y":4},
+ {"label":"k49","x":8,"y":4,"w":2},
+ {"label":"k4a","x":10,"y":4},
+ {"label":"k4b","x":11,"y":4},
+ {"label":"k4c","x":12,"y":4},
+ {"label":"k4d","x":13,"y":4},
+ {"label":"k4e","x":14,"y":4}
+ ]
+ },
+ "LAYOUT_1_b": {
+ "layout": [
+ {"label":"k00","x":0,"y":0},
+ {"label":"k01","x":1,"y":0},
+ {"label":"k02","x":2,"y":0},
+ {"label":"k03","x":3,"y":0},
+ {"label":"k04","x":4,"y":0},
+ {"label":"k05","x":5,"y":0},
+ {"label":"k06","x":6,"y":0},
+ {"label":"k07","x":7,"y":0},
+ {"label":"k08","x":8,"y":0},
+ {"label":"k09","x":9,"y":0},
+ {"label":"k0a","x":10,"y":0},
+ {"label":"k0b","x":11,"y":0},
+ {"label":"k0c","x":12,"y":0},
+ {"label":"k0d","x":13,"y":0},
+ {"label":"k0e","x":14,"y":0},
+ {"label":"k10","x":0,"y":1,"w":1.5},
+ {"label":"k11","x":1.5,"y":1},
+ {"label":"k12","x":2.5,"y":1},
+ {"label":"k13","x":3.5,"y":1},
+ {"label":"k14","x":4.5,"y":1},
+ {"label":"k15","x":5.5,"y":1},
+ {"label":"k16","x":6.5,"y":1},
+ {"label":"k18","x":7.5,"y":1},
+ {"label":"k19","x":8.5,"y":1},
+ {"label":"k1a","x":9.5,"y":1},
+ {"label":"k1b","x":10.5,"y":1},
+ {"label":"k1c","x":11.5,"y":1},
+ {"label":"k1d","x":12.5,"y":1},
+ {"label":"k1e","x":13.5,"y":1,"w":1.5},
+ {"label":"k20","x":0,"y":2,"w":1.25},
+ {"label":"k21","x":1.25,"y":2},
+ {"label":"k22","x":2.25,"y":2},
+ {"label":"k23","x":3.25,"y":2},
+ {"label":"k24","x":4.25,"y":2},
+ {"label":"k25","x":5.25,"y":2},
+ {"label":"k26","x":6.25,"y":2},
+ {"label":"k28","x":7.75,"y":2},
+ {"label":"k29","x":8.75,"y":2},
+ {"label":"k2a","x":9.75,"y":2},
+ {"label":"k2b","x":10.75,"y":2},
+ {"label":"k2c","x":11.75,"y":2},
+ {"label":"k2d","x":12.75,"y":2},
+ {"label":"k2e","x":13.75,"y":2,"w":1.25},
+ {"label":"k30","x":0,"y":3},
+ {"label":"k31","x":1,"y":3},
+ {"label":"k32","x":2,"y":3},
+ {"label":"k33","x":3,"y":3},
+ {"label":"k34","x":4,"y":3},
+ {"label":"k35","x":5,"y":3},
+ {"label":"k36","x":6,"y":3},
+ {"label":"k37","x":7,"y":3},
+ {"label":"k38","x":8,"y":3},
+ {"label":"k39","x":9,"y":3},
+ {"label":"k3a","x":10,"y":3},
+ {"label":"k3b","x":11,"y":3},
+ {"label":"k3c","x":12,"y":3},
+ {"label":"k3d","x":13,"y":3},
+ {"label":"k3e","x":14,"y":3},
+ {"label":"k40","x":0,"y":4},
+ {"label":"k41","x":1,"y":4,"w":1.25},
+ {"label":"k42","x":2.25,"y":4,"w":1.25},
+ {"label":"k43","x":3.5,"y":4,"w":1.25},
+ {"label":"k44","x":4.75,"y":4,"w":2.25},
+ {"label":"k47","x":7,"y":4},
+ {"label":"k49","x":8,"y":4,"w":2.75},
+ {"label":"k17","x":10.75,"y":4,"w":2},
+ {"label":"k48","x":12.75,"y":4,"w":2.25}
+ ]
+ },
+ "LAYOUT_1_c": {
+ "layout": [
+ {"label":"k00","x":0,"y":0},
+ {"label":"k01","x":1,"y":0},
+ {"label":"k02","x":2,"y":0},
+ {"label":"k03","x":3,"y":0},
+ {"label":"k04","x":4,"y":0},
+ {"label":"k05","x":5,"y":0},
+ {"label":"k06","x":6,"y":0},
+ {"label":"k07","x":7,"y":0},
+ {"label":"k08","x":8,"y":0},
+ {"label":"k09","x":9,"y":0},
+ {"label":"k0a","x":10,"y":0},
+ {"label":"k0b","x":11,"y":0},
+ {"label":"k0c","x":12,"y":0},
+ {"label":"k0d","x":13,"y":0},
+ {"label":"k0e","x":14,"y":0},
+ {"label":"k10","x":0,"y":1,"w":1.5},
+ {"label":"k11","x":1.5,"y":1},
+ {"label":"k12","x":2.5,"y":1},
+ {"label":"k13","x":3.5,"y":1},
+ {"label":"k14","x":4.5,"y":1},
+ {"label":"k15","x":5.5,"y":1},
+ {"label":"k16","x":6.5,"y":1},
+ {"label":"k18","x":7.5,"y":1},
+ {"label":"k19","x":8.5,"y":1},
+ {"label":"k1a","x":9.5,"y":1},
+ {"label":"k1b","x":10.5,"y":1},
+ {"label":"k1c","x":11.5,"y":1},
+ {"label":"k1d","x":12.5,"y":1},
+ {"label":"k1e","x":13.5,"y":1,"w":1.5},
+ {"label":"k20","x":0,"y":2,"w":1.25},
+ {"label":"k21","x":1.25,"y":2},
+ {"label":"k22","x":2.25,"y":2},
+ {"label":"k23","x":3.25,"y":2},
+ {"label":"k24","x":4.25,"y":2},
+ {"label":"k25","x":5.25,"y":2},
+ {"label":"k26","x":6.25,"y":2},
+ {"label":"k28","x":7.75,"y":2},
+ {"label":"k29","x":8.75,"y":2},
+ {"label":"k2a","x":9.75,"y":2},
+ {"label":"k2b","x":10.75,"y":2},
+ {"label":"k2c","x":11.75,"y":2},
+ {"label":"k2d","x":12.75,"y":2},
+ {"label":"k2e","x":13.75,"y":2,"w":1.25},
+ {"label":"k30","x":0,"y":3},
+ {"label":"k31","x":1,"y":3},
+ {"label":"k32","x":2,"y":3},
+ {"label":"k33","x":3,"y":3},
+ {"label":"k34","x":4,"y":3},
+ {"label":"k35","x":5,"y":3},
+ {"label":"k36","x":6,"y":3},
+ {"label":"k37","x":7,"y":3},
+ {"label":"k38","x":8,"y":3},
+ {"label":"k39","x":9,"y":3},
+ {"label":"k3a","x":10,"y":3},
+ {"label":"k3b","x":11,"y":3},
+ {"label":"k3c","x":12,"y":3},
+ {"label":"k3d","x":13,"y":3},
+ {"label":"k3e","x":14,"y":3},
+ {"label":"k40","x":0,"y":4},
+ {"label":"k41","x":1,"y":4,"w":1.25},
+ {"label":"k42","x":2.25,"y":4,"w":1.25},
+ {"label":"k43","x":3.5,"y":4,"w":1.25},
+ {"label":"k44","x":4.75,"y":4,"w":2.25},
+ {"label":"k47","x":7,"y":4},
+ {"label":"k49","x":8,"y":4,"w":2},
+ {"label":"k45","x":10,"y":4,"w":1.5},
+ {"label":"k27","x":11.5,"y":4,"w":1.25},
+ {"label":"k48","x":12.75,"y":4,"w":2.25}
+ ]
+ },
+ "LAYOUT_2_a": {
+ "layout": [
+ {"label":"k00","x":0,"y":0},
+ {"label":"k01","x":1,"y":0},
+ {"label":"k02","x":2,"y":0},
+ {"label":"k03","x":3,"y":0},
+ {"label":"k04","x":4,"y":0},
+ {"label":"k05","x":5,"y":0},
+ {"label":"k06","x":6,"y":0},
+ {"label":"k07","x":7,"y":0},
+ {"label":"k08","x":8,"y":0},
+ {"label":"k09","x":9,"y":0},
+ {"label":"k0a","x":10,"y":0},
+ {"label":"k0b","x":11,"y":0},
+ {"label":"k0c","x":12,"y":0},
+ {"label":"k0d","x":13,"y":0},
+ {"label":"k0e","x":14,"y":0},
+ {"label":"k10","x":0,"y":1,"w":1.5},
+ {"label":"k11","x":1.5,"y":1},
+ {"label":"k12","x":2.5,"y":1},
+ {"label":"k13","x":3.5,"y":1},
+ {"label":"k14","x":4.5,"y":1},
+ {"label":"k15","x":5.5,"y":1},
+ {"label":"k16","x":6.5,"y":1},
+ {"label":"k18","x":7.5,"y":1},
+ {"label":"k19","x":8.5,"y":1},
+ {"label":"k1a","x":9.5,"y":1},
+ {"label":"k1b","x":10.5,"y":1},
+ {"label":"k1c","x":11.5,"y":1},
+ {"label":"k1d","x":12.5,"y":1},
+ {"label":"k1e","x":13.5,"y":1,"w":1.5},
+ {"label":"k20","x":0,"y":2,"w":1.25},
+ {"label":"k21","x":1.25,"y":2},
+ {"label":"k22","x":2.25,"y":2},
+ {"label":"k23","x":3.25,"y":2},
+ {"label":"k24","x":4.25,"y":2},
+ {"label":"k25","x":5.25,"y":2},
+ {"label":"k26","x":6.25,"y":2},
+ {"label":"k28","x":7.75,"y":2},
+ {"label":"k29","x":8.75,"y":2},
+ {"label":"k2a","x":9.75,"y":2},
+ {"label":"k2b","x":10.75,"y":2},
+ {"label":"k2c","x":11.75,"y":2},
+ {"label":"k2d","x":12.75,"y":2},
+ {"label":"k2e","x":13.75,"y":2,"w":1.25},
+ {"label":"k30","x":0,"y":3},
+ {"label":"k31","x":1,"y":3},
+ {"label":"k32","x":2,"y":3},
+ {"label":"k33","x":3,"y":3},
+ {"label":"k34","x":4,"y":3},
+ {"label":"k35","x":5,"y":3},
+ {"label":"k36","x":6,"y":3},
+ {"label":"k37","x":7,"y":3},
+ {"label":"k38","x":8,"y":3},
+ {"label":"k39","x":9,"y":3},
+ {"label":"k3a","x":10,"y":3},
+ {"label":"k3b","x":11,"y":3},
+ {"label":"k3c","x":12,"y":3},
+ {"label":"k3d","x":13,"y":3},
+ {"label":"k3e","x":14,"y":3},
+ {"label":"k41","x":0,"y":4,"w":1.5},
+ {"label":"k42","x":1.5,"y":4,"w":1.25},
+ {"label":"k43","x":2.75,"y":4,"w":1.5},
+ {"label":"k44","x":4.25,"y":4,"w":2.75},
+ {"label":"k47","x":7,"y":4},
+ {"label":"k49","x":8,"y":4,"w":2},
+ {"label":"k4a","x":10,"y":4},
+ {"label":"k4b","x":11,"y":4},
+ {"label":"k4c","x":12,"y":4},
+ {"label":"k4d","x":13,"y":4},
+ {"label":"k4e","x":14,"y":4}
+ ]
+ },
+ "LAYOUT_2_b": {
+ "layout": [
+ {"label":"k00","x":0,"y":0},
+ {"label":"k01","x":1,"y":0},
+ {"label":"k02","x":2,"y":0},
+ {"label":"k03","x":3,"y":0},
+ {"label":"k04","x":4,"y":0},
+ {"label":"k05","x":5,"y":0},
+ {"label":"k06","x":6,"y":0},
+ {"label":"k07","x":7,"y":0},
+ {"label":"k08","x":8,"y":0},
+ {"label":"k09","x":9,"y":0},
+ {"label":"k0a","x":10,"y":0},
+ {"label":"k0b","x":11,"y":0},
+ {"label":"k0c","x":12,"y":0},
+ {"label":"k0d","x":13,"y":0},
+ {"label":"k0e","x":14,"y":0},
+ {"label":"k10","x":0,"y":1,"w":1.5},
+ {"label":"k11","x":1.5,"y":1},
+ {"label":"k12","x":2.5,"y":1},
+ {"label":"k13","x":3.5,"y":1},
+ {"label":"k14","x":4.5,"y":1},
+ {"label":"k15","x":5.5,"y":1},
+ {"label":"k16","x":6.5,"y":1},
+ {"label":"k18","x":7.5,"y":1},
+ {"label":"k19","x":8.5,"y":1},
+ {"label":"k1a","x":9.5,"y":1},
+ {"label":"k1b","x":10.5,"y":1},
+ {"label":"k1c","x":11.5,"y":1},
+ {"label":"k1d","x":12.5,"y":1},
+ {"label":"k1e","x":13.5,"y":1,"w":1.5},
+ {"label":"k20","x":0,"y":2,"w":1.25},
+ {"label":"k21","x":1.25,"y":2},
+ {"label":"k22","x":2.25,"y":2},
+ {"label":"k23","x":3.25,"y":2},
+ {"label":"k24","x":4.25,"y":2},
+ {"label":"k25","x":5.25,"y":2},
+ {"label":"k26","x":6.25,"y":2},
+ {"label":"k28","x":7.75,"y":2},
+ {"label":"k29","x":8.75,"y":2},
+ {"label":"k2a","x":9.75,"y":2},
+ {"label":"k2b","x":10.75,"y":2},
+ {"label":"k2c","x":11.75,"y":2},
+ {"label":"k2d","x":12.75,"y":2},
+ {"label":"k2e","x":13.75,"y":2,"w":1.25},
+ {"label":"k30","x":0,"y":3},
+ {"label":"k31","x":1,"y":3},
+ {"label":"k32","x":2,"y":3},
+ {"label":"k33","x":3,"y":3},
+ {"label":"k34","x":4,"y":3},
+ {"label":"k35","x":5,"y":3},
+ {"label":"k36","x":6,"y":3},
+ {"label":"k37","x":7,"y":3},
+ {"label":"k38","x":8,"y":3},
+ {"label":"k39","x":9,"y":3},
+ {"label":"k3a","x":10,"y":3},
+ {"label":"k3b","x":11,"y":3},
+ {"label":"k3c","x":12,"y":3},
+ {"label":"k3d","x":13,"y":3},
+ {"label":"k3e","x":14,"y":3},
+ {"label":"k41","x":0,"y":4,"w":1.5},
+ {"label":"k42","x":1.5,"y":4,"w":1.25},
+ {"label":"k43","x":2.75,"y":4,"w":1.5},
+ {"label":"k44","x":4.25,"y":4,"w":2.75},
+ {"label":"k47","x":7,"y":4},
+ {"label":"k49","x":8,"y":4,"w":2.75},
+ {"label":"k17","x":10.75,"y":4,"w":2},
+ {"label":"k48","x":12.75,"y":4,"w":2.25}
+ ]
+ },
+ "LAYOUT_2_c": {
+ "layout": [
+ {"label":"k00","x":0,"y":0},
+ {"label":"k01","x":1,"y":0},
+ {"label":"k02","x":2,"y":0},
+ {"label":"k03","x":3,"y":0},
+ {"label":"k04","x":4,"y":0},
+ {"label":"k05","x":5,"y":0},
+ {"label":"k06","x":6,"y":0},
+ {"label":"k07","x":7,"y":0},
+ {"label":"k08","x":8,"y":0},
+ {"label":"k09","x":9,"y":0},
+ {"label":"k0a","x":10,"y":0},
+ {"label":"k0b","x":11,"y":0},
+ {"label":"k0c","x":12,"y":0},
+ {"label":"k0d","x":13,"y":0},
+ {"label":"k0e","x":14,"y":0},
+ {"label":"k10","x":0,"y":1,"w":1.5},
+ {"label":"k11","x":1.5,"y":1},
+ {"label":"k12","x":2.5,"y":1},
+ {"label":"k13","x":3.5,"y":1},
+ {"label":"k14","x":4.5,"y":1},
+ {"label":"k15","x":5.5,"y":1},
+ {"label":"k16","x":6.5,"y":1},
+ {"label":"k18","x":7.5,"y":1},
+ {"label":"k19","x":8.5,"y":1},
+ {"label":"k1a","x":9.5,"y":1},
+ {"label":"k1b","x":10.5,"y":1},
+ {"label":"k1c","x":11.5,"y":1},
+ {"label":"k1d","x":12.5,"y":1},
+ {"label":"k1e","x":13.5,"y":1,"w":1.5},
+ {"label":"k20","x":0,"y":2,"w":1.25},
+ {"label":"k21","x":1.25,"y":2},
+ {"label":"k22","x":2.25,"y":2},
+ {"label":"k23","x":3.25,"y":2},
+ {"label":"k24","x":4.25,"y":2},
+ {"label":"k25","x":5.25,"y":2},
+ {"label":"k26","x":6.25,"y":2},
+ {"label":"k28","x":7.75,"y":2},
+ {"label":"k29","x":8.75,"y":2},
+ {"label":"k2a","x":9.75,"y":2},
+ {"label":"k2b","x":10.75,"y":2},
+ {"label":"k2c","x":11.75,"y":2},
+ {"label":"k2d","x":12.75,"y":2},
+ {"label":"k2e","x":13.75,"y":2,"w":1.25},
+ {"label":"k30","x":0,"y":3},
+ {"label":"k31","x":1,"y":3},
+ {"label":"k32","x":2,"y":3},
+ {"label":"k33","x":3,"y":3},
+ {"label":"k34","x":4,"y":3},
+ {"label":"k35","x":5,"y":3},
+ {"label":"k36","x":6,"y":3},
+ {"label":"k37","x":7,"y":3},
+ {"label":"k38","x":8,"y":3},
+ {"label":"k39","x":9,"y":3},
+ {"label":"k3a","x":10,"y":3},
+ {"label":"k3b","x":11,"y":3},
+ {"label":"k3c","x":12,"y":3},
+ {"label":"k3d","x":13,"y":3},
+ {"label":"k3e","x":14,"y":3},
+ {"label":"k41","x":0,"y":4,"w":1.5},
+ {"label":"k42","x":1.5,"y":4,"w":1.25},
+ {"label":"k43","x":2.75,"y":4,"w":1.5},
+ {"label":"k44","x":4.25,"y":4,"w":2.75},
+ {"label":"k47","x":7,"y":4},
+ {"label":"k49","x":8,"y":4,"w":2},
+ {"label":"k45","x":10,"y":4,"w":1.5},
+ {"label":"k27","x":11.5,"y":4,"w":1.25},
+ {"label":"k48","x":12.75,"y":4,"w":2.25}
+ ]
+ }
+ }
+}
diff --git a/keyboards/rominronin/katana60/rev2/keymaps/default/config.h b/keyboards/rominronin/katana60/rev2/keymaps/default/config.h
new file mode 100644
index 0000000000..0689676402
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev2/keymaps/default/config.h
@@ -0,0 +1,19 @@
+/* Copyright 2019 rominronin
+ *
+ * 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
+
+// place overrides here
diff --git a/keyboards/rominronin/katana60/rev2/keymaps/default/keymap.c b/keyboards/rominronin/katana60/rev2/keymaps/default/keymap.c
new file mode 100644
index 0000000000..d9c9b6d4ed
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev2/keymaps/default/keymap.c
@@ -0,0 +1,71 @@
+/* Copyright 2019 rominronin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// MacOS based definitions.
+#define K_SPCFN LT(SYMB, KC_SPACE) // Tap for space, hold for symbols layer
+#define K_PRVWD LALT(KC_LEFT) // Previous word
+#define K_NXTWD LALT(KC_RIGHT) // Next word
+#define K_LSTRT LGUI(KC_LEFT) // Start of line
+#define K_LEND LGUI(KC_RIGHT) // End of line
+#define UNDO LGUI(KC_Z) // UNDO
+#define CUT LGUI(KC_X) // CUT
+#define COPY LGUI(KC_C) // COPY
+#define PASTE LGUI(KC_V) // PASTE
+
+enum layer_names {
+ BASE,
+ NUMB,
+ SYMB,
+ CURS,
+};
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+ QMKBEST = SAFE_RANGE,
+ QMKURL
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [BASE] = LAYOUT_1_a(/* Base */
+ KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, DF(1), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
+ 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_BSPC,
+ MO(3), KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_PGUP, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_END, KC_DEL, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ MO(2), KC_LCTL, KC_LGUI, KC_LALT, KC_BSPC, KC_ENT, K_SPCFN, KC_RGUI, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
+ ),
+ [NUMB] = LAYOUT_1_a(
+ _______, _______, _______, _______, _______, _______, _______, DF(0), _______, _______, KC_PEQL, KC_PSLS, KC_PAST, _______, _______,
+ _______, _______, _______, KC_MS_U, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______,
+ _______, KC_BTN2, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______,
+ _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______,
+ _______, _______, _______, _______, _______, KC_P0, _______, _______, KC_PDOT, KC_PENT, _______, _______
+ ),
+ [SYMB] = LAYOUT_1_a(
+ RESET, _______, 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_VOLD, KC_VOLU, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
+ _______, KC_PLUS, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_MPRV, KC_MPLY, KC_MNXT, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______,
+ _______, _______, _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______
+ ),
+ [CURS] = LAYOUT_1_a(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, K_PRVWD, KC_UP, K_NXTWD, _______, _______,
+ _______, _______, KC_LCTL, KC_LALT, KC_LSFT, _______, _______, _______, KC_BSPC, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, _______,
+ _______, UNDO, CUT, COPY, PASTE, _______, _______, _______, _______, _______, K_LSTRT, _______, K_LEND, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/rominronin/katana60/rev2/keymaps/default/readme.md b/keyboards/rominronin/katana60/rev2/keymaps/default/readme.md
new file mode 100644
index 0000000000..6d0bbe8b2d
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev2/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for katana60_rev2
diff --git a/keyboards/rominronin/katana60/rev2/keymaps/rominronin_7u/config.h b/keyboards/rominronin/katana60/rev2/keymaps/rominronin_7u/config.h
new file mode 100644
index 0000000000..0689676402
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev2/keymaps/rominronin_7u/config.h
@@ -0,0 +1,19 @@
+/* Copyright 2019 rominronin
+ *
+ * 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
+
+// place overrides here
diff --git a/keyboards/rominronin/katana60/rev2/keymaps/rominronin_7u/keymap.c b/keyboards/rominronin/katana60/rev2/keymaps/rominronin_7u/keymap.c
new file mode 100644
index 0000000000..5450892123
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev2/keymaps/rominronin_7u/keymap.c
@@ -0,0 +1,79 @@
+/* Copyright 2019 rominronin
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// MacOS based definitions.
+#define K_SPCFN LT(SYMB, KC_SPACE) // Tap for space, hold for symbols layer
+#define K_PRVWD LALT(KC_LEFT) // Previous word
+#define K_NXTWD LALT(KC_RIGHT) // Next word
+#define K_LSTRT LGUI(KC_LEFT) // Start of line
+#define K_LEND LGUI(KC_RIGHT) // End of line
+#define UNDO LGUI(KC_Z) // UNDO
+#define CUT LGUI(KC_X) // CUT
+#define COPY LGUI(KC_C) // COPY
+#define PASTE LGUI(KC_V) // PASTE
+
+enum layer_names {
+ BASE,
+ NUMB,
+ SYMB,
+ CURS,
+ BASE2,
+};
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+ QMKBEST = SAFE_RANGE,
+ QMKURL
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [BASE] = LAYOUT_7u_a(/* Base */
+ KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, DF(4), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_LBRC, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, KC_BSPC,
+ MO(3), KC_A, KC_R, KC_S, KC_T, KC_G, KC_HOME, KC_PGUP, KC_M, KC_N, KC_E, KC_I, KC_O, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_END, KC_DEL, KC_PGDN, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LALT, KC_LGUI, K_SPCFN, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
+ ),
+ [NUMB] = LAYOUT_7u_a(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PEQL, KC_PSLS, KC_PAST, _______, _______,
+ _______, _______, _______, KC_MS_U, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______,
+ DF(0), KC_BTN2, KC_MS_L, KC_MS_D, KC_MS_R, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______,
+ _______, _______, KC_ACL0, KC_ACL1, KC_ACL2, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______,
+ _______, _______, _______, KC_P0, KC_PDOT, KC_PENT, _______, _______
+ ),
+ [SYMB] = LAYOUT_7u_a(
+ RESET, _______, 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_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_VOLD, KC_VOLU, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
+ _______, KC_PLUS, KC_MINS, KC_EQL, KC_LCBR, KC_RCBR, KC_MPRV, KC_MPLY, KC_MNXT, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______,
+ _______, _______, _______, KC_DEL, _______, _______, _______, _______
+ ),
+ [CURS] = LAYOUT_7u_a(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, K_PRVWD, KC_UP, K_NXTWD, _______, _______,
+ _______, _______, KC_LCTL, KC_LALT, KC_LSFT, _______, _______, _______, KC_BSPC, KC_LEFT, KC_DOWN, KC_RIGHT,KC_DEL, _______,
+ _______, UNDO, CUT, COPY, PASTE, _______, _______, _______, _______, _______, K_LSTRT, _______, K_LEND, _______, _______,
+ _______, _______, _______, DF(1), _______, _______, _______, _______
+ ),
+ [BASE2] = LAYOUT_7u_a(/* Base */
+ KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, DF(0), KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL,
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_LBRC, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_QUOT, KC_BSPC,
+ KC_CAPS, KC_A, KC_R, KC_S, KC_T, KC_G, KC_HOME, KC_PGUP, KC_M, KC_N, KC_E, KC_I, KC_O, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_END, KC_DEL, KC_PGDN, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LALT, KC_LGUI, KC_SPACE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
+ )
+};
diff --git a/keyboards/rominronin/katana60/rev2/keymaps/rominronin_7u/readme.md b/keyboards/rominronin/katana60/rev2/keymaps/rominronin_7u/readme.md
new file mode 100644
index 0000000000..6d0bbe8b2d
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev2/keymaps/rominronin_7u/readme.md
@@ -0,0 +1 @@
+# The default keymap for katana60_rev2
diff --git a/keyboards/rominronin/katana60/rev2/readme.md b/keyboards/rominronin/katana60/rev2/readme.md
new file mode 100644
index 0000000000..2f2abad709
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev2/readme.md
@@ -0,0 +1,17 @@
+# Katana60 rev2
+
+![Katana60 rev2](https://i.imgur.com/3hBsSvBl.jpg)
+
+A 60% keyboard with a symmetrical staggered layout, sold by CandyKeys.com.
+
+Keyboard Maintainer: [Baris Tosun](https://github.com/rominronin)
+Hardware Supported: Katana60 PCB rev2
+Hardware Availability: [candykeys.com](https://candykeys.com/product/katana60-pcb-V2)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make rominronin/katana60/rev2: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).
+
+There is also ongoing discussion for the extend layer, at the [Colemak Forum](https://forum.colemak.com/topic/2327-developing-an-extend-layer-for-the-katana60/)
diff --git a/keyboards/rominronin/katana60/rev2/rev2.c b/keyboards/rominronin/katana60/rev2/rev2.c
new file mode 100644
index 0000000000..3336fd0dc7
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev2/rev2.c
@@ -0,0 +1,16 @@
+/* Copyright 2019 rominronin
+ *
+ * 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 "rev2.h"
diff --git a/keyboards/rominronin/katana60/rev2/rev2.h b/keyboards/rominronin/katana60/rev2/rev2.h
new file mode 100644
index 0000000000..35a45b438a
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev2/rev2.h
@@ -0,0 +1,238 @@
+/* Copyright 2019 rominronin
+ *
+ * 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
+
+#include "quantum.h"
+#define XXX KC_NO
+
+/* LAYOUT_7u_a
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
+ * │10 │11 │12 │13 │14 │15 │16 │18 │19 │1A │1B │1C │1D │1E │
+ * ├────┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤
+ * │20 │21 │22 │23 │24 │25 │26 │ │28 │29 │2A │2B │2C │2D │2E │
+ * ├───┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴─┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┤
+ * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │
+ * ├───┴─┬─┴─┬─┴───┼───┴───┴───┴───┴───┴───┴───┼───┼───┼───┼───┤
+ * │41 │42 │43 │ 47 │4B │4C │4D │4E │
+ * └─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘
+ */
+#define LAYOUT_7u_a( \
+ Q00, Q01, Q02, Q03, Q04, Q05, Q06, Q07, Q08, Q09, Q0A, Q0B, Q0C, Q0D, Q0E, \
+ Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q18, Q19, Q1A, Q1B, Q1C, Q1D, Q1E, \
+ Q20, Q21, Q22, Q23, Q24, Q25, Q26, Q28, Q29, Q2A, Q2B, Q2C, Q2D, Q2E, \
+ Q30, Q31, Q32, Q33, Q34, Q35, Q36, Q37, Q38, Q39, Q3A, Q3B, Q3C, Q3D, Q3E, \
+ Q41, Q42, Q43, Q47, Q4B, Q4C, Q4D, Q4E \
+) { \
+ { Q00, Q01, Q02, Q03, Q04, Q05, Q06, Q07, Q08, Q09, Q0A, Q0B, Q0C, Q0D, Q0E }, \
+ { Q10, Q11, Q12, Q13, Q14, Q15, Q16, XXX, Q18, Q19, Q1A, Q1B, Q1C, Q1D, Q1E }, \
+ { Q20, Q21, Q22, Q23, Q24, Q25, Q26, XXX, Q28, Q29, Q2A, Q2B, Q2C, Q2D, Q2E }, \
+ { Q30, Q31, Q32, Q33, Q34, Q35, Q36, Q37, Q38, Q39, Q3A, Q3B, Q3C, Q3D, Q3E }, \
+ { XXX, Q41, Q42, Q43, XXX, XXX, XXX, Q47, XXX, XXX, XXX, Q4B, Q4C, Q4D, Q4E } \
+}
+
+/* LAYOUT_7u_b
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
+ * │10 │11 │12 │13 │14 │15 │16 │18 │19 │1A │1B │1C │1D │1E │
+ * ├────┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤
+ * │20 │21 │22 │23 │24 │25 │26 │ │28 │29 │2A │2B │2C │2D │2E │
+ * ├───┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴─┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┤
+ * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │
+ * ├───┴─┬─┴─┬─┴───┼───┴───┴───┴───┴───┴───┴───┼───┴─┬─┴─┬─┴───┤
+ * │41 │42 │43 │ 47 │17 │27 │48 │
+ * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
+ */
+#define LAYOUT_7u_b( \
+ Q00, Q01, Q02, Q03, Q04, Q05, Q06, Q07, Q08, Q09, Q0A, Q0B, Q0C, Q0D, Q0E, \
+ Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q18, Q19, Q1A, Q1B, Q1C, Q1D, Q1E, \
+ Q20, Q21, Q22, Q23, Q24, Q25, Q26, Q28, Q29, Q2A, Q2B, Q2C, Q2D, Q2E, \
+ Q30, Q31, Q32, Q33, Q34, Q35, Q36, Q37, Q38, Q39, Q3A, Q3B, Q3C, Q3D, Q3E, \
+ Q41, Q42, Q43, Q47, Q17, Q27, Q48 \
+) { \
+ { Q00, Q01, Q02, Q03, Q04, Q05, Q06, Q07, Q08, Q09, Q0A, Q0B, Q0C, Q0D, Q0E }, \
+ { Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q17, Q18, Q19, Q1A, Q1B, Q1C, Q1D, Q1E }, \
+ { Q20, Q21, Q22, Q23, Q24, Q25, Q26, Q27, Q28, Q29, Q2A, Q2B, Q2C, Q2D, Q2E }, \
+ { Q30, Q31, Q32, Q33, Q34, Q35, Q36, Q37, Q38, Q39, Q3A, Q3B, Q3C, Q3D, Q3E }, \
+ { XXX, Q41, Q42, Q43, XXX, XXX, XXX, Q47, Q48, XXX, XXX, XXX, XXX, XXX, XXX } \
+}
+
+/* LAYOUT_1_a
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
+ * │10 │11 │12 │13 │14 │15 │16 │18 │19 │1A │1B │1C │1D │1E │
+ * ├────┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤
+ * │20 │21 │22 │23 │24 │25 │26 │ │28 │29 │2A │2B │2C │2D │2E │
+ * ├───┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴─┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┤
+ * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │
+ * ├───┼───┴┬──┴─┬─┴──┬┴───┴───┼───┼───┴───┼───┼───┼───┼───┼───┤
+ * │40 │41 │42 │43 │ 44 │47 │ 49 │4A │4B │4C │4D │4E │
+ * └───┴────┴────┴────┴────────┴───┴───────┴───┴───┴───┴───┴───┘
+ */
+#define LAYOUT_1_a( \
+ Q00, Q01, Q02, Q03, Q04, Q05, Q06, Q07, Q08, Q09, Q0A, Q0B, Q0C, Q0D, Q0E, \
+ Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q18, Q19, Q1A, Q1B, Q1C, Q1D, Q1E, \
+ Q20, Q21, Q22, Q23, Q24, Q25, Q26, Q28, Q29, Q2A, Q2B, Q2C, Q2D, Q2E, \
+ Q30, Q31, Q32, Q33, Q34, Q35, Q36, Q37, Q38, Q39, Q3A, Q3B, Q3C, Q3D, Q3E, \
+ Q40, Q41, Q42, Q43, Q44, Q47, Q49, Q4A, Q4B, Q4C, Q4D, Q4E \
+) { \
+ { Q00, Q01, Q02, Q03, Q04, Q05, Q06, Q07, Q08, Q09, Q0A, Q0B, Q0C, Q0D, Q0E }, \
+ { Q10, Q11, Q12, Q13, Q14, Q15, Q16, XXX, Q18, Q19, Q1A, Q1B, Q1C, Q1D, Q1E }, \
+ { Q20, Q21, Q22, Q23, Q24, Q25, Q26, XXX, Q28, Q29, Q2A, Q2B, Q2C, Q2D, Q2E }, \
+ { Q30, Q31, Q32, Q33, Q34, Q35, Q36, Q37, Q38, Q39, Q3A, Q3B, Q3C, Q3D, Q3E }, \
+ { Q40, Q41, Q42, Q43, Q44, XXX, XXX, Q47, XXX, Q49, Q4A, Q4B, Q4C, Q4D, Q4E } \
+}
+
+/* LAYOUT_1_b
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
+ * │10 │11 │12 │13 │14 │15 │16 │18 │19 │1A │1B │1C │1D │1E │
+ * ├────┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤
+ * │20 │21 │22 │23 │24 │25 │26 │ │28 │29 │2A │2B │2C │2D │2E │
+ * ├───┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴─┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┤
+ * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │
+ * ├───┼───┴┬──┴─┬─┴──┬┴───┴───┼───┼───┴───┴──┬┴───┴──┬┴───┴───┤
+ * │40 │41 │42 │43 │ 44 │47 │ 49 │17 │48 │
+ * └───┴────┴────┴────┴────────┴───┴──────────┴───────┴────────┘
+ */
+#define LAYOUT_1_b( \
+ Q00, Q01, Q02, Q03, Q04, Q05, Q06, Q07, Q08, Q09, Q0A, Q0B, Q0C, Q0D, Q0E, \
+ Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q18, Q19, Q1A, Q1B, Q1C, Q1D, Q1E, \
+ Q20, Q21, Q22, Q23, Q24, Q25, Q26, Q28, Q29, Q2A, Q2B, Q2C, Q2D, Q2E, \
+ Q30, Q31, Q32, Q33, Q34, Q35, Q36, Q37, Q38, Q39, Q3A, Q3B, Q3C, Q3D, Q3E, \
+ Q40, Q41, Q42, Q43, Q44, Q47, Q49, Q17, Q48 \
+) { \
+ { Q00, Q01, Q02, Q03, Q04, Q05, Q06, Q07, Q08, Q09, Q0A, Q0B, Q0C, Q0D, Q0E }, \
+ { Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q17, Q18, Q19, Q1A, Q1B, Q1C, Q1D, Q1E }, \
+ { Q20, Q21, Q22, Q23, Q24, Q25, Q26, XXX, Q28, Q29, Q2A, Q2B, Q2C, Q2D, Q2E }, \
+ { Q30, Q31, Q32, Q33, Q34, Q35, Q36, Q37, Q38, Q39, Q3A, Q3B, Q3C, Q3D, Q3E }, \
+ { Q40, Q41, Q42, Q43, Q44, XXX, XXX, Q47, Q48, Q49, XXX, XXX, XXX, XXX, XXX } \
+}
+
+/* LAYOUT_1_c
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
+ * │10 │11 │12 │13 │14 │15 │16 │18 │19 │1A │1B │1C │1D │1E │
+ * ├────┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤
+ * │20 │21 │22 │23 │24 │25 │26 │ │28 │29 │2A │2B │2C │2D │2E │
+ * ├───┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴─┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┤
+ * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │
+ * ├───┼───┴┬──┴─┬─┴──┬┴───┴───┼───┼───┴───┼───┴─┬─┴──┬┴───┴───┤
+ * │40 │41 │42 │43 │ 44 │47 │ 49 │45 │27 │48 │
+ * └───┴────┴────┴────┴────────┴───┴───────┴─────┴────┴────────┘
+ */
+#define LAYOUT_1_c( \
+ Q00, Q01, Q02, Q03, Q04, Q05, Q06, Q07, Q08, Q09, Q0A, Q0B, Q0C, Q0D, Q0E, \
+ Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q18, Q19, Q1A, Q1B, Q1C, Q1D, Q1E, \
+ Q20, Q21, Q22, Q23, Q24, Q25, Q26, Q28, Q29, Q2A, Q2B, Q2C, Q2D, Q2E, \
+ Q30, Q31, Q32, Q33, Q34, Q35, Q36, Q37, Q38, Q39, Q3A, Q3B, Q3C, Q3D, Q3E, \
+ Q40, Q41, Q42, Q43, Q44, Q47, Q49, Q45, Q27, Q48 \
+) { \
+ { Q00, Q01, Q02, Q03, Q04, Q05, Q06, Q07, Q08, Q09, Q0A, Q0B, Q0C, Q0D, Q0E }, \
+ { Q10, Q11, Q12, Q13, Q14, Q15, Q16, XXX, Q18, Q19, Q1A, Q1B, Q1C, Q1D, Q1E }, \
+ { Q20, Q21, Q22, Q23, Q24, Q25, Q26, Q27, Q28, Q29, Q2A, Q2B, Q2C, Q2D, Q2E }, \
+ { Q30, Q31, Q32, Q33, Q34, Q35, Q36, Q37, Q38, Q39, Q3A, Q3B, Q3C, Q3D, Q3E }, \
+ { Q40, Q41, Q42, Q43, Q44, Q45, XXX, Q47, Q48, Q49, XXX, XXX, XXX, XXX, XXX } \
+}
+
+
+/* LAYOUT_2_a
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
+ * │10 │11 │12 │13 │14 │15 │16 │18 │19 │1A │1B │1C │1D │1E │
+ * ├────┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤
+ * │20 │21 │22 │23 │24 │25 │26 │ │28 │29 │2A │2B │2C │2D │2E │
+ * ├───┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴─┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┤
+ * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │
+ * ├───┴─┬─┴──┬┴───┴┬──┴───┴───┼───┼───┴───┼───┼───┼───┼───┼───┤
+ * │41 │42 │43 │ 44 │47 │ 49 │4A │4B │4C │4D │4E │
+ * └─────┴────┴─────┴──────────┴───┴───────┴───┴───┴───┴───┴───┘
+ */
+#define LAYOUT_2_a( \
+ Q00, Q01, Q02, Q03, Q04, Q05, Q06, Q07, Q08, Q09, Q0A, Q0B, Q0C, Q0D, Q0E, \
+ Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q18, Q19, Q1A, Q1B, Q1C, Q1D, Q1E, \
+ Q20, Q21, Q22, Q23, Q24, Q25, Q26, Q28, Q29, Q2A, Q2B, Q2C, Q2D, Q2E, \
+ Q30, Q31, Q32, Q33, Q34, Q35, Q36, Q37, Q38, Q39, Q3A, Q3B, Q3C, Q3D, Q3E, \
+ Q41, Q42, Q43, Q44, Q47, Q49, Q4A, Q4B, Q4C, Q4D, Q4E \
+) { \
+ { Q00, Q01, Q02, Q03, Q04, Q05, Q06, Q07, Q08, Q09, Q0A, Q0B, Q0C, Q0D, Q0E }, \
+ { Q10, Q11, Q12, Q13, Q14, Q15, Q16, XXX, Q18, Q19, Q1A, Q1B, Q1C, Q1D, Q1E }, \
+ { Q20, Q21, Q22, Q23, Q24, Q25, Q26, XXX, Q28, Q29, Q2A, Q2B, Q2C, Q2D, Q2E }, \
+ { Q30, Q31, Q32, Q33, Q34, Q35, Q36, Q37, Q38, Q39, Q3A, Q3B, Q3C, Q3D, Q3E }, \
+ { XXX, Q41, Q42, Q43, Q44, XXX, XXX, Q47, XXX, Q49, Q4A, Q4B, Q4C, Q4D, Q4E } \
+}
+
+
+
+/* LAYOUT_2_b
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
+ * │10 │11 │12 │13 │14 │15 │16 │18 │19 │1A │1B │1C │1D │1E │
+ * ├────┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤
+ * │20 │21 │22 │23 │24 │25 │26 │ │28 │29 │2A │2B │2C │2D │2E │
+ * ├───┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴─┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┤
+ * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │
+ * ├───┴─┬─┴──┬┴───┴┬──┴───┴───┼───┼───┴───┴──┬┴───┴──┬┴───┴───┤
+ * │41 │42 │43 │ 44 │47 │ 49 │17 │48 │
+ * └─────┴────┴─────┴──────────┴───┴──────────┴───────┴────────┘
+ */
+#define LAYOUT_2_b( \
+ Q00, Q01, Q02, Q03, Q04, Q05, Q06, Q07, Q08, Q09, Q0A, Q0B, Q0C, Q0D, Q0E, \
+ Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q18, Q19, Q1A, Q1B, Q1C, Q1D, Q1E, \
+ Q20, Q21, Q22, Q23, Q24, Q25, Q26, Q28, Q29, Q2A, Q2B, Q2C, Q2D, Q2E, \
+ Q30, Q31, Q32, Q33, Q34, Q35, Q36, Q37, Q38, Q39, Q3A, Q3B, Q3C, Q3D, Q3E, \
+ Q41, Q42, Q43, Q44, Q47, Q49, Q17, Q48 \
+) { \
+ { Q00, Q01, Q02, Q03, Q04, Q05, Q06, Q07, Q08, Q09, Q0A, Q0B, Q0C, Q0D, Q0E }, \
+ { Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q17, Q18, Q19, Q1A, Q1B, Q1C, Q1D, Q1E }, \
+ { Q20, Q21, Q22, Q23, Q24, Q25, Q26, XXX, Q28, Q29, Q2A, Q2B, Q2C, Q2D, Q2E }, \
+ { Q30, Q31, Q32, Q33, Q34, Q35, Q36, Q37, Q38, Q39, Q3A, Q3B, Q3C, Q3D, Q3E }, \
+ { XXX, Q41, Q42, Q43, Q44, XXX, XXX, Q47, Q48, Q49, XXX, XXX, XXX, XXX, XXX } \
+}
+
+/* LAYOUT_2_c
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
+ * │10 │11 │12 │13 │14 │15 │16 │18 │19 │1A │1B │1C │1D │1E │
+ * ├────┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤
+ * │20 │21 │22 │23 │24 │25 │26 │ │28 │29 │2A │2B │2C │2D │2E │
+ * ├───┬┴──┬┴──┬┴──┬┴──┬┴──┬┴──┬┴─┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬───┤
+ * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │3E │
+ * ├───┼───┴┬──┴─┬─┴──┬┴───┴───┼───┼───┴───┼───┴─┬─┴──┬┴───┴───┤
+ * │40 │41 │42 │43 │ 44 │47 │ 49 │45 │27 │48 │
+ * └───┴────┴────┴────┴────────┴───┴───────┴─────┴────┴────────┘
+ */
+#define LAYOUT_2_c( \
+ Q00, Q01, Q02, Q03, Q04, Q05, Q06, Q07, Q08, Q09, Q0A, Q0B, Q0C, Q0D, Q0E, \
+ Q10, Q11, Q12, Q13, Q14, Q15, Q16, Q18, Q19, Q1A, Q1B, Q1C, Q1D, Q1E, \
+ Q20, Q21, Q22, Q23, Q24, Q25, Q26, Q28, Q29, Q2A, Q2B, Q2C, Q2D, Q2E, \
+ Q30, Q31, Q32, Q33, Q34, Q35, Q36, Q37, Q38, Q39, Q3A, Q3B, Q3C, Q3D, Q3E, \
+ Q41, Q42, Q43, Q44, Q47, Q49, Q45, Q27, Q48 \
+) { \
+ { Q00, Q01, Q02, Q03, Q04, Q05, Q06, Q07, Q08, Q09, Q0A, Q0B, Q0C, Q0D, Q0E }, \
+ { Q10, Q11, Q12, Q13, Q14, Q15, Q16, XXX, Q18, Q19, Q1A, Q1B, Q1C, Q1D, Q1E }, \
+ { Q20, Q21, Q22, Q23, Q24, Q25, Q26, Q27, Q28, Q29, Q2A, Q2B, Q2C, Q2D, Q2E }, \
+ { Q30, Q31, Q32, Q33, Q34, Q35, Q36, Q37, Q38, Q39, Q3A, Q3B, Q3C, Q3D, Q3E }, \
+ { XXX, Q41, Q42, Q43, Q44, Q45, XXX, Q47, Q48, Q49, XXX, XXX, XXX, XXX, XXX } \
+}
diff --git a/keyboards/rominronin/katana60/rev2/rules.mk b/keyboards/rominronin/katana60/rev2/rules.mk
new file mode 100644
index 0000000000..000f55911a
--- /dev/null
+++ b/keyboards/rominronin/katana60/rev2/rules.mk
@@ -0,0 +1,22 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = yes # Console for debug
+COMMAND_ENABLE = yes # Commands for debug and configuration
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+NKRO_ENABLE = no # USB Nkey Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
+BLUETOOTH_ENABLE = no # Enable Bluetooth
+AUDIO_ENABLE = no # Audio output