From 15290f43669d1ca0a97631f144fa361477d329d3 Mon Sep 17 00:00:00 2001
From: peepeetee <43021794+peepeetee@users.noreply.github.com>
Date: Mon, 17 Jan 2022 03:53:11 +0800
Subject: rename idobo to idobao/id75, move to vendor folder (#15661)
* rename idobo to idobao/id75, move to vendor folder
* add image, amend readme to id75
* add buying link
---
keyboards/idobao/id75/config.h | 122 ++++++++++
keyboards/idobao/id75/id75.c | 16 ++
keyboards/idobao/id75/id75.h | 41 ++++
keyboards/idobao/id75/info.json | 10 +
keyboards/idobao/id75/keymaps/default/keymap.c | 54 +++++
keyboards/idobao/id75/keymaps/default/readme.md | 1 +
keyboards/idobao/id75/keymaps/default75/keymap.c | 67 ++++++
keyboards/idobao/id75/keymaps/default75/readme.md | 1 +
keyboards/idobao/id75/keymaps/drewdobo/config.h | 23 ++
keyboards/idobao/id75/keymaps/drewdobo/keymap.c | 65 +++++
keyboards/idobao/id75/keymaps/drewdobo/readme.md | 1 +
keyboards/idobao/id75/keymaps/drewdobo/rules.mk | 17 ++
keyboards/idobao/id75/keymaps/egstad/config.h | 68 ++++++
keyboards/idobao/id75/keymaps/egstad/keymap.c | 267 +++++++++++++++++++++
keyboards/idobao/id75/keymaps/egstad/readme.md | 17 ++
keyboards/idobao/id75/keymaps/egstad/rules.mk | 3 +
keyboards/idobao/id75/keymaps/gkbd/config.h | 25 ++
keyboards/idobao/id75/keymaps/gkbd/keymap.c | 41 ++++
keyboards/idobao/id75/keymaps/gkbd/readme.md | 7 +
keyboards/idobao/id75/keymaps/gkbd/rules.mk | 1 +
keyboards/idobao/id75/keymaps/gkbd_75/config.h | 21 ++
keyboards/idobao/id75/keymaps/gkbd_75/keymap.c | 35 +++
keyboards/idobao/id75/keymaps/gkbd_75/readme.md | 7 +
keyboards/idobao/id75/keymaps/gkbd_orthon/config.h | 20 ++
keyboards/idobao/id75/keymaps/gkbd_orthon/keymap.c | 78 ++++++
.../idobao/id75/keymaps/gkbd_orthon/readme.md | 11 +
.../keyboard-layout-editor-gsm-idobo.json | 190 +++++++++++++++
.../idobao/id75/keymaps/greenshadowmaker/keymap.c | 140 +++++++++++
.../idobao/id75/keymaps/greenshadowmaker/readme.md | 5 +
.../idobao/id75/keymaps/greenshadowmaker/rules.mk | 3 +
keyboards/idobao/id75/keymaps/ifohancroft/config.h | 27 +++
keyboards/idobao/id75/keymaps/ifohancroft/keymap.c | 104 ++++++++
.../idobao/id75/keymaps/ifohancroft/readme.md | 14 ++
keyboards/idobao/id75/keymaps/ifohancroft/rules.mk | 6 +
keyboards/idobao/id75/keymaps/pathnirvana/config.h | 24 ++
keyboards/idobao/id75/keymaps/pathnirvana/keymap.c | 44 ++++
keyboards/idobao/id75/keymaps/pathnirvana/rules.mk | 3 +
keyboards/idobao/id75/keymaps/revok75/config.h | 15 ++
keyboards/idobao/id75/keymaps/revok75/keymap.c | 90 +++++++
keyboards/idobao/id75/keymaps/revok75/readme.md | 1 +
keyboards/idobao/id75/keymaps/revok75/rules.mk | 14 ++
keyboards/idobao/id75/keymaps/via/keymap.c | 52 ++++
keyboards/idobao/id75/keymaps/via/rules.mk | 1 +
.../idobao/id75/keymaps/xaceofspaidsx/config.h | 19 ++
.../idobao/id75/keymaps/xaceofspaidsx/keymap.c | 67 ++++++
.../idobao/id75/keymaps/xaceofspaidsx/readme.md | 1 +
.../idobao/id75/keymaps/xaceofspaidsx/rules.mk | 19 ++
keyboards/idobao/id75/readme.md | 19 ++
keyboards/idobao/id75/rules.mk | 21 ++
49 files changed, 1898 insertions(+)
create mode 100644 keyboards/idobao/id75/config.h
create mode 100644 keyboards/idobao/id75/id75.c
create mode 100644 keyboards/idobao/id75/id75.h
create mode 100644 keyboards/idobao/id75/info.json
create mode 100644 keyboards/idobao/id75/keymaps/default/keymap.c
create mode 100644 keyboards/idobao/id75/keymaps/default/readme.md
create mode 100644 keyboards/idobao/id75/keymaps/default75/keymap.c
create mode 100644 keyboards/idobao/id75/keymaps/default75/readme.md
create mode 100644 keyboards/idobao/id75/keymaps/drewdobo/config.h
create mode 100644 keyboards/idobao/id75/keymaps/drewdobo/keymap.c
create mode 100644 keyboards/idobao/id75/keymaps/drewdobo/readme.md
create mode 100644 keyboards/idobao/id75/keymaps/drewdobo/rules.mk
create mode 100644 keyboards/idobao/id75/keymaps/egstad/config.h
create mode 100644 keyboards/idobao/id75/keymaps/egstad/keymap.c
create mode 100644 keyboards/idobao/id75/keymaps/egstad/readme.md
create mode 100644 keyboards/idobao/id75/keymaps/egstad/rules.mk
create mode 100644 keyboards/idobao/id75/keymaps/gkbd/config.h
create mode 100644 keyboards/idobao/id75/keymaps/gkbd/keymap.c
create mode 100644 keyboards/idobao/id75/keymaps/gkbd/readme.md
create mode 100644 keyboards/idobao/id75/keymaps/gkbd/rules.mk
create mode 100644 keyboards/idobao/id75/keymaps/gkbd_75/config.h
create mode 100644 keyboards/idobao/id75/keymaps/gkbd_75/keymap.c
create mode 100644 keyboards/idobao/id75/keymaps/gkbd_75/readme.md
create mode 100644 keyboards/idobao/id75/keymaps/gkbd_orthon/config.h
create mode 100644 keyboards/idobao/id75/keymaps/gkbd_orthon/keymap.c
create mode 100644 keyboards/idobao/id75/keymaps/gkbd_orthon/readme.md
create mode 100644 keyboards/idobao/id75/keymaps/greenshadowmaker/keyboard-layout-editor-gsm-idobo.json
create mode 100644 keyboards/idobao/id75/keymaps/greenshadowmaker/keymap.c
create mode 100644 keyboards/idobao/id75/keymaps/greenshadowmaker/readme.md
create mode 100644 keyboards/idobao/id75/keymaps/greenshadowmaker/rules.mk
create mode 100644 keyboards/idobao/id75/keymaps/ifohancroft/config.h
create mode 100644 keyboards/idobao/id75/keymaps/ifohancroft/keymap.c
create mode 100644 keyboards/idobao/id75/keymaps/ifohancroft/readme.md
create mode 100644 keyboards/idobao/id75/keymaps/ifohancroft/rules.mk
create mode 100644 keyboards/idobao/id75/keymaps/pathnirvana/config.h
create mode 100644 keyboards/idobao/id75/keymaps/pathnirvana/keymap.c
create mode 100644 keyboards/idobao/id75/keymaps/pathnirvana/rules.mk
create mode 100644 keyboards/idobao/id75/keymaps/revok75/config.h
create mode 100644 keyboards/idobao/id75/keymaps/revok75/keymap.c
create mode 100644 keyboards/idobao/id75/keymaps/revok75/readme.md
create mode 100644 keyboards/idobao/id75/keymaps/revok75/rules.mk
create mode 100644 keyboards/idobao/id75/keymaps/via/keymap.c
create mode 100644 keyboards/idobao/id75/keymaps/via/rules.mk
create mode 100644 keyboards/idobao/id75/keymaps/xaceofspaidsx/config.h
create mode 100644 keyboards/idobao/id75/keymaps/xaceofspaidsx/keymap.c
create mode 100644 keyboards/idobao/id75/keymaps/xaceofspaidsx/readme.md
create mode 100644 keyboards/idobao/id75/keymaps/xaceofspaidsx/rules.mk
create mode 100644 keyboards/idobao/id75/readme.md
create mode 100644 keyboards/idobao/id75/rules.mk
(limited to 'keyboards/idobao')
diff --git a/keyboards/idobao/id75/config.h b/keyboards/idobao/id75/config.h
new file mode 100644
index 0000000000..ffe0bb7011
--- /dev/null
+++ b/keyboards/idobao/id75/config.h
@@ -0,0 +1,122 @@
+/*
+Copyright 2018 MechMerlin
+
+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 .
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x6964 // ID
+#define PRODUCT_ID 0x0075
+#define DEVICE_VER 0x0001
+#define MANUFACTURER Generic
+#define PRODUCT Idobo
+
+/* 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, B3, C7, B6, C6 }
+#define MATRIX_COL_PINS { F6, F5, F4, F1, E6, D5, D3, D2, D1, D0, D4, D6, D7, B4, B5 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+#define BACKLIGHT_PIN B7
+#define BACKLIGHT_BREATHING
+#define BACKLIGHT_LEVELS 3
+
+#define RGB_DI_PIN F0
+#ifdef RGB_DI_PIN
+#define RGBLIGHT_ANIMATIONS
+#define RGBLED_NUM 16
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+#endif
+
+/* 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
+
+/* number of backlight levels */
+
+/* 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
+
+/*
+ * 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
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/idobao/id75/id75.c b/keyboards/idobao/id75/id75.c
new file mode 100644
index 0000000000..0a0e08cc32
--- /dev/null
+++ b/keyboards/idobao/id75/id75.c
@@ -0,0 +1,16 @@
+/* Copyright 2018 MechMerlin
+ *
+ * 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 .
+ */
+#include "id75.h"
diff --git a/keyboards/idobao/id75/id75.h b/keyboards/idobao/id75/id75.h
new file mode 100644
index 0000000000..9643a1efd3
--- /dev/null
+++ b/keyboards/idobao/id75/id75.h
@@ -0,0 +1,41 @@
+/* Copyright 2018 MechMerlin
+ *
+ * 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 .
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+/* This a shortcut to help you visually see your layout.
+ *
+ * The first section contains all of the arguments representing the physical
+ * layout of the board and position of the keys.
+ *
+ * The second converts the arguments into a two-dimensional array which
+ * represents the switch matrix.
+ */
+#define LAYOUT_ortho_5x15( \
+ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E, \
+ 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, k2E, \
+ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E, \
+ k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E \
+) { \
+ { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B, k0C, k0D, k0E }, \
+ { 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, k2E }, \
+ { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3A, k3B, k3C, k3D, k3E }, \
+ { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4A, k4B, k4C, k4D, k4E } \
+}
diff --git a/keyboards/idobao/id75/info.json b/keyboards/idobao/id75/info.json
new file mode 100644
index 0000000000..bacdc42235
--- /dev/null
+++ b/keyboards/idobao/id75/info.json
@@ -0,0 +1,10 @@
+{
+ "keyboard_name": "IDOBO",
+ "url": "",
+ "maintainer": "qmk",
+ "layouts": {
+ "LAYOUT_ortho_5x15": {
+ "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3, "y":0}, {"x":4, "y":0}, {"x":5, "y":0}, {"x":6, "y":0}, {"x":7, "y":0}, {"x":8, "y":0}, {"x":9, "y":0}, {"x":10, "y":0}, {"x":11, "y":0}, {"x":12, "y":0}, {"x":13, "y":0}, {"x":14, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":4, "y":1}, {"x":5, "y":1}, {"x":6, "y":1}, {"x":7, "y":1}, {"x":8, "y":1}, {"x":9, "y":1}, {"x":10, "y":1}, {"x":11, "y":1}, {"x":12, "y":1}, {"x":13, "y":1}, {"x":14, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2}, {"x":4, "y":2}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3, "y":3}, {"x":4, "y":3}, {"x":5, "y":3}, {"x":6, "y":3}, {"x":7, "y":3}, {"x":8, "y":3}, {"x":9, "y":3}, {"x":10, "y":3}, {"x":11, "y":3}, {"x":12, "y":3}, {"x":13, "y":3}, {"x":14, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4}, {"x":4, "y":4}, {"x":5, "y":4}, {"x":6, "y":4}, {"x":7, "y":4}, {"x":8, "y":4}, {"x":9, "y":4}, {"x":10, "y":4}, {"x":11, "y":4}, {"x":12, "y":4}, {"x":13, "y":4}, {"x":14, "y":4}]
+ }
+ }
+}
diff --git a/keyboards/idobao/id75/keymaps/default/keymap.c b/keyboards/idobao/id75/keymaps/default/keymap.c
new file mode 100644
index 0000000000..6c0c09804d
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/default/keymap.c
@@ -0,0 +1,54 @@
+/* Copyright 2018 MechMerlin
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+// 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] = {
+ [0] = LAYOUT_ortho_5x15(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC, KC_DEL,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RCTL, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QMKBEST:
+ if (record->event.pressed) {
+ // when keycode QMKBEST is pressed
+ SEND_STRING("QMK is the best thing ever!");
+ } else {
+ // when keycode QMKBEST is released
+ }
+ break;
+ case QMKURL:
+ if (record->event.pressed) {
+ // when keycode QMKURL is pressed
+ SEND_STRING("https://qmk.fm/" SS_TAP(X_ENTER));
+ } else {
+ // when keycode QMKURL is released
+ }
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/idobao/id75/keymaps/default/readme.md b/keyboards/idobao/id75/keymaps/default/readme.md
new file mode 100644
index 0000000000..577c62b51f
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for idobo
diff --git a/keyboards/idobao/id75/keymaps/default75/keymap.c b/keyboards/idobao/id75/keymaps/default75/keymap.c
new file mode 100644
index 0000000000..8d8ae4414c
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/default75/keymap.c
@@ -0,0 +1,67 @@
+/* Copyright 2018 Milton Griffin
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+// Keyboard Layers
+#define _QW 0
+#define _FN 1
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* QWERTY
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | 1 | 2 | 3 | 4 | 5 | - | ` | = | 6 | 7 | 8 | 9 | 0 | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | Q | W | E | R | T | [ | \ | ] | Y | U | I | O | P | ' |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | CAP LK | A | S | D | F | G | HOME | DEL | PG UP | H | J | K | L | ; | ENTER |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | END | UP | PG DN | N | M | , | . | / | RSHIFT |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LCTRL | LGUI | LALT | FN | SPACE | SPACE | LEFT | DOWN | RIGHT | SPACE | SPACE | FN | RALT | RGUI | RCTRL |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_BSLS, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT,
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_HOME, KC_DEL, 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_UP, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, KC_SPC, MO(_FN), KC_RALT, KC_RGUI, KC_RCTL
+ ),
+
+/* FUNCTION
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | F6 | NUM LK | P/ | P* | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | SELECT | CALC | MYCOMP | MAIL | RGB HD | RGB HI | P7 | P8 | P9 | - | | | PR SCR | SCR LK | PAUSE |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | PREV | PLAY | NEXT | STOP | RGB SD | RGB SI | P4 | P5 | P6 | + | | RESET | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | VOL- | MUTE | VOL+ | APP | RGB VD | RGB VI | P1 | P2 | P3 | PENT | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | RGB TG | FN | RGB RMD| RGB MD | P0 | | P. | PENT | PENT | FN | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_NLCK, KC_SLSH, KC_ASTR, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ KC_MSEL, KC_CALC, KC_MYCM, KC_MAIL, RGB_HUD, RGB_HUI, KC_P7, KC_P8, KC_P9, KC_MINS, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS,
+ KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, RGB_SAD, RGB_SAI, KC_P4, KC_P5, KC_P6, KC_PLUS, _______, RESET, _______, _______, _______,
+ KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, RGB_VAD, RGB_VAI, KC_P1, KC_P2, KC_P3, KC_PENT, _______, _______, _______, _______, _______,
+ _______, _______, RGB_TOG, MO(_FN), RGB_RMOD,RGB_MOD, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, MO(_FN), _______, _______, _______
+ ),
+};
diff --git a/keyboards/idobao/id75/keymaps/default75/readme.md b/keyboards/idobao/id75/keymaps/default75/readme.md
new file mode 100644
index 0000000000..a1c0236ed9
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/default75/readme.md
@@ -0,0 +1 @@
+# The default keymap for xd75, with led controls
\ No newline at end of file
diff --git a/keyboards/idobao/id75/keymaps/drewdobo/config.h b/keyboards/idobao/id75/keymaps/drewdobo/config.h
new file mode 100644
index 0000000000..58787ce12b
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/drewdobo/config.h
@@ -0,0 +1,23 @@
+/* Copyright 2017 Benjamin Kesselring
+ *
+ * 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 .
+ */
+
+#pragma once
+
+
+// place overrides here
+
+
+#define TAPPING_TOGGLE 5
diff --git a/keyboards/idobao/id75/keymaps/drewdobo/keymap.c b/keyboards/idobao/id75/keymaps/drewdobo/keymap.c
new file mode 100644
index 0000000000..9dfc335e82
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/drewdobo/keymap.c
@@ -0,0 +1,65 @@
+/* Copyright 2020 Drew Smathers
+ *
+ * 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 .
+ */
+#include QMK_KEYBOARD_H
+
+// Keyboard Layers
+enum layer_names {
+ _QW,
+ _QW_MAC,
+ _FN,
+ _MOUSE,
+};
+
+// Some short-cut aliases
+#define Z_LALT LALT_T(KC_ESC)
+#define Z_MAC DF(_QW_MAC)
+#define Z_PC DF(_QW)
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, XXXXXXX, XXXXXXX, XXXXXXX, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT, \
+ Z_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_RALT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCTL, XXXXXXX, KC_RCTL, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
+ TT(_FN), XXXXXXX, XXXXXXX, TT(_MOUSE), KC_EQL, KC_BSPC, KC_DEL, XXXXXXX, KC_ENT, KC_SPC, KC_MINUS, KC_GRAVE, KC_LBRC, KC_RBRC, XXXXXXX \
+ ),
+
+ [_QW_MAC] = LAYOUT_ortho_5x15( /* QWERTY MAC */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_BRMU, KC_MUTE, KC__VOLUP, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_BRMD, XXXXXXX, KC__VOLDOWN, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT, \
+ Z_LALT, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_RALT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LCMD, XXXXXXX, KC_RCMD, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, \
+ TT(_FN), KC_LCTL, XXXXXXX, TT(_MOUSE), KC_EQL, KC_BSPC, KC_DEL, XXXXXXX, KC_ENT, KC_SPC, KC_MINUS, KC_GRAVE, KC_LBRC, KC_RBRC, KC_RCTL \
+ ),
+
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, RESET, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_PGDN, KC_PGUP, XXXXXXX, XXXXXXX, XXXXXXX, \
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX, XXXXXXX, \
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, Z_MAC, _______, XXXXXXX, KC_HOME, KC_END, XXXXXXX, XXXXXXX, XXXXXXX, \
+ TT(_FN), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, Z_PC, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
+ ),
+
+ [_MOUSE] = LAYOUT_ortho_5x15( /* MOUSE */
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_WH_L, KC_WH_D, KC_WH_U, KC_WH_R, XXXXXXX, XXXXXXX, \
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, XXXXXXX, XXXXXXX, \
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BTN3, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
+ TT(_FN), XXXXXXX, XXXXXXX, TT(_MOUSE), XXXXXXX, KC_ACL1, KC_ACL2, XXXXXXX, KC_BTN2, KC_BTN1, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX \
+ )
+};
diff --git a/keyboards/idobao/id75/keymaps/drewdobo/readme.md b/keyboards/idobao/id75/keymaps/drewdobo/readme.md
new file mode 100644
index 0000000000..209808ca87
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/drewdobo/readme.md
@@ -0,0 +1 @@
+# Drew's thumb-friendly keymap for idobo boards
diff --git a/keyboards/idobao/id75/keymaps/drewdobo/rules.mk b/keyboards/idobao/id75/keymaps/drewdobo/rules.mk
new file mode 100644
index 0000000000..f9bbfd4948
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/drewdobo/rules.mk
@@ -0,0 +1,17 @@
+# Copyright 2013 Jun Wako
+#
+# 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 .
+
+
+MOUSEKEY_ENABLE = yes
diff --git a/keyboards/idobao/id75/keymaps/egstad/config.h b/keyboards/idobao/id75/keymaps/egstad/config.h
new file mode 100644
index 0000000000..45dbd3df82
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/egstad/config.h
@@ -0,0 +1,68 @@
+/* Copyright 2020 Jordan Egstad
+ *
+ * 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 .
+ */
+
+#pragma once
+#define TAPPING_TERM 200
+#define IGNORE_MOD_TAP_INTERRUPT
+#define RGBLIGHT_SLEEP
+
+
+
+/* Leader Key
+ ========================================================================== */
+
+// Activates the leader key
+// #define LEADER_PER_KEY_TIMING
+// resets the timeout after each key is tapped
+// #define LEADER_TIMEOUT 240
+
+
+
+
+
+
+/* Autoshifting
+ ========================================================================== */
+
+// This controls how long you have to hold a key before you get the shifted state.
+#define AUTO_SHIFT_TIMEOUT 150
+
+// Do not Auto Shift special keys -_, =+, [{, ]}, ;:, '", ,<, .>, and /?
+// #define NO_AUTO_SHIFT_SPECIAL
+
+// Do not Auto Shift numeric keys, zero through nine.
+#define NO_AUTO_SHIFT_NUMERIC
+
+// Do not Auto Shift alpha characters, which include A through Z.
+// #define NO_AUTO_SHIFT_ALPHA
+
+// Lower the Auto Shift timeout variable (down)
+// KC_ASDN
+
+// Raise the Auto Shift timeout variable (up)
+// KC_ASUP
+
+// Report your current Auto Shift timeout value
+// KC_ASRP
+
+// Turns on the Auto Shift Function
+// KC_ASON
+
+// Turns off the Auto Shift Function
+// KC_ASOFF
+
+// Toggles the state of the Auto Shift feature
+// KC_ASTG
diff --git a/keyboards/idobao/id75/keymaps/egstad/keymap.c b/keyboards/idobao/id75/keymaps/egstad/keymap.c
new file mode 100644
index 0000000000..febbad7c6e
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/egstad/keymap.c
@@ -0,0 +1,267 @@
+/* Copyright 2020 Jordan Egstad
+ *
+ * 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 .
+ */
+
+#include QMK_KEYBOARD_H
+
+
+
+
+
+
+/* ==========================================================================
+ LAYERS
+ ========================================================================== */
+
+// qwerty
+#define _QW 0
+// functions
+#define _FN 1
+
+
+
+
+
+
+/* ==========================================================================
+ CUSTOM KEYS
+ ========================================================================== */
+
+// Tap dances
+#define TD_ESCP TD(TD_GV_ESC) // Tap for grave, twice for escape
+#define TD_MINS TD(TD_MIN) // Tap for minus, twice for equal
+#define TD_BRAC TD(TD_BRC) // Tap for open brace, twice for close
+
+// Layers
+#define FN_SPC LT(_FN, KC_SPC) // Tap for space, hold for _FN
+
+// Modifiers
+#define LG_ZMIN LGUI(KC_EQUAL) // Command + plus (zoom in)
+#define LG_ZMOT LGUI(KC_MINUS) // Command + minus (zoom out)
+#define MT_SHFT MT(MOD_RSFT, KC_ENT) // Tap for enter, hold for shift
+
+// Tap Dances
+enum {
+ TD_BRC = 0,
+ TD_MIN,
+ TD_GV_ESC,
+ TD_BS
+};
+
+// Tap Dance Definitions
+qk_tap_dance_action_t tap_dance_actions[] = {
+ // Tap once for Left Brace, twice for Right Brace
+ [TD_BRC] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC, KC_RBRC),
+ //Tap once for Minus, twice for Equal
+ [TD_MIN] = ACTION_TAP_DANCE_DOUBLE(KC_MINUS, KC_EQUAL),
+ // Tap once for Grave, tap twice for Escape
+ [TD_GV_ESC] = ACTION_TAP_DANCE_DOUBLE(KC_GRAVE, KC_ESCAPE)
+};
+
+
+
+
+
+
+/* ==========================================================================
+ KEYMAPS
+ ========================================================================== */
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* QWERTY (_QW)
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | 1 | 2 | 3 | 4 | 5 | - | ` | \| | 6 | 7 | 8 | 9 | 0 | - + |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | Q | W | E | R | T | [ | \ | ] | Y | U | I | O | P | [ ] |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | CAP LK | A | S | D | F | G | | | | H | J | K | L | ; | ' |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | | | | N | M | , | . | / | RSHIFT |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | ZOOM- | ZOOM+ | LALT | FN | CMD | BSPC | | | FN | SPACE | ENTER | LEFT | UP | DOWN | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+ TD_ESCP, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, KC_GRV, KC_PIPE, KC_6, KC_7, KC_8, KC_9, KC_0, TD_MINS, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_LBRC, KC_BSLS, KC_RBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, TD_BRAC, \
+ _______, KC_A, KC_S, KC_D, KC_F, KC_G, _______, _______, _______, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, MT_SHFT, \
+ LG_ZMOT, LG_ZMIN, KC_LCTL, KC_LALT, KC_LGUI, KC_BSPC, _______, RESET, _______, FN_SPC, KC_ENT, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT \
+ ),
+
+
+/* FUNCTION (_FN)
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | F6 | | P | | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | RGB HD | RGB HI | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | A-SFT | | | | | | RGB SD | RGB SI | | | LEFT | UP | DOWN | RIGHT | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | RGB | | | | | | RGB VD | RGB VI | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | RESET | | | | | | RGB RMD| RGB MD | | | PLAY | PREV | VOL UP | VOL DN | NEXT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, _______, _______, _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, \
+ _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, \
+ KC_ASTG, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, _______, _______, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, _______, \
+ RGB_TOG, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, \
+ RESET, _______, _______, _______, _______, _______, RGB_RMOD,RGB_MOD, _______, _______, KC_MPLY, KC_MRWD, KC_VOLU, KC_VOLD, KC_MFFD \
+ ),
+};
+
+
+
+
+
+
+/* ==========================================================================
+ LEDs
+ ========================================================================== */
+
+// RGB MODES
+// 1 = Static
+// 2-5 = Breathing
+// 6-8 = Rainbow
+// 9-14 = Swirl
+// 15-20 = Snake
+// 21-24 = Nightrider
+// 25 = Christmas
+// 26-30 = Static Gradient
+
+// Default LED colors
+uint8_t h = 170;
+uint8_t s = 255;
+uint8_t v;
+
+// default animation
+uint8_t rgbMode = RGBLIGHT_MODE_STATIC_LIGHT;
+// boot animation
+uint8_t rgbBootMode = RGBLIGHT_MODE_SNAKE;
+// boot timeout vars
+uint8_t bootComplete = 0;
+int bootTimeoutDuration = 2000;
+int bootTimeout;
+
+
+void init_hsv(void) {
+ // fetch what the brightness was last sesion
+ v = rgblight_get_val();
+ rgblight_sethsv(h,s,v);
+}
+
+// fetch current HSV vals
+void get_hsv(void) {
+ h = rgblight_get_hue();
+ s = rgblight_get_sat();
+ v = rgblight_get_val();
+}
+
+// reset HSV vals
+void reset_hsv(void) {
+ int currentV = rgblight_get_val();
+ rgblight_sethsv(h,s,currentV);
+}
+
+// deterimes when to stop bootup animation
+void bootupAnimation(void) {
+ bootComplete = (timer_elapsed(bootTimeout) > bootTimeoutDuration) ? 1 : 0;
+
+ if (bootComplete) {
+ rgblight_mode(rgbMode);
+ }
+}
+
+
+
+
+
+
+/* ==========================================================================
+ INITIALIZATION FUNCTION
+ ========================================================================== */
+
+void keyboard_post_init_user(void) {
+ // start a timeout
+ bootTimeout = timer_read();
+ // set rgb color
+ init_hsv();
+ // init rgb
+ rgblight_enable();
+ // animate in snake ledGreende
+ rgblight_mode(rgbBootMode);
+};
+
+
+
+
+
+
+/* ==========================================================================
+ ALWAYS RUNNING
+ ========================================================================== */
+void matrix_scan_user(void) {
+ // keep an eye on these layers
+ uint8_t layer = get_highest_layer(layer_state);
+ // handle boot-up sequence
+ bootupAnimation();
+ // watch the brightness for changes
+ v = rgblight_get_val();
+
+ switch (layer) {
+ case _FN:
+ // set leds to white
+ rgblight_sethsv_noeeprom(h,0,v);
+ break;
+ default:
+ break;
+ }
+};
+
+
+
+
+
+
+/* ==========================================================================
+ KEYPRESS CALLBACKS
+ ========================================================================== */
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ // keep an eye on these layers
+ uint8_t layer = get_highest_layer(layer_state);
+
+ switch (keycode) {
+ case FN_SPC:
+ // stash and pop color on key down and key up
+ (record->event.pressed) ? get_hsv() : reset_hsv();
+ return true;
+ default:
+ switch (layer) {
+ case _QW:
+ // tick the hue up with each keypress
+ rgblight_increase_hue();
+ break;
+ default:
+ break;
+ }
+ return true; // Process all other keycodes normally
+ }
+}
diff --git a/keyboards/idobao/id75/keymaps/egstad/readme.md b/keyboards/idobao/id75/keymaps/egstad/readme.md
new file mode 100644
index 0000000000..2de44ad9cc
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/egstad/readme.md
@@ -0,0 +1,17 @@
+# Egstad's Idobo
+
+## LEDs
+By default, LEDs are enabled. There is a short bootup animation (`bootupAnimation()`) to indicate that the keyboard has powered up correctly.
+
+On each keypress, the LEDs hue increases. This increase is determined the the `RGBLIGHT_HUE_STEP` value, which is assigned in `../config.h` (parent idobo directory). My local copy has this value set to `1`, so the incremental color shift is rather slow.
+
+
+## Keeping up to date
+To update your fork’s master, run the following, hitting the Enter key after each line:
+
+```bash
+git checkout master
+git fetch upstream
+git pull upstream master
+git push origin master
+```
diff --git a/keyboards/idobao/id75/keymaps/egstad/rules.mk b/keyboards/idobao/id75/keymaps/egstad/rules.mk
new file mode 100644
index 0000000000..ca3becc383
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/egstad/rules.mk
@@ -0,0 +1,3 @@
+TAP_DANCE_ENABLE = yes
+AUTO_SHIFT_ENABLE = yes
+RGBLIGHT_ENABLE = yes
diff --git a/keyboards/idobao/id75/keymaps/gkbd/config.h b/keyboards/idobao/id75/keymaps/gkbd/config.h
new file mode 100644
index 0000000000..35572307c0
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/gkbd/config.h
@@ -0,0 +1,25 @@
+/* Copyright 2021 Giorgi Chavchanidze
+ *
+ * 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 .
+ */
+
+#pragma once
+
+#define UNICODE_SELECTED_MODES UC_WINC
+
+/* Selected Unicode input method relies on WinCompose
+ * https://docs.qmk.fm/#/feature_unicode?id=input-modes
+ * Linux users are better served by xkb configuration
+ * https://gitlab.com/lykt/geotype/-/blob/master/xkb/dsae
+ */
diff --git a/keyboards/idobao/id75/keymaps/gkbd/keymap.c b/keyboards/idobao/id75/keymaps/gkbd/keymap.c
new file mode 100644
index 0000000000..16e16cd855
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/gkbd/keymap.c
@@ -0,0 +1,41 @@
+/* Copyright 2021 Giorgi Chavchanidze
+ *
+ * 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 .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_ortho_5x15(/* Latin base */
+ KC_ESC, KC_PSLS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_PSCR, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, KC_DEL,
+ KC_TAB, KC_SCLN, KC_P, KC_Y, KC_T, KC_U, KC_G, KC_PGUP, KC_H, KC_N, KC_V, KC_K, KC_X, KC_MINS, KC_INS,
+ KC_CAPS, KC_W, KC_D, KC_S, KC_A, KC_E, KC_O, KC_PGDN, KC_L, KC_R, KC_I, KC_M, KC_B, KC_C, KC_ENT,
+ KC_LSFT, KC_BSLS, KC_J, KC_LBRC, KC_RBRC, KC_COMM, KC_DOT, KC_UP, KC_QUOT, KC_Z, KC_Q, KC_F, KC_SLSH, KC_GRV, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, MO(2), KC_HOME, KC_BSPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, KC_END, MO(2), KC_RALT, RGUI_T(KC_APP), KC_RCTL
+ ),
+ [1] = LAYOUT_ortho_5x15(/* Unicode layer */
+ KC_TRNS, KC_SLSH, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, UC(0x10EB), UC(0x10DE), UC(0x10E8), UC(0x10E2), UC(0x10E3), UC(0x10D2), KC_TRNS, UC(0x10EE), UC(0x10DC), UC(0x10D5), UC(0x10D9), UC(0x10E9), KC_TRNS, KC_TRNS,
+ KC_SCLN, UC(0x10D7), UC(0x10D3), UC(0x10E1), UC(0x10D0), UC(0x10D4), UC(0x10DD), KC_TRNS, UC(0x10DA), UC(0x10E0), UC(0x10D8), UC(0x10DB), UC(0x10D1), UC(0x10EA), KC_TRNS,
+ KC_TRNS, UC(0x10DF), UC(0x10EF), UC(0x10E7), UC(0x10EC), KC_TRNS, KC_TRNS, KC_TRNS, UC(0x10E6), UC(0x10D6), UC(0x10E5), UC(0x10E4), UC(0x10F0), UC(0x10ED), KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+ [2] = LAYOUT_ortho_5x15(/* Function keys */
+ RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, TG(1), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_SLCK, KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_NO, KC_PAUS,
+ KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_F11, KC_NO, KC_NO, KC_NO, KC_F12, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+};
diff --git a/keyboards/idobao/id75/keymaps/gkbd/readme.md b/keyboards/idobao/id75/keymaps/gkbd/readme.md
new file mode 100644
index 0000000000..3951f3e564
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/gkbd/readme.md
@@ -0,0 +1,7 @@
+![Georgian linear layout](https://lykt.xyz/kbd/linear/dsae.svg)
+
+# Georgian linear layout configuration for idobo
+
+Based on Georgian Carpalx optimized linear layout from [https://gitlab.com/lykt](https://gitlab.com/lykt)
+
+Some documentation (in Georgian) and resources (xkb, klc, json configurations) are available at [https://lykt.xyz/kbd/linear/](https://lykt.xyz/kbd/linear/)
diff --git a/keyboards/idobao/id75/keymaps/gkbd/rules.mk b/keyboards/idobao/id75/keymaps/gkbd/rules.mk
new file mode 100644
index 0000000000..039f07c8e3
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/gkbd/rules.mk
@@ -0,0 +1 @@
+UNICODE_ENABLE = yes
diff --git a/keyboards/idobao/id75/keymaps/gkbd_75/config.h b/keyboards/idobao/id75/keymaps/gkbd_75/config.h
new file mode 100644
index 0000000000..7813d776e5
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/gkbd_75/config.h
@@ -0,0 +1,21 @@
+/* Copyright 2021 Giorgi Chavchanidze
+ *
+ * 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 .
+ */
+
+#pragma once
+
+#define TAPPING_TERM 200
+#define IGNORE_MOD_TAP_INTERRUPT
+#define PERMISSIVE_HOLD
diff --git a/keyboards/idobao/id75/keymaps/gkbd_75/keymap.c b/keyboards/idobao/id75/keymaps/gkbd_75/keymap.c
new file mode 100644
index 0000000000..be67aead4e
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/gkbd_75/keymap.c
@@ -0,0 +1,35 @@
+/* Copyright 2021 Giorgi Chavchanidze
+ *
+ * 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 .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_ortho_5x15(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_F1, KC_F4, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, KC_F7,
+ KC_TAB, KC_K, KC_P, KC_L, KC_R, KC_C, KC_F2, KC_F5, KC_M, KC_U, KC_O, KC_W, KC_X, KC_SLSH, KC_F8,
+ KC_CAPS, KC_D, KC_S, KC_T, KC_F, KC_N, KC_F3, KC_F6, KC_I, RSFT_T(KC_J), KC_E, KC_A, KC_H, KC_ENT, KC_F9,
+ KC_PGUP, KC_Q, KC_B, KC_G, KC_COMM, KC_DOT, KC_LGUI, KC_RALT, KC_MINS, KC_V, KC_Y, KC_QUOT, KC_Z, KC_UP, KC_F10,
+ KC_PGDN, KC_PSCR, KC_INS, KC_DEL, LT(1,KC_F11), KC_BSPC, KC_LSFT, KC_RCTL, KC_SPC, LT(1,KC_F12), KC_HOME, KC_END, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_ortho_5x15(
+ RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_LCBR, KC_RCBR, KC_LBRC, KC_RBRC, KC_SLCK, KC_NO, KC_NO, KC_PAUS, KC_BSLS, KC_PIPE, KC_SCLN, KC_COLN, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_WAKE, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_GRV, KC_TRNS, KC_TRNS, KC_TILD, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_APP
+ )
+};
+
diff --git a/keyboards/idobao/id75/keymaps/gkbd_75/readme.md b/keyboards/idobao/id75/keymaps/gkbd_75/readme.md
new file mode 100644
index 0000000000..aa14049420
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/gkbd_75/readme.md
@@ -0,0 +1,7 @@
+![Orthocarpus layout](https://lykt.xyz/jnsf/ortho/ortho.jpg)
+
+# Orthocarpus layout configuration for idobo
+
+Based on ortholinear carpalx optimized layout from [https://gitlab.com/lykt](https://gitlab.com/lykt)
+
+Some documentation and resources (carpalx report, json configuration) are available at [https://lykt.xyz/jnsf/ortho/](https://lykt.xyz/jnsf/ortho/)
diff --git a/keyboards/idobao/id75/keymaps/gkbd_orthon/config.h b/keyboards/idobao/id75/keymaps/gkbd_orthon/config.h
new file mode 100644
index 0000000000..e8fc39faad
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/gkbd_orthon/config.h
@@ -0,0 +1,20 @@
+/* Copyright 2021 Giorgi Chavchanidze
+ *
+ * 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 .
+ */
+
+#pragma once
+
+#define TAPPING_TERM 200
+#define IGNORE_MOD_TAP_INTERRUPT
diff --git a/keyboards/idobao/id75/keymaps/gkbd_orthon/keymap.c b/keyboards/idobao/id75/keymaps/gkbd_orthon/keymap.c
new file mode 100644
index 0000000000..a603eae657
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/gkbd_orthon/keymap.c
@@ -0,0 +1,78 @@
+/* Copyright 2021 Giorgi Chavchanidze
+ *
+ * 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 .
+ */
+
+#include QMK_KEYBOARD_H
+
+#define MIN_PROXIMITY 8000
+
+uint16_t predecessor_key = KC_NO;
+uint16_t adaptive_key = KC_NO;
+
+static uint16_t vowel_proximity;
+
+enum custom_keycodes {
+ ON = SAFE_RANGE,
+};
+
+bool promote_consonants(void) {
+ return predecessor_key == KC_O && timer_elapsed(vowel_proximity) < MIN_PROXIMITY && !(get_mods() & ~MOD_MASK_SHIFT & MOD_MASK_CAG);
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+
+ if (keycode == ON) {
+
+ if (record->event.pressed) {
+
+ keycode = promote_consonants()?KC_N:KC_O;
+ register_code(keycode);
+ adaptive_key = keycode;
+
+ }
+ else {
+ unregister_code(adaptive_key);
+ }
+ }
+
+ if (!IS_MOD(keycode) && record->event.pressed) {
+ if(keycode == KC_E || keycode == KC_A || keycode == KC_O || keycode == KC_I || keycode == KC_U) {
+ predecessor_key = KC_O;
+ vowel_proximity = timer_read();
+ }
+ else {
+ predecessor_key = keycode;
+ }
+ }
+
+ return true;
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [0] = LAYOUT_ortho_5x15(/* Base */
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_LBRC, KC_APP, KC_RBRC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL,
+ KC_QUOT, KC_Z, KC_Y, KC_U, KC_F, KC_W, KC_LCBR, KC_PSCR, KC_RCBR, KC_G, KC_M, KC_P, KC_N, KC_J, KC_MINS,
+ KC_ESC, KC_H, KC_I, KC_E, KC_A, KC_C, KC_LPRN, MO(1), KC_RPRN, KC_L, KC_R, KC_T, KC_S, KC_D, KC_ENT,
+ KC_TAB, KC_SCLN, KC_X, KC_O, KC_COMM, KC_DOT, KC_SLSH, KC_LGUI, KC_BSLS, KC_K, KC_V, KC_B, RSFT_T(KC_Q), KC_UP, KC_INS,
+ KC_CAPS, KC_HOME, KC_END, KC_DEL, KC_BSPC, ON, KC_LSFT, KC_RCTL, KC_RALT, KC_SPC, KC_PGDN, KC_PGUP, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [1] = LAYOUT_ortho_5x15(/* Function keys */
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ KC_SLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_NO, KC_TRNS, KC_NO, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_PAUS,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
+ RESET, KC_NO, KC_NO, KC_NO, KC_NO, KC_F11, KC_TRNS, KC_TRNS, KC_TRNS, KC_F12, KC_NO, KC_NO, KC_NO, KC_NO, RGB_TOG
+ )
+};
diff --git a/keyboards/idobao/id75/keymaps/gkbd_orthon/readme.md b/keyboards/idobao/id75/keymaps/gkbd_orthon/readme.md
new file mode 100644
index 0000000000..36479ff9ba
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/gkbd_orthon/readme.md
@@ -0,0 +1,11 @@
+![Orthon layout](https://lykt.xyz/rtsd/orthon.svg)
+
+# Orthon layout
+
+Ortholinear carpalx optimized layout with adaptive thumb key.
+
+Adaptive key is
+ * **n** after **eaoiu** vowels
+ * **o** otherwise
+
+Some documentation and resources (carpalx report, json configuration) are available at [https://lykt.xyz/rtsd/#orthon](https://lykt.xyz/rtsd/#orthon)
diff --git a/keyboards/idobao/id75/keymaps/greenshadowmaker/keyboard-layout-editor-gsm-idobo.json b/keyboards/idobao/id75/keymaps/greenshadowmaker/keyboard-layout-editor-gsm-idobo.json
new file mode 100644
index 0000000000..19c0780463
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/greenshadowmaker/keyboard-layout-editor-gsm-idobo.json
@@ -0,0 +1,190 @@
+[
+ {
+ "name": "gsm-idobo",
+ "notes": "Massdrop xd75\n\nFront Legend = \"Adust\" layer (both lower and Raise)"
+ },
+ [
+ {
+ "a": 3
+ },
+ "Esc\n\n\n\nreset",
+ {
+ "t": "#0000ff\n#ff0000",
+ "a": 4
+ },
+ "\nF1\n\n\n\n\n\n\n\n1 !",
+ "\nF2\n\n\n\n\n\n\n\n2 @",
+ "\nF3\n\n\n\n\n\n\n\n3 #",
+ "\nF4\n\n\n\n\n\n\n\n4 $",
+ "\nF5\n\n\n\n\n\n\n\n5 %",
+ {
+ "t": "#000000",
+ "a": 7
+ },
+ "= +",
+ "",
+ "- _",
+ {
+ "t": "#0000ff\n#ff0000",
+ "a": 0
+ },
+ "\nF6\n\n\nrgbplain\n\n\n\n\n6 ^",
+ "\nF7\n\n\nrgbtest\n\n\n\n\n7 &",
+ "\nF8\n\n\nrgbmode\n\n\n\n\n8 *",
+ {
+ "a": 4
+ },
+ "\nF9\n\n\n\n\n\n\n\n9 (",
+ "\nF10\n\n\n\n\n\n\n\n0 )",
+ {
+ "t": "#000000",
+ "a": 7
+ },
+ "Bksp"
+ ],
+ [
+ "Tab",
+ "Q",
+ {
+ "t": "#0000ff\n#ff0000",
+ "a": 4
+ },
+ "PgUp\nUP\n\n\n\n\n\n\n\nW",
+ {
+ "t": "#000000",
+ "a": 7
+ },
+ "E",
+ {
+ "a": 3
+ },
+ "R\n\n\n\nrgb_tog",
+ "T\n\n\n\nbl_tog",
+ {
+ "a": 7
+ },
+ "",
+ "",
+ "[ {",
+ "T",
+ "Y",
+ "I",
+ "O",
+ "P",
+ "]"
+ ],
+ [
+ {
+ "c": "#0000ff",
+ "t": "#ffffff"
+ },
+ "Raise",
+ {
+ "c": "#cccccc",
+ "t": "#0000ff\n#ff0000",
+ "a": 4
+ },
+ "Home\nLEFT\n\n\n\n\n\n\n\nA",
+ {
+ "a": 0
+ },
+ "PgDwn\nDOWN\n\n\nrgb_hai\n\n\n\n\nS",
+ "End\nRIGHT\n\n\nrgb_sai\n\n\n\n\nD",
+ {
+ "t": "#000000",
+ "a": 3
+ },
+ "F\n\n\n\nrgb_vai",
+ "G\n\n\n\nbl_inc",
+ {
+ "a": 7
+ },
+ "",
+ "UP",
+ "PrtScr",
+ "H",
+ "J",
+ "K",
+ "L",
+ "; :",
+ "' \""
+ ],
+ [
+ {
+ "a": 3
+ },
+ "Shift\n\n\n\neep_rst",
+ {
+ "a": 7
+ },
+ "Z",
+ {
+ "a": 3
+ },
+ "X\n\n\n\nrgb_hud",
+ "C\n\n\n\nrgb_sad",
+ "V\n\n\n\nrgb_vad",
+ "B\n\n\n\nbl_dec",
+ {
+ "a": 7
+ },
+ "LEFT",
+ "DOWN",
+ "RIGHT",
+ "N",
+ "M",
+ ", <",
+ ". >",
+ "/ ?",
+ {
+ "a": 6
+ },
+ "Shift"
+ ],
+ [
+ {
+ "a": 7
+ },
+ "` ~",
+ "\\ |",
+ "Alt",
+ "Ctrl",
+ {
+ "c": "#ff0000"
+ },
+ "Lower",
+ {
+ "c": "#eb7c15"
+ },
+ "Space",
+ {
+ "c": "#cccccc",
+ "t": "#0000ff\n#ff0000",
+ "a": 4
+ },
+ "\nApp\n\n\n\n\n\n\n\nOS",
+ {
+ "t": "#000000",
+ "a": 7
+ },
+ "Del",
+ "Enter",
+ {
+ "c": "#eb7c15"
+ },
+ "Space",
+ {
+ "c": "#0000ff",
+ "t": "#ffffff"
+ },
+ "Raise",
+ {
+ "c": "#cccccc",
+ "t": "#000000"
+ },
+ "Left",
+ "Down",
+ "Up",
+ "Right"
+ ]
+]
\ No newline at end of file
diff --git a/keyboards/idobao/id75/keymaps/greenshadowmaker/keymap.c b/keyboards/idobao/id75/keymaps/greenshadowmaker/keymap.c
new file mode 100644
index 0000000000..d23bc7c7df
--- /dev/null
+++ b/keyboards/idobao/id75/keymaps/greenshadowmaker/keymap.c
@@ -0,0 +1,140 @@
+#include QMK_KEYBOARD_H
+
+enum custom_keycodes {
+ LOWER = SAFE_RANGE,
+ RAISE,
+};
+
+enum layer_names {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _ADJUST,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* QWERTY
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | 1 | 2 | 3 | 4 | 5 | = | | - | 6 | 7 | 8 | 9 | 0 | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | Q | W | E | R | T | | | [ | Y | U | I | O | P | ] |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | RAISE | A | S | D | F | G | | UP | PrtScr | H | J | K | L | ; | ' |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | LEFT | DOWN | RIGHT | N | M | , | . | / | RSHIFT |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | ` | \ | LALT | LCTRL | LOWER | SPACE | LGUI | DEL | ENTER | SPACE | RAISE | LEFT | DOWN | UP | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_ortho_5x15(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, XXXXXXX, KC_MINS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, KC_LBRC, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_RBRC,
+ RAISE, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, KC_UP, KC_PSCR, 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_LEFT, KC_DOWN, KC_RGHT, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_GRAVE, KC_BSLS, KC_LALT, KC_LCTL, LOWER, KC_SPC, KC_LGUI, KC_DEL, KC_ENT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+
+/* LOWER
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * |