summaryrefslogtreecommitdiff
path: root/keyboards/xiudi/xd75
diff options
context:
space:
mode:
authorpeepeetee <43021794+peepeetee@users.noreply.github.com>2021-08-21 22:53:49 -0500
committerGitHub <noreply@github.com>2021-08-22 13:53:49 +1000
commit78ccd9c201199444bc06161b05ee8d7ba9c31613 (patch)
tree726d9e55d8cde510fe72bc1fb9bb2a7dabdbecc2 /keyboards/xiudi/xd75
parentc70abc8d047319830e369ae4e14cd43bae3bd3b8 (diff)
Organize KPrepublic, K.T.E.C, xiudi boards into directories (#12159)
* reset; redoing my steps; and recommit * include xd002/.noci
Diffstat (limited to 'keyboards/xiudi/xd75')
-rw-r--r--keyboards/xiudi/xd75/config.h142
-rw-r--r--keyboards/xiudi/xd75/info.json92
-rw-r--r--keyboards/xiudi/xd75/keymaps/4sstylz/config.h31
-rw-r--r--keyboards/xiudi/xd75/keymaps/4sstylz/keycodes.h90
-rw-r--r--keyboards/xiudi/xd75/keymaps/4sstylz/keymap.c186
-rw-r--r--keyboards/xiudi/xd75/keymaps/4sstylz/leds.h46
-rw-r--r--keyboards/xiudi/xd75/keymaps/4sstylz/readme.md4
-rw-r--r--keyboards/xiudi/xd75/keymaps/4sstylz/rules.mk30
-rw-r--r--keyboards/xiudi/xd75/keymaps/adi/config.h20
-rw-r--r--keyboards/xiudi/xd75/keymaps/adi/keymap.c199
-rw-r--r--keyboards/xiudi/xd75/keymaps/adi/readme.md21
-rw-r--r--keyboards/xiudi/xd75/keymaps/adi/rules.mk16
-rw-r--r--keyboards/xiudi/xd75/keymaps/arpinfidel/config.h27
-rw-r--r--keyboards/xiudi/xd75/keymaps/arpinfidel/keymap.c114
-rw-r--r--keyboards/xiudi/xd75/keymaps/arpinfidel/readme.md35
-rw-r--r--keyboards/xiudi/xd75/keymaps/arpinfidel/rules.mk16
-rw-r--r--keyboards/xiudi/xd75/keymaps/atomic_style/config.h19
-rw-r--r--keyboards/xiudi/xd75/keymaps/atomic_style/keymap.c180
-rw-r--r--keyboards/xiudi/xd75/keymaps/atomic_style/readme.md1
-rw-r--r--keyboards/xiudi/xd75/keymaps/atomic_style/rules.mk15
-rw-r--r--keyboards/xiudi/xd75/keymaps/atomic_style_jp/keymap.c81
-rw-r--r--keyboards/xiudi/xd75/keymaps/atomic_style_jp/readme.md4
-rw-r--r--keyboards/xiudi/xd75/keymaps/bbaserdem/config.h3
-rw-r--r--keyboards/xiudi/xd75/keymaps/bbaserdem/keymap.c21
-rw-r--r--keyboards/xiudi/xd75/keymaps/bbaserdem/readme.md14
-rw-r--r--keyboards/xiudi/xd75/keymaps/bbaserdem/rules.mk7
-rw-r--r--keyboards/xiudi/xd75/keymaps/billypython/config.h14
-rw-r--r--keyboards/xiudi/xd75/keymaps/billypython/keymap.c119
-rw-r--r--keyboards/xiudi/xd75/keymaps/billypython/rules.mk15
-rw-r--r--keyboards/xiudi/xd75/keymaps/boy_314/config.h1
-rw-r--r--keyboards/xiudi/xd75/keymaps/boy_314/keymap.c141
-rw-r--r--keyboards/xiudi/xd75/keymaps/boy_314/readme.md8
-rw-r--r--keyboards/xiudi/xd75/keymaps/boy_314/rules.mk0
-rw-r--r--keyboards/xiudi/xd75/keymaps/bramver/config.h25
-rw-r--r--keyboards/xiudi/xd75/keymaps/bramver/keymap.c109
-rw-r--r--keyboards/xiudi/xd75/keymaps/bramver/readme.md43
-rw-r--r--keyboards/xiudi/xd75/keymaps/bramver/rules.mk7
-rw-r--r--keyboards/xiudi/xd75/keymaps/bulbizarre/config.h19
-rw-r--r--keyboards/xiudi/xd75/keymaps/bulbizarre/keymap.c152
-rw-r--r--keyboards/xiudi/xd75/keymaps/bulbizarre/readme.md4
-rw-r--r--keyboards/xiudi/xd75/keymaps/bulbizarre/rules.mk16
-rw-r--r--keyboards/xiudi/xd75/keymaps/buzzlighter1/config.h5
-rw-r--r--keyboards/xiudi/xd75/keymaps/buzzlighter1/keymap.c113
-rw-r--r--keyboards/xiudi/xd75/keymaps/buzzlighter1/readme.md54
-rw-r--r--keyboards/xiudi/xd75/keymaps/buzzlighter1/rules.mk4
-rw-r--r--keyboards/xiudi/xd75/keymaps/c4software_bepo/config.h19
-rw-r--r--keyboards/xiudi/xd75/keymaps/c4software_bepo/keymap.c68
-rw-r--r--keyboards/xiudi/xd75/keymaps/c4software_bepo/readme.md37
-rw-r--r--keyboards/xiudi/xd75/keymaps/c4software_bepo/rules.mk14
-rw-r--r--keyboards/xiudi/xd75/keymaps/cbbrowne/config.h34
-rw-r--r--keyboards/xiudi/xd75/keymaps/cbbrowne/keymap.c310
-rw-r--r--keyboards/xiudi/xd75/keymaps/cbbrowne/readme.md22
-rw-r--r--keyboards/xiudi/xd75/keymaps/cbbrowne/rules.mk19
-rwxr-xr-xkeyboards/xiudi/xd75/keymaps/clanghans/config.h21
-rwxr-xr-xkeyboards/xiudi/xd75/keymaps/clanghans/keymap.c64
-rwxr-xr-xkeyboards/xiudi/xd75/keymaps/clanghans/readme.md11
-rw-r--r--keyboards/xiudi/xd75/keymaps/colinta/config.h25
-rw-r--r--keyboards/xiudi/xd75/keymaps/colinta/keymap.c268
-rw-r--r--keyboards/xiudi/xd75/keymaps/colinta/readme.md64
-rw-r--r--keyboards/xiudi/xd75/keymaps/daniel/keymap.c29
-rw-r--r--keyboards/xiudi/xd75/keymaps/daniel/readme.md1
-rw-r--r--keyboards/xiudi/xd75/keymaps/davidrambo/config.h22
-rw-r--r--keyboards/xiudi/xd75/keymaps/davidrambo/keymap.c194
-rw-r--r--keyboards/xiudi/xd75/keymaps/davidrambo/readme.md8
-rw-r--r--keyboards/xiudi/xd75/keymaps/davidrambo/rules.mk2
-rw-r--r--keyboards/xiudi/xd75/keymaps/default/keymap.c66
-rw-r--r--keyboards/xiudi/xd75/keymaps/default/readme.md1
-rw-r--r--keyboards/xiudi/xd75/keymaps/developper_bepo/config.h19
-rw-r--r--keyboards/xiudi/xd75/keymaps/developper_bepo/keymap.c72
-rw-r--r--keyboards/xiudi/xd75/keymaps/developper_bepo/readme.md13
-rw-r--r--keyboards/xiudi/xd75/keymaps/developper_bepo/rules.mk14
-rw-r--r--keyboards/xiudi/xd75/keymaps/dyn_macro_tap_dance/config.h19
-rw-r--r--keyboards/xiudi/xd75/keymaps/dyn_macro_tap_dance/keymap.c115
-rw-r--r--keyboards/xiudi/xd75/keymaps/dyn_macro_tap_dance/readme.md1
-rw-r--r--keyboards/xiudi/xd75/keymaps/dyn_macro_tap_dance/rules.mk17
-rw-r--r--keyboards/xiudi/xd75/keymaps/emilyh/config.h19
-rw-r--r--keyboards/xiudi/xd75/keymaps/emilyh/keymap.c181
-rw-r--r--keyboards/xiudi/xd75/keymaps/emilyh/readme.md1
-rw-r--r--keyboards/xiudi/xd75/keymaps/emilyh/rules.mk15
-rw-r--r--keyboards/xiudi/xd75/keymaps/ericgebhart/config.h12
-rw-r--r--keyboards/xiudi/xd75/keymaps/ericgebhart/keymap.c242
-rw-r--r--keyboards/xiudi/xd75/keymaps/ericgebhart/readme.md1
-rw-r--r--keyboards/xiudi/xd75/keymaps/ericgebhart/rules.mk3
-rw-r--r--keyboards/xiudi/xd75/keymaps/fabian/config.h19
-rw-r--r--keyboards/xiudi/xd75/keymaps/fabian/keymap.c290
-rw-r--r--keyboards/xiudi/xd75/keymaps/fabian/rules.mk34
-rw-r--r--keyboards/xiudi/xd75/keymaps/french/config.h19
-rw-r--r--keyboards/xiudi/xd75/keymaps/french/keymap.c56
-rw-r--r--keyboards/xiudi/xd75/keymaps/french/keymap_french.c157
-rw-r--r--keyboards/xiudi/xd75/keymaps/french/readme.md20
-rw-r--r--keyboards/xiudi/xd75/keymaps/french/rules.mk17
-rw-r--r--keyboards/xiudi/xd75/keymaps/germanized/config.h117
-rw-r--r--keyboards/xiudi/xd75/keymaps/germanized/keymap.c86
-rw-r--r--keyboards/xiudi/xd75/keymaps/germanized/readme.md83
-rw-r--r--keyboards/xiudi/xd75/keymaps/germanized/rules.mk35
-rw-r--r--keyboards/xiudi/xd75/keymaps/hybrid/config.h20
-rw-r--r--keyboards/xiudi/xd75/keymaps/hybrid/keymap.c310
-rw-r--r--keyboards/xiudi/xd75/keymaps/hybrid/readme.md13
-rw-r--r--keyboards/xiudi/xd75/keymaps/hybrid/rules.mk21
-rw-r--r--keyboards/xiudi/xd75/keymaps/jarred/keymap.c37
-rw-r--r--keyboards/xiudi/xd75/keymaps/jarred/readme.md1
-rw-r--r--keyboards/xiudi/xd75/keymaps/kim-kim-xd73/config.h20
-rw-r--r--keyboards/xiudi/xd75/keymaps/kim-kim-xd73/keymap.c117
-rw-r--r--keyboards/xiudi/xd75/keymaps/kim-kim-xd73/rules.mk22
-rw-r--r--keyboards/xiudi/xd75/keymaps/kim-kim/config.h20
-rw-r--r--keyboards/xiudi/xd75/keymaps/kim-kim/keymap.c117
-rw-r--r--keyboards/xiudi/xd75/keymaps/kim-kim/rules.mk22
-rw-r--r--keyboards/xiudi/xd75/keymaps/kloki/config.h19
-rw-r--r--keyboards/xiudi/xd75/keymaps/kloki/keymap.c148
-rw-r--r--keyboards/xiudi/xd75/keymaps/kloki/readme.md7
-rw-r--r--keyboards/xiudi/xd75/keymaps/kloki/rules.mk15
-rw-r--r--keyboards/xiudi/xd75/keymaps/markus/config.h48
-rw-r--r--keyboards/xiudi/xd75/keymaps/markus/keymap.c215
-rw-r--r--keyboards/xiudi/xd75/keymaps/markus/readme.md16
-rw-r--r--keyboards/xiudi/xd75/keymaps/markus/rules.mk13
-rw-r--r--keyboards/xiudi/xd75/keymaps/msiu/config.h18
-rw-r--r--keyboards/xiudi/xd75/keymaps/msiu/keymap.c120
-rw-r--r--keyboards/xiudi/xd75/keymaps/msiu/readme.md3
-rw-r--r--keyboards/xiudi/xd75/keymaps/mtdjr/config.h22
-rw-r--r--keyboards/xiudi/xd75/keymaps/mtdjr/keymap.c37
-rw-r--r--keyboards/xiudi/xd75/keymaps/mtdjr/readme.md1
-rw-r--r--keyboards/xiudi/xd75/keymaps/mtdjr/rules.mk19
-rw-r--r--keyboards/xiudi/xd75/keymaps/neothefox/keymap.c127
-rw-r--r--keyboards/xiudi/xd75/keymaps/neothefox/readme.md1
-rw-r--r--keyboards/xiudi/xd75/keymaps/odyssey/config.h17
-rw-r--r--keyboards/xiudi/xd75/keymaps/odyssey/keymap.c241
-rw-r--r--keyboards/xiudi/xd75/keymaps/odyssey/readme.md2
-rw-r--r--keyboards/xiudi/xd75/keymaps/odyssey/rules.mk3
-rw-r--r--keyboards/xiudi/xd75/keymaps/pitty/config.h19
-rw-r--r--keyboards/xiudi/xd75/keymaps/pitty/keymap.c148
-rw-r--r--keyboards/xiudi/xd75/keymaps/pitty/readme.md3
-rw-r--r--keyboards/xiudi/xd75/keymaps/pitty/rules.mk15
-rw-r--r--keyboards/xiudi/xd75/keymaps/revok75/config.h20
-rw-r--r--keyboards/xiudi/xd75/keymaps/revok75/keymap.c90
-rw-r--r--keyboards/xiudi/xd75/keymaps/revok75/readme.md1
-rw-r--r--keyboards/xiudi/xd75/keymaps/revok75/rules.mk18
-rw-r--r--keyboards/xiudi/xd75/keymaps/scheiklp/config.h41
-rw-r--r--keyboards/xiudi/xd75/keymaps/scheiklp/keymap.c112
-rw-r--r--keyboards/xiudi/xd75/keymaps/scheiklp/readme.md9
-rw-r--r--keyboards/xiudi/xd75/keymaps/scheiklp/rules.mk6
-rw-r--r--keyboards/xiudi/xd75/keymaps/skewwhiffy/keymap.c233
-rw-r--r--keyboards/xiudi/xd75/keymaps/skewwhiffy/readme.md5
-rw-r--r--keyboards/xiudi/xd75/keymaps/skewwhiffy/rules.mk15
-rw-r--r--keyboards/xiudi/xd75/keymaps/tdl-jturner/config.h34
-rw-r--r--keyboards/xiudi/xd75/keymaps/tdl-jturner/keymap.c312
-rw-r--r--keyboards/xiudi/xd75/keymaps/tdl-jturner/readme.md12
-rw-r--r--keyboards/xiudi/xd75/keymaps/tdl-jturner/rules.mk20
-rw-r--r--keyboards/xiudi/xd75/keymaps/tomswartz07/keymap.c125
-rw-r--r--keyboards/xiudi/xd75/keymaps/via/keymap.c77
-rw-r--r--keyboards/xiudi/xd75/keymaps/via/readme.md1
-rw-r--r--keyboards/xiudi/xd75/keymaps/via/rules.mk1
-rw-r--r--keyboards/xiudi/xd75/keymaps/xo/config.h19
-rw-r--r--keyboards/xiudi/xd75/keymaps/xo/keymap.c72
-rw-r--r--keyboards/xiudi/xd75/keymaps/xo/readme.md6
-rw-r--r--keyboards/xiudi/xd75/keymaps/xo/rules.mk14
-rw-r--r--keyboards/xiudi/xd75/readme.md57
-rw-r--r--keyboards/xiudi/xd75/rules.mk24
-rw-r--r--keyboards/xiudi/xd75/xd75.c68
-rw-r--r--keyboards/xiudi/xd75/xd75.h55
159 files changed, 8683 insertions, 0 deletions
diff --git a/keyboards/xiudi/xd75/config.h b/keyboards/xiudi/xd75/config.h
new file mode 100644
index 0000000000..2958a49ebe
--- /dev/null
+++ b/keyboards/xiudi/xd75/config.h
@@ -0,0 +1,142 @@
+/*
+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 <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* USB Device descriptor parameter */
+#define VENDOR_ID 0x7844 // "XD"
+#define PRODUCT_ID 0x7575
+#define DEVICE_VER 0x0001
+#define MANUFACTURER xiudi
+#define PRODUCT XD75
+
+/* 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 { D0, D1, D2, D3, D5 }
+#define MATRIX_COL_PINS { F0, F1, E6, C7, C6, B6, D4, B1, B7, B5, B4, D7, D6, B3, B0 }
+#define UNUSED_PINS
+
+/* COL2ROW, ROW2COL */
+#define DIODE_DIRECTION COL2ROW
+
+#define BACKLIGHT_PIN F5
+#define BACKLIGHT_LEVELS 6
+#define BACKLIGHT_ON_STATE 0
+//#define BACKLIGHT_BREATHING
+
+#define RGB_DI_PIN F6
+#ifdef RGB_DI_PIN
+# define RGBLED_NUM 6
+# define RGBLIGHT_HUE_STEP 12
+# define RGBLIGHT_SAT_STEP 25
+# define RGBLIGHT_VAL_STEP 12
+//# define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
+//# define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
+/*== all animations enable ==*/
+# define RGBLIGHT_ANIMATIONS
+/*== or choose animations ==*/
+//# define RGBLIGHT_EFFECT_BREATHING
+//# define RGBLIGHT_EFFECT_RAINBOW_MOOD
+//# define RGBLIGHT_EFFECT_RAINBOW_SWIRL
+//# define RGBLIGHT_EFFECT_SNAKE
+//# define RGBLIGHT_EFFECT_KNIGHT
+//# define RGBLIGHT_EFFECT_CHRISTMAS
+//# define RGBLIGHT_EFFECT_STATIC_GRADIENT
+//# define RGBLIGHT_EFFECT_RGB_TEST
+//# define RGBLIGHT_EFFECT_ALTERNATING
+/*== customize breathing effect ==*/
+/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/
+//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64
+/*==== use exp() and sin() ====*/
+//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7
+//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255
+#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
+
+/* 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 useful 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
+
+/* disable these deprecated features by default */
+//#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/xiudi/xd75/info.json b/keyboards/xiudi/xd75/info.json
new file mode 100644
index 0000000000..66b18c500f
--- /dev/null
+++ b/keyboards/xiudi/xd75/info.json
@@ -0,0 +1,92 @@
+{
+ "keyboard_name": "XD75",
+ "url": "",
+ "maintainer": "qmk",
+ "width": 15,
+ "height": 5,
+ "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/xiudi/xd75/keymaps/4sstylz/config.h b/keyboards/xiudi/xd75/keymaps/4sstylz/config.h
new file mode 100644
index 0000000000..3049141c27
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/4sstylz/config.h
@@ -0,0 +1,31 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+// place overrides here
+
+/* Enable the space-cadet options */
+#define RSPC_KEYS KC_RSFT, KC_TRNS, KC_PGUP
+#define RCPC_KEYS KC_RCTL, KC_TRNS, KC_PGDOWN
+#define LSPO_KEYS KC_LSFT, KC_TRNS, KC_HOME
+#define LCPO_KEYS KC_LCTL, KC_TRNS, KC_END
+
+#define COMBO_COUNT 1
+#define TAPPING_TERM 175
+
+#define BACKLIGHT_BREATHING
+#undef RGBLIGHT_ANIMATIONS
diff --git a/keyboards/xiudi/xd75/keymaps/4sstylz/keycodes.h b/keyboards/xiudi/xd75/keymaps/4sstylz/keycodes.h
new file mode 100644
index 0000000000..d0460856b2
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/4sstylz/keycodes.h
@@ -0,0 +1,90 @@
+/*
+ * DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ * Version 2, December 2004
+ *
+ * Copyright (C) 2019 4sStylZ <4sstylz@protonmail.ch>
+ *
+ * Everyone is permitted to copy and distribute verbatim or modified
+ * copies of this license document, and changing it is allowed as long
+ * as the name is changed.
+ *
+ * DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ * TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+ *
+ * 0. You just DO WHAT THE FUCK YOU WANT TO.
+ */
+#include QMK_KEYBOARD_H
+
+/**
+ * Macro for selecting all the text in the document.
+ * Usual shortcut : Ctrl+A.
+ *
+ * @param keyrecord_t *record
+ *
+ * @return void
+ */
+void select_all(keyrecord_t *record) {
+ if (record->event.pressed) {
+ tap_code16(C(KC_A));
+ }
+}
+
+/**
+ * Macro for selecting the current row.
+ *
+ * @param keyrecord_t *record
+ *
+ * @return void
+ */
+void select_row(keyrecord_t *record) {
+ if (record->event.pressed) {
+ tap_code(KC_HOME);
+ tap_code16(S(KC_END));
+ }
+}
+
+/**
+ * Macro for selecting the current word.
+ * Usage : You need to have the cursor into the word or directly at the right.
+ *
+ *
+ * Usual shortcut : Ctrl+A.
+ *
+ * @param keyrecord_t *record
+ *
+ * @return void
+ */
+void select_word(keyrecord_t *record) {
+ if (record->event.pressed) {
+ register_code(KC_LCTL);
+ tap_code(KC_LEFT);
+ tap_code16(S(KC_RGHT));
+ unregister_code(KC_LCTL);
+ }
+}
+
+/**
+ * Macro for inserting two 0 with keypad.
+ * Be carefull to have the keypad lock enabled
+ *
+ * @param keyrecord_t *record
+ *
+ * @return void
+ */
+void insert_00(keyrecord_t *record) {
+ if (record->event.pressed) {
+ tap_code16(S(KC_0));
+ tap_code16(S(KC_0));
+ }
+}
+
+/**
+ * Bépo Windows lock
+ *
+ * @param keyrecord_t *record
+ *
+ * @return void
+ */
+void windows_lock(void) {
+ tap_code16(G(KC_O));
+}
diff --git a/keyboards/xiudi/xd75/keymaps/4sstylz/keymap.c b/keyboards/xiudi/xd75/keymaps/4sstylz/keymap.c
new file mode 100644
index 0000000000..497ca40a98
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/4sstylz/keymap.c
@@ -0,0 +1,186 @@
+/* Copyright 2017 Wunder
+ *
+ * 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
+#include "keycodes.h"
+#include "leds.h"
+
+// Implement Super-alt↯tab
+// See https://docs.qmk.fm/#/feature_macros?id=super-alt↯tab
+bool is_alt_tab_active = false;
+uint16_t alt_tab_timer = 0;
+bool is_screen_lock_triggered = false;
+uint16_t screen_lock_timer = 0;
+
+// Defining all the custom keycodes.
+enum custom_keycodes {
+ ALT_TAB = SAFE_RANGE,
+ KC_00 ,
+ SLC_ROW,
+ SLC_ALL,
+ SLC_WRD
+};
+
+enum combo_events {
+ SCR_LCK
+};
+
+const uint16_t PROGMEM lock_combo[] = {KC_J, KC_K, KC_L, KC_SCLN, COMBO_END};
+combo_t key_combos[COMBO_COUNT] = {COMBO(lock_combo, SCR_LCK)};
+
+// Layer shorthand
+#define _QW 0
+#define _FN 1
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* QWERTY
+ * ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐
+ * │` Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ Del │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │PrtScn│
+ * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
+ * │ Tab │ Q │ W │ E │ R │ T │ Bksp │ Y │ U │ I │ O │ P │ [ │ ] │ Home │
+ * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
+ * │ FN │ A │ S │ D │ F │ G │Enter │ H │ J │ K │ L │ ; │ ' │ # │ End │
+ * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
+ * │ Shft │ Z │ X │ C │ V │ B │ALTTAB│ N │ M │ , │ . │ / │ Shft │ FN │ PgUp │
+ * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
+ * │ Ctrl │ Gui │ Alt │ Back │ Frwd │Space │ App │Space │ Left │ Up │ Down │ Right│ Alt │ Ctrl │ PgDn │
+ * └──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘
+ */
+
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+ KC_GESC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_DEL , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_MINUS, KC_EQUAL, KC_PSCR,
+ KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_BSPC, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC , KC_RBRC , KC_HOME,
+ MO(_FN), KC_A , KC_S , KC_D , KC_F , KC_G , KC_ENT , KC_H , KC_J , KC_K , KC_L , KC_SCLN , KC_QUOT , KC_NUHS , KC_END ,
+ KC_LSFT, KC_Z , KC_X , KC_C , KC_V , KC_B , ALT_TAB, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH , KC_RSFT , MO(_FN) , KC_PGUP,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_WBAK, KC_WFWD, KC_SPC, KC_APP , KC_SPC, KC_LEFT, KC_UP , KC_DOWN, KC_RIGHT, KC_RALT , KC_RCTL , KC_PGDN
+ ),
+
+/* FUNCTION
+ * NB :  My OS  layout (Bépo) don't have direct access to numbers, so that's why I use « LSFT » mod for the keypad.
+ * You need to remove LSFT(KC) for using this layout with Qwerty. Also the use of KC_8, 7, and V are some specific Bépo
+ * things.
+ * ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐
+ * │Alt F4│ F1 │ F2 │ F3 │ F4 │ F5 │BL Tog│ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ # Lk │
+ * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
+ * │ │ │SltAll│SltRow│SltRow│ Brt+ │BL Stp│ │ │ KP 7 │ KP 8 │ KP 9 │ 8 │ │ │
+ * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
+ * │ │ │ Cut │ Copy │Paste │ Brt- │BL Brt│ │ │ KP 4 │ KP 5 │ KP 6 │ 7 │ │Reset │
+ * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
+ * │ │ │ Mute │ Vol- │ Vol+ │ Play │Ld Tog│ │ │ KP 1 │ KP 2 │ KP 3 │Enter │ │ │
+ * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
+ * │ │ │ │ │ │ │Ld M+ │ │ │ KP 0 │KC 00 │ V │ │ │ │
+ * └──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘
+ */
+
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ LALT(KC_F4), KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , BL_TOGG, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 , KC_F12 , KC_NLCK,
+ _______ , _______, SLC_ALL , SLC_ROW , SLC_WRD , KC_BRIU, BL_STEP, _______, _______, LSFT(KC_7) , LSFT(KC_8) , LSFT(KC_9), KC_8 , _______, _______,
+ _______ , _______, LSFT(KC_DEL), LCTL(KC_INS), LSFT(KC_INS), KC_BRID, BL_BRTG, _______, _______, LSFT(KC_4) , LSFT(KC_5) , LSFT(KC_6), KC_7 , _______, RESET ,
+ _______ , _______, KC_MUTE , KC_VOLD , KC_VOLU , KC_MPLY, RGB_TOG, _______, _______, LSFT(KC_1) , LSFT(KC_2) , LSFT(KC_3), KC_ENT , _______, _______,
+ _______ , _______, _______ , _______ , _______ , _______, RGB_MOD, _______, _______, LSFT(KC_0) , KC_00 , KC_V , _______ , _______, _______
+ )
+};
+
+// Processing all the key pressed.
+// Alt+tab.
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+
+ // Depending keycodes…
+ switch (keycode) { // This will do most of the grunt work with the keycodes.
+ case ALT_TAB:
+ if (record->event.pressed) {
+ if (!is_alt_tab_active) {
+ is_alt_tab_active = true;
+ gp100_led_on();
+ register_code(KC_LALT);
+ }
+ alt_tab_timer = timer_read();
+ register_code(KC_TAB);
+ } else {
+ unregister_code(KC_TAB);
+ }
+ break;
+ case KC_00:
+ insert_00(record);
+ break;
+ case SLC_ALL:
+ select_all(record);
+ break;
+ case SLC_ROW:
+ select_row(record);
+ break;
+ case SLC_WRD:
+ select_word(record);
+ break;
+ }
+ return true;
+}
+
+void process_combo_event(uint16_t combo_index, bool pressed) {
+ switch(combo_index) {
+ case SCR_LCK:
+ if (pressed) {
+ /*if (!is_screen_lock_triggered) {*/
+ is_screen_lock_triggered = true;
+ gp103_led_on();
+ windows_lock();
+ /*}*/
+ screen_lock_timer = timer_read();
+ }
+ break;
+ }
+}
+
+void matrix_scan_user(void) { // The very important timer.
+ if (is_alt_tab_active) {
+ if (timer_elapsed(alt_tab_timer) > 750) {
+ unregister_code(KC_LALT);
+ gp100_led_off();
+ is_alt_tab_active = false;
+ }
+ }
+ if (is_screen_lock_triggered) {
+ if (timer_elapsed(screen_lock_timer) > 750) {
+ gp103_led_off();
+ is_screen_lock_triggered = false;
+ }
+ }
+}
+
+void led_set_user(uint8_t usb_led) {
+ if (IS_LAYER_ON(_FN)) {
+ capslock_led_on();
+ } else {
+ capslock_led_off();
+ }
+}
+
+void keyboard_post_init_user (void) {
+ setDefaultDisplay();
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ switch (get_highest_layer(state)) {
+ case _FN:
+ setFNDisplay();
+ break;
+
+ default: // for any other layers, or the default layer
+ setDefaultDisplay();
+ break;
+ }
+ return state;
+}
diff --git a/keyboards/xiudi/xd75/keymaps/4sstylz/leds.h b/keyboards/xiudi/xd75/keymaps/4sstylz/leds.h
new file mode 100644
index 0000000000..a5ad863b0a
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/4sstylz/leds.h
@@ -0,0 +1,46 @@
+/*
+ * DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ * Version 2, December 2004
+ *
+ * Copyright (C) 2019 4sStylZ <4sstylz@protonmail.ch>
+ *
+ * Everyone is permitted to copy and distribute verbatim or modified
+ * copies of this license document, and changing it is allowed as long
+ * as the name is changed.
+ *
+ * DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ * TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+ *
+ * 0. You just DO WHAT THE FUCK YOU WANT TO.
+ */
+#include QMK_KEYBOARD_H
+
+void setDefaultDisplay(void) {
+ _delay_ms(10);
+ rgblight_setrgb_at(180, 35, 0, 0);
+ _delay_ms(10);
+ rgblight_setrgb_at(200, 35, 0, 1);
+ _delay_ms(10);
+ rgblight_setrgb_at(220, 35, 0, 2);
+ _delay_ms(10);
+ rgblight_setrgb_at(220, 35, 0, 3);
+ _delay_ms(10);
+ rgblight_setrgb_at(200, 35, 0, 4);
+ _delay_ms(10);
+ rgblight_setrgb_at(180, 35, 0, 5);
+}
+
+void setFNDisplay(void) {
+ _delay_ms(10);
+ rgblight_setrgb_at(145, 45, 0, 0);
+ _delay_ms(10);
+ rgblight_setrgb_at(160, 45, 0, 1);
+ _delay_ms(10);
+ rgblight_setrgb_at(175, 45, 0, 2);
+ _delay_ms(10);
+ rgblight_setrgb_at(190, 45, 0, 3);
+ _delay_ms(10);
+ rgblight_setrgb_at(205, 45, 0, 4);
+ _delay_ms(10);
+ rgblight_setrgb_at(220, 45, 0, 5);
+}
diff --git a/keyboards/xiudi/xd75/keymaps/4sstylz/readme.md b/keyboards/xiudi/xd75/keymaps/4sstylz/readme.md
new file mode 100644
index 0000000000..31efa071fc
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/4sstylz/readme.md
@@ -0,0 +1,4 @@
+# Personal keymap of 4sStylZ
+
+* Similar to a Typematrix 2030 layout,
+* 3 leds on the GP001, GP003 and Capslock led
diff --git a/keyboards/xiudi/xd75/keymaps/4sstylz/rules.mk b/keyboards/xiudi/xd75/keymaps/4sstylz/rules.mk
new file mode 100644
index 0000000000..45ff7b8e8d
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/4sstylz/rules.mk
@@ -0,0 +1,30 @@
+# Copyright 2013 Jun Wako <wakojun@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+COMBO_ENABLE = yes # Enable combo for special function when using multiple keys at once.
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
+
+BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # Console for debug
+COMMAND_ENABLE = no # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+MIDI_ENABLE = no # MIDI support
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/xiudi/xd75/keymaps/adi/config.h b/keyboards/xiudi/xd75/keymaps/adi/config.h
new file mode 100644
index 0000000000..08bed9ccb9
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/adi/config.h
@@ -0,0 +1,20 @@
+/* Copyright 2017 REPLACE_WITH_YOUR_NAME
+ *
+ * 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
+
+// Disable backlight
+#undef BACKLIGHT_ENABLE
diff --git a/keyboards/xiudi/xd75/keymaps/adi/keymap.c b/keyboards/xiudi/xd75/keymaps/adi/keymap.c
new file mode 100644
index 0000000000..aa45d598e3
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/adi/keymap.c
@@ -0,0 +1,199 @@
+/* Copyright 2017 REPLACE_WITH_YOUR_NAME
+ *
+ * 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
+
+// Fillers to make layering more clear
+#define ___T___ KC_TRNS
+
+// Layer shorthand
+#define _QW 0
+#define _LW 1
+#define _RS 2
+#define _FN 3
+#define _ENTFN 4
+#define _MEDIA 5
+#define _MOUSE 6
+
+#define M_BACK 0
+#define M_FWRD 1
+#define M_PTAB 2
+#define M_NTAB 3
+#define M_ZOUT 4
+#define M_ZOIN 5
+#define M_ENTR 6
+#define M_SCRN 7
+#define M_NSPC 8
+#define M_PSPC 9
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+ KC_GRAVE,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_BSPC, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_INSERT,
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT(_MOUSE, KC_SCLN), LT(_MEDIA, KC_QUOT), LT(_ENTFN, KC_ENT), LT(_ENTFN, 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, MO(_FN), KC_LALT, KC_LGUI, MO(_LW), KC_SPC, KC_SPC, MO(_RS), LT(_ENTFN, KC_ENT), KC_RGUI, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+/* LOWERED
+ */
+
+ [_LW] = LAYOUT_ortho_5x15( /* LOWERED */
+ _______, 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_DEL, KC_DEL,
+ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, KC_PGUP, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
+ ),
+
+/* RAISED
+ */
+
+ [_RS] = LAYOUT_ortho_5x15( /* RAISED */
+ _______, 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_DEL, KC_DEL,
+ _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, KC_PGUP, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
+ ),
+
+/* FUNCTION
+ */
+
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ 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_DEL, KC_DEL,
+ KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR,
+ KC_CAPS, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, _______, _______,
+ RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, ___T___, ___T___, KC_PGUP, KC_WH_D,
+ _______ , _______, AG_SWAP, AG_NORM, _______, KC_BTN1, KC_BTN1, _______, AG_NORM, AG_SWAP, _______, _______, KC_HOME, KC_PGDN, KC_END
+ ),
+
+ [_ENTFN] = LAYOUT_ortho_5x15( /* Enter FN */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, M(M_PTAB), M(M_NTAB), M(M_PSPC), M(M_NSPC), _______, _______, _______, _______, M(M_ZOUT), M(M_ZOIN), _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, _______, _______,
+ _______, M(M_BACK), M(M_FWRD), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______ , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_MEDIA] = LAYOUT_ortho_5x15( /* Media */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_SLCK, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_VOLU, _______, _______, _______, _______, _______, KC_MRWD, KC_MPLY, KC_MFFD, _______, _______, _______, _______, _______,
+ _______, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_MOUSE] = LAYOUT_ortho_5x15( /* Mouse */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_BTN1, KC_BTN2, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ // MACRODOWN only works in this function
+ keyevent_t event = record->event;
+
+ if (!eeconfig_is_enabled()) {
+ eeconfig_init();
+ }
+ bool use_cmd = true; // Use, for example, Cmd-Tab, Cmd-C, Cmd-V, etc.
+ // Compare to MAGIC_SWAP_ALT_GUI and MAGIC_UNSWAP_ALT_GUI configs, set in:
+ // quantum/quantum.c
+ if(keymap_config.swap_lalt_lgui == 1 && keymap_config.swap_ralt_rgui == 1) {
+ use_cmd = false; // ... or, Alt-Tab, Ctrl-C, Ctrl-V, etc.
+ }
+ switch(id) {
+ case M_BACK:
+ /* Command + [ or previous page */
+ if (use_cmd) {
+ return (event.pressed ? MACRO( D(LGUI), T(LBRC), U(LGUI), END ) : MACRO(END));
+ } else {
+ return (event.pressed ? MACRO( D(LALT), T(LEFT), U(LALT), END ) : MACRO(END));
+ }
+ case M_FWRD:
+ /* Command + ] or next page */
+ if (use_cmd) {
+ return (event.pressed ? MACRO( D(LGUI), T(RBRC), U(LGUI), END ) : MACRO(END));
+ } else {
+ return (event.pressed ? MACRO( D(LALT), T(RIGHT), U(LALT), END ) : MACRO(END));
+ }
+ case M_PTAB:
+ /* Command + { or prev tab. */
+ if (use_cmd) {
+ return (event.pressed ? MACRO( D(LGUI), D(RSFT), T(LBRC), U(RSFT), U(LGUI), END ) : MACRO(END));
+ } else {
+ return (event.pressed ? MACRO( D(LCTRL), D(RSFT), T(TAB), U(RSFT), U(LCTRL), END ) : MACRO(END));
+ }
+ case M_NTAB:
+ /* Command + } or next tab*/
+ if (use_cmd) {
+ return (event.pressed ? MACRO( D(LGUI), D(RSFT), T(RBRC), U(RSFT), U(LGUI), END ) : MACRO(END));
+ } else {
+ return (event.pressed ? MACRO( D(LCTRL), T(TAB), U(LCTRL), END ) : MACRO(END));
+ }
+ case M_ZOUT:
+ /* Command + - or Ctrl + -*/
+ if (use_cmd) {
+ return (event.pressed ? MACRO( D(LGUI), T(MINS), U(LGUI), END ) : MACRO(END));
+ } else {
+ return (event.pressed ? MACRO( D(LCTRL), T(MINS), U(LCTRL), END ) : MACRO(END));
+ }
+ break;
+ case M_ZOIN:
+ /* Command + = or Ctrl + =*/
+ if (use_cmd) {
+ return (event.pressed ? MACRO( D(LGUI), T(EQL), U(LGUI), END ) : MACRO(END));
+ } else {
+ return (event.pressed ? MACRO( D(LCTRL), T(EQL), U(LCTRL), END ) : MACRO(END));
+ }
+ break;
+ case M_ENTR:
+ /* Command + Enter or Ctrl + Enter*/
+ if (use_cmd) {
+ return (event.pressed ? MACRO( D(LGUI), T(ENT), U(LGUI), END ) : MACRO(END));
+ } else {
+ return (event.pressed ? MACRO( D(LCTRL), T(ENT), U(LCTRL), END ) : MACRO(END));
+ }
+ case M_SCRN:
+ /* Command + Enter or Ctrl + Enter*/
+ if (use_cmd) {
+ return (event.pressed ? MACRO( D(LGUI), D(LCTRL), D(LSFT), T(4), U(LSFT), U(LGUI), U(LCTRL), END ) : MACRO(END));
+ } else {
+ return (event.pressed ? MACRO( T(PSCR) ) : MACRO(END));
+ }
+ case M_NSPC:
+ /* Next space / desktop */
+ if (use_cmd) {
+ return (event.pressed ? MACRO( D(LCTRL), T(RIGHT), U(LCTRL), END ) : MACRO(END));
+ } else {
+ return (event.pressed ? MACRO( D(LGUI), T(RIGHT), U(LGUI), END ) : MACRO(END));
+ }
+ break;
+ case M_PSPC:
+ /* Previous space / desktop */
+ if (use_cmd) {
+ return (event.pressed ? MACRO( D(LCTRL), T(LEFT), U(LCTRL), END ) : MACRO(END));
+ } else {
+ return (event.pressed ? MACRO( D(LGUI), T(LEFT), U(LGUI), END ) : MACRO(END));
+ }
+ default:
+ break;
+ }
+ return MACRO_NONE;
+};
diff --git a/keyboards/xiudi/xd75/keymaps/adi/readme.md b/keyboards/xiudi/xd75/keymaps/adi/readme.md
new file mode 100644
index 0000000000..0d481fa535
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/adi/readme.md
@@ -0,0 +1,21 @@
+# Adi's XD75re Keymap
+
+This is my own (@adiron) keymap. It was originally made for the Planck. Since then a modified layout has expanded to encompass the XD75re as well, which I mostly use.
+
+Below is a summary of the important functions in the keymap. For more, consult the keymap file.
+
+## Multi-use keys
+
+Enter (thumb key) - HJKL become left, down, up, right (VIM movement keys). Q and W become previous and next tab, E and R switch spaces in macOS, A and Z go back and and forward in the browser.
+
+Semicolon - VIM movement keys become mouse. U left click. I right click.
+
+Quote key - JKL are back, pause/play and forward. AZ are volume up and down, Q and W are brightness down and up.
+
+## Misc
+
+Lower + Quote - a Hebrew maqaf (־) in macOS
+
+## AG swap
+
+Macros refer to AG_SWAP to check whether to send the macOS or the Windows shortcut. Very useful to me since I alternate between the two.
diff --git a/keyboards/xiudi/xd75/keymaps/adi/rules.mk b/keyboards/xiudi/xd75/keymaps/adi/rules.mk
new file mode 100644
index 0000000000..a0c4fc9678
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/adi/rules.mk
@@ -0,0 +1,16 @@
+# Copyright 2013 Jun Wako <wakojun@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+BACKLIGHT_ENABLE = no
diff --git a/keyboards/xiudi/xd75/keymaps/arpinfidel/config.h b/keyboards/xiudi/xd75/keymaps/arpinfidel/config.h
new file mode 100644
index 0000000000..24caea2152
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/arpinfidel/config.h
@@ -0,0 +1,27 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+// place overrides here
+#define TAPPING_TOGGLE 2
+
+#define MOUSEKEY_DELAY 0
+#define MOUSEKEY_MAX_SPEED 4
+#define MOUSEKEY_TIME_TO_MAX 5
+
+#define MOUSEKEY_WHEEL_MAX_SPEED 1
+#define MOUSEKEY_WHEEL_TIME_TO_MAX 50
diff --git a/keyboards/xiudi/xd75/keymaps/arpinfidel/keymap.c b/keyboards/xiudi/xd75/keymaps/arpinfidel/keymap.c
new file mode 100644
index 0000000000..5f7337d68b
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/arpinfidel/keymap.c
@@ -0,0 +1,114 @@
+/* Copyright 2017 Wunder
+ *
+ * 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
+
+// Layer shorthand
+#define _QW 0
+#define _FN 1
+
+enum my_kc {
+ A_BL_TG = SAFE_RANGE
+ // , A_BL_Y
+ // , A_BL_N
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* QWERTY
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | 1 | 2 | 3 | 4 | 5 | - | ` | = | 6 | 7 | 8 | 9 | 0 | BSPC |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | Q | W | E | R | T | [ | ] | \ | Y | U | I | O | P | ' |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | CAP LK | A | S | D | F | G | UP | DEL | DOWN | H | J | K | L | ; | ENTER |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | HOME | PG UP | END | N | M | , | . | / | RSHIFT |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LCTRL | FN | LGUI | LALT | SPACE | SPACE | FN | PG DN | FN | BSPC | BSPC | RALT | RGUI | FN | 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_RBRC, KC_BSLS, 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_UP , KC_DEL , KC_DOWN, 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_HOME, KC_PGUP, KC_END , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT,
+ KC_LCTL, TT(_FN), KC_LGUI, KC_LALT, KC_SPC , KC_SPC , TT(_FN), KC_PGDN, TT(_FN), KC_BSPC, KC_BSPC, KC_RALT, KC_RGUI, TT(_FN), KC_RCTL
+ ),
+
+/* FUNCTION
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | F6 | | | | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | MS W U | | MS 2 | MS UP | MS 1 | MS 3 | RGB HD | | RGB HI | [ | ] | UP | | = | \ |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | MS W D | | MS L | MS DN | MS R | | RGB SD | | RGB SI | - | LEFT | DOWN | RIGHT | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | RGB VD | BL TG | RGB VI | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | FN | RGB TG | | MS W L | MS W R | | RESET | | MS 1 | MS 2 | RGB RMD| RGB MD | FN | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, RGB_HUD, _______, RGB_HUI, KC_F7, KC_F8, KC_F9, KC_F10 , KC_F11 , KC_F12,
+ KC_WH_U, _______, KC_BTN2, KC_MS_U, KC_BTN1, KC_BTN3, RGB_SAD, _______, RGB_SAI, KC_LBRC, KC_RBRC, KC_UP , _______ , KC_EQL , KC_BSLS,
+ KC_WH_D, _______, KC_MS_L, KC_MS_D, KC_MS_R, _______, RGB_VAD, _______, RGB_VAI, KC_MINS, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______,
+ _______, _______, _______, _______, _______, _______, RGB_RMOD,A_BL_TG, RGB_MOD, _______, _______, _______, _______ , _______, _______,
+ _______, TT(_FN), RGB_TOG, _______, KC_WH_L, KC_WH_R, TT(_FN), RESET , TT(_FN), KC_BTN1, KC_BTN2, _______, _______ , TT(_FN), _______
+ )
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case A_BL_TG:
+ if (record->event.pressed) {
+ // toggle keycaps leds (f5 pin)
+ PORTF ^= (1 << 5);
+ }
+ return false;
+
+ // case A_BL_Y:
+ // if (record->event.pressed) {
+ // keycaps_led_on();
+ // }
+ // return false;
+
+ // case A_BL_N:
+ // if (record->event.pressed) {
+ // keycaps_led_off();
+ // }
+ // return false;
+
+ default:
+ return true;
+ }
+}
+
+// Runs whenever there is a layer state change.
+layer_state_t layer_state_set_user(layer_state_t state) {
+ uint8_t layer = biton32(state);
+
+ gp100_led_off();
+ gp103_led_off();
+
+ // turns on gp100 (top left led) for odd layers
+ if (layer & (1<<0)) gp100_led_on();
+ // turns on gp103 (top mid led) for layers 2, 6, ...
+ if (layer & (1<<1)) gp103_led_on();
+
+ return state;
+}
diff --git a/keyboards/xiudi/xd75/keymaps/arpinfidel/readme.md b/keyboards/xiudi/xd75/keymaps/arpinfidel/readme.md
new file mode 100644
index 0000000000..033049dd91
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/arpinfidel/readme.md
@@ -0,0 +1,35 @@
+# ArpinFidel's layout for xd75
+
+```
+QWERTY
+.--------------------------------------------------------------------------------------------------------------------------------------.
+| ESC | 1 | 2 | 3 | 4 | 5 | - | ` | = | 6 | 7 | 8 | 9 | 0 | BSPC |
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+| TAB | Q | W | E | R | T | [ | ] | \ | Y | U | I | O | P | ' |
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+| CAP LK | A | S | D | F | G | UP | DEL | DOWN | H | J | K | L | ; | ENTER |
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+| LSHIFT | Z | X | C | V | B | HOME | PG UP | END | N | M | , | . | / | RSHIFT |
+|--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+| LCTRL | FN | LGUI | LALT | SPACE | SPACE | FN | PG DN | FN | BSPC | BSPC | RALT | RGUI | FN | RCTRL |
+'--------------------------------------------------------------------------------------------------------------------------------------'
+
+FUNCTION
+.--------------------------------------------------------------------------------------------------------------------------------------.
+| F1 | F2 | F3 | F4 | F5 | F6 | | | | F7 | F8 | F9 | F10 | F11 | F12 |
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+| MS W U | | MS 2 | MS UP | MS 1 | MS 3 | RGB HD | | RGB HI | [ | ] | UP | | = | \ |
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+| MS W D | | MS L | MS DN | MS R | | RGB SD | | RGB SI | - | LEFT | DOWN | RIGHT | | |
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+| | | | | | | RGB VD | BL TG | RGB VI | | | | | | |
+|--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+| | FN | RGB TG | | MS W L | MS W R | | RESET | | MS 1 | MS 2 | RGB RMD| RGB MD | FN | |
+'--------------------------------------------------------------------------------------------------------------------------------------'
+```
+
+special keys in the middle. hold fn for momentary switch, double tap for toggle. mouse control, arrow keys, led control, and special keys on fn layer.
+
+TODO :
+- backlight brightness
+- dynamic macros \ No newline at end of file
diff --git a/keyboards/xiudi/xd75/keymaps/arpinfidel/rules.mk b/keyboards/xiudi/xd75/keymaps/arpinfidel/rules.mk
new file mode 100644
index 0000000000..5130423e47
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/arpinfidel/rules.mk
@@ -0,0 +1,16 @@
+# Copyright 2013 Jun Wako <wakojun@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
diff --git a/keyboards/xiudi/xd75/keymaps/atomic_style/config.h b/keyboards/xiudi/xd75/keymaps/atomic_style/config.h
new file mode 100644
index 0000000000..a72596783d
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/atomic_style/config.h
@@ -0,0 +1,19 @@
+/* Copyright 2017 REPLACE_WITH_YOUR_NAME
+ *
+ * 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/xiudi/xd75/keymaps/atomic_style/keymap.c b/keyboards/xiudi/xd75/keymaps/atomic_style/keymap.c
new file mode 100644
index 0000000000..9bd1e58a05
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/atomic_style/keymap.c
@@ -0,0 +1,180 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// Fillers to make layering more clear
+#define ___T___ KC_TRNS
+
+// Layer shorthand
+#define _QW 0
+#define _CM 1
+#define _DV 2
+#define _LW 3
+#define _RS 4
+#define _FN 5
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* QWERTY - MIT ENHANCED / GRID COMPATIBLE
+ * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
+ * | ESC | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN |
+ * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
+ KC_ESC, 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,
+ M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+/* COLEMAK - MIT ENHANCED / GRID COMPATIBLE
+ * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | Q | W | F | P | G | J | L | U | Y | ; | [ | ] | \ | DEL |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
+ * | ESC | A | R | S | T | D | H | N | E | I | O | ' | XXXXXX . ENTER | PG UP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN |
+ * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_CM] = LAYOUT_ortho_5x15( /* COLEMAK */
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
+ KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN,
+ M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+/* DVORAK - MIT ENHANCED / GRID COMPATIBLE
+ * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | ' | , | . | P | Y | F | G | C | R | L | [ | ] | \ | DEL |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
+ * | ESC | A | O | E | U | I | D | H | T | N | S | / | XXXXXX . ENTER | PG UP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
+ * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | XXXXXX . RSHIFT | UP | PG DN |
+ * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_DV] = LAYOUT_ortho_5x15( /* DVORAK */
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
+ KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_ENT, KC_ENT, KC_PGUP,
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN,
+ M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+/* LOWERED
+ * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | | INS |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | XXXXXX . | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | XXXXXX . | | |
+ * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | | | XXXXXX . | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_LW] = LAYOUT_ortho_5x15( /* LOWERED */
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___,
+ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+/* RAISED
+ * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | | INS |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | XXXXXX . | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | XXXXXX . | | |
+ * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | | | XXXXXX . | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_RS] = LAYOUT_ortho_5x15( /* RAISED */
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___,
+ _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+/* FUNCTION
+ * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
+ * | NUM LK | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | SCR LK | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | PAUSE | PR SCR |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
+ * | CAP LK | MS BT5 | MS BT4 | MS BT3 | MS BT2 | SLOW M | FAST M | NEXT | VOL+ | VOL- | PLAY | | XXXXXX . | WHEEL+ |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
+ * | RGB TG | RGB MD | RGB HI | RGB HD | RGB SI | RGB SD | RGB VI | RGB VD | BL TOG | BL INC | BL DEC | XXXXXX . | MOUS U | WHEEL- |
+ * |--------+--------+--------+--------+--------+-- 2u -----------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | RESET | | QWERTY | COLEMK | DVORAK | XXXXXX . MS BT1 | | | | | | MOUS L | MOUS D | MOUS R |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___,
+ KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR,
+ KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U,
+ RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, ___T___, ___T___, KC_MS_U, KC_WH_D,
+ RESET , _______, DF(_QW), DF(_CM), DF(_DV), KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R
+ )
+};
+
+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);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
diff --git a/keyboards/xiudi/xd75/keymaps/atomic_style/readme.md b/keyboards/xiudi/xd75/keymaps/atomic_style/readme.md
new file mode 100644
index 0000000000..d53c0f34a8
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/atomic_style/readme.md
@@ -0,0 +1 @@
+# The default keymap for xd75
diff --git a/keyboards/xiudi/xd75/keymaps/atomic_style/rules.mk b/keyboards/xiudi/xd75/keymaps/atomic_style/rules.mk
new file mode 100644
index 0000000000..52a8f38d45
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/atomic_style/rules.mk
@@ -0,0 +1,15 @@
+# Copyright 2013 Jun Wako <wakojun@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
diff --git a/keyboards/xiudi/xd75/keymaps/atomic_style_jp/keymap.c b/keyboards/xiudi/xd75/keymaps/atomic_style_jp/keymap.c
new file mode 100644
index 0000000000..6084a1cbe6
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/atomic_style_jp/keymap.c
@@ -0,0 +1,81 @@
+/* Copyright 2017 Wunder
+ *
+ * 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/>.
+ *
+ */
+
+
+ // 2019/03/04 takashiski
+ // NORTICE
+ // This layout is for Japanese Keyboard User.
+ // So there are logicalparing symbols and special keycode like a KC_RO, KC_HENK, KC_MHEN, KC_JYEN.
+ // 日本語キーボードとして認識させて使うことが前提なので、記号位置が英語キーボードとは異なります。
+ // また、日本語キーボードでないと認識されない特殊なキーコードが含まれています。
+
+#include QMK_KEYBOARD_H
+
+
+// Layer shorthand
+enum LAYER{
+ _QW,
+ _EASY_QW,
+ _CURSOR,
+ _RS,
+ _LW
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ //qwerty layer(almost use default)
+ [_QW] = LAYOUT(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_JYEN, KC_BSPC,
+ 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_ENT, 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_BSLS, KC_ENT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, LT(_LW,KC_TAB), KC_SPC, LT(_CURSOR,KC_ENT), LT(_RS,KC_BSPC), KC_HENK, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ //4th row shifted 1u from regular ortholinear.
+ [_EASY_QW] = LAYOUT(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_JYEN, KC_BSPC,
+ 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_ENT, 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_BSLS, KC_ENT, KC_ENT,
+ KC_LSFT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_UP, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, LT(_LW,KC_TAB), KC_SPC, LT(_CURSOR,KC_ENT), LT(_RS,KC_BSPC), KC_HENK, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+//LOWER
+ [_LW] = LAYOUT(
+ KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_PSCR,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, KC_INS ,
+ KC_CAPS, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSLS, _______, _______, _______,
+ KC_LSFT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_SLCK,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END
+ ),
+
+//RAISE
+ [_RS] = LAYOUT(
+ KC_NLCK, 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_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR,
+ KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, _______, _______, _______,
+ RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, _______,KC_WH_U, KC_MS_U, KC_WH_D,
+ RESET , DF(_QW), DF(_EASY_QW), _______, _______, KC_BTN1, KC_BTN2, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R
+ ),
+ [_CURSOR] = LAYOUT(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_JYEN, KC_BSPC,
+ 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_ENT, KC_DEL,
+ KC_CAPS, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_G, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, LT(_LW,KC_TAB), KC_SPC, KC_ENT, LT(_RS,KC_BSPC), KC_HENK, KC_RALT, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+)
+
+};
diff --git a/keyboards/xiudi/xd75/keymaps/atomic_style_jp/readme.md b/keyboards/xiudi/xd75/keymaps/atomic_style_jp/readme.md
new file mode 100644
index 0000000000..7164f5c6b7
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/atomic_style_jp/readme.md
@@ -0,0 +1,4 @@
+# atomic style jp
+
+This layout is based Standard Japanese Layout and atomic style layout.
+
diff --git a/keyboards/xiudi/xd75/keymaps/bbaserdem/config.h b/keyboards/xiudi/xd75/keymaps/bbaserdem/config.h
new file mode 100644
index 0000000000..271f48d001
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/bbaserdem/config.h
@@ -0,0 +1,3 @@
+#pragma once
+
+// place overrides here
diff --git a/keyboards/xiudi/xd75/keymaps/bbaserdem/keymap.c b/keyboards/xiudi/xd75/keymaps/bbaserdem/keymap.c
new file mode 100644
index 0000000000..6f8576b09b
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/bbaserdem/keymap.c
@@ -0,0 +1,21 @@
+#include QMK_KEYBOARD_H
+#include "bbaserdem.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Layout
+ * ,-----------------------------------------------------------.
+ * |Blt|Lck| ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = |
+ * |---+---+-----------------------------------------------+---|
+ * |Int|Trm| |Cps|
+ * |---+---| |---|
+ * |Clc|Psw| | \ |
+ * |---+---| PLANCK |---|
+ * |Rev|Ffw| | [ |
+ * |---+---| |---|
+ * |Tog|Mut| | ] |
+ * `-----------------------------------------------------------'
+ */
+[0] = KM( FKLAVYE ),
+[1] = KM( AYARLAR ),
+};
+
diff --git a/keyboards/xiudi/xd75/keymaps/bbaserdem/readme.md b/keyboards/xiudi/xd75/keymaps/bbaserdem/readme.md
new file mode 100644
index 0000000000..f96c8ea976
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/bbaserdem/readme.md
@@ -0,0 +1,14 @@
+# XD75RE Setup
+
+(WIP) F keyboard for turkish, using unicode.
+
+* Write down keymap in userspace
+* Figure out LED indicators
+
+# Make
+
+Take the board into reset mode, then
+```
+make xd75:bbaserdem:dfu
+```
+Either sudo it or set permissions in udev.
diff --git a/keyboards/xiudi/xd75/keymaps/bbaserdem/rules.mk b/keyboards/xiudi/xd75/keymaps/bbaserdem/rules.mk
new file mode 100644
index 0000000000..3e501cd00e
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/bbaserdem/rules.mk
@@ -0,0 +1,7 @@
+# Build options
+BACKLIGHT_ENABLE = yes # Switch LEDs
+MOUSEKEY_ENABLE = yes # Emulates mouse key using keypresses
+RGBLIGHT_ENABLE = no # LED strips
+TAP_DANCE_ENABLE = no # Use multi-tap features
+AUDIO_ENABLE = no # Audio stuff
+
diff --git a/keyboards/xiudi/xd75/keymaps/billypython/config.h b/keyboards/xiudi/xd75/keymaps/billypython/config.h
new file mode 100644
index 0000000000..36e6b67851
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/billypython/config.h
@@ -0,0 +1,14 @@
+#pragma once
+
+#define FORCE_NKRO
+
+#define MOUSEKEY_DELAY 50
+#define MOUSEKEY_INTERVAL 15
+#define MOUSEKEY_MAX_SPEED 4
+#define MOUSEKEY_TIME_TO_MAX 50
+#define MOUSEKEY_WHEEL_MAX_SPEED 1
+#define MOUSEKEY_WHEEL_TIME_TO_MAX 50
+
+#define PERMISSIVE_HOLD
+#define TAPPING_TERM 200
+#define TAPPING_TOGGLE 2
diff --git a/keyboards/xiudi/xd75/keymaps/billypython/keymap.c b/keyboards/xiudi/xd75/keymaps/billypython/keymap.c
new file mode 100644
index 0000000000..8a06074ca5
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/billypython/keymap.c
@@ -0,0 +1,119 @@
+#include QMK_KEYBOARD_H
+
+#define TOP LCTL(KC_HOME)
+#define BOTTOM LCTL(KC_END)
+
+#define FN MO(L_FN)
+#define FN_CAPS LT(L_FN, KC_CAPS)
+#define FN_FNLK TT(L_FN)
+
+#define COMMA UC(0x002C)
+#define L_PAREN UC(0x0028)
+#define R_PAREN UC(0x0029)
+#define EQUALS UC(0x003D)
+#define TIMES UC(0x00D7)
+#define DIVIDE UC(0x00F7)
+#define MINUS UC(0x2212)
+
+void eeconfig_init_user(void) {
+ set_unicode_input_mode(UC_LNX);
+}
+
+enum layers {
+ L_BASE,
+ L_FN,
+ L_NUMPAD,
+};
+
+enum custom_keycodes {
+ CLEAR = SAFE_RANGE,
+ NUMPAD,
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case CLEAR:
+ if (record->event.pressed) {
+ SEND_STRING(SS_LCTRL("a") SS_TAP(X_DELETE));
+ }
+ return false;
+
+ case NUMPAD:
+ if (record->event.pressed) {
+ layer_invert(L_NUMPAD);
+ bool num_lock = host_keyboard_leds() & 1<<USB_LED_NUM_LOCK;
+ if (num_lock != (bool)IS_LAYER_ON(L_NUMPAD)) {
+ tap_code(KC_NLCK); // Toggle Num Lock to match layer state.
+ }
+ }
+ return false;
+
+ default:
+ return true;
+ }
+}
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Base layer
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │Tab│ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bsp│Del│
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │FnC│ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │Ent│Ent│PgU│
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │LSf│ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RSf│RSf│ ↑ │PgD│
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │LCt│LGu│LAl│Spc│Spc│Spc│Spc│Spc│Spc│RAl│FnL│RCt│ ← │ ↓ │ → │
+ * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
+ */
+ [L_BASE] = 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, \
+ FN_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, FN_FNLK, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \
+ ),
+
+ /* Base layer
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Num│Scr│
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │M4 │M2 │M↑ │M1 │M3 │M5 │ │PgU│ ↑ │PgD│Ply│Prv│Nxt│Clr│Ins│
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │ │M← │M↓ │M→ │MW↑│ │Hom│ ← │ ↓ │ → │End│ │ │ │Top│
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │ │MA0│MA2│MW←│MW→│ │ │ │VoD│VoU│Mut│ │ │PgU│Btm│
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │ │ │ │MW↓│MW↓│MW↓│ │ │ │ │ │App│Hom│PgD│End│
+ * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
+ */
+ [L_FN] = LAYOUT_ortho_5x15( \
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, NUMPAD, KC_PSCR, \
+ KC_BTN4, KC_BTN2, KC_MS_U, KC_BTN1, KC_BTN3, KC_BTN5, _______, KC_PGUP, KC_UP, KC_PGDN, KC_MPLY, KC_MPRV, KC_MNXT, CLEAR, KC_INS, \
+ _______, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_U, _______, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, _______, _______, _______, TOP, \
+ _______, KC_ACL0, KC_ACL2, KC_WH_L, KC_WH_R, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, KC_PGUP, BOTTOM, \
+ _______, _______, _______, KC_WH_D, KC_WH_D, KC_WH_D, _______, _______, _______, _______, _______, KC_APP, KC_HOME, KC_PGDN, KC_END \
+ ),
+
+ /* Numpad layer
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │Num│ │ │ │ │ │ │P7 │P8 │P9 │P- │ − │ = │Num│ │
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │ │ │ │ │ │ │ │P4 │P5 │P6 │P+ │ ( │ ) │ │ │
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │ │ │ │ │ │ │ │P1 │P2 │P3 │P* │ × │PEn│PEn│ │
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │ │ │ │ │ │ │ │P0 │ , │P. │P/ │ ÷ │ │ │ │
+ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┘
+ */
+ [L_NUMPAD] = LAYOUT_ortho_5x15( \
+ NUMPAD, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, MINUS, EQUALS, NUMPAD, _______, \
+ _______, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, L_PAREN, R_PAREN, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PAST, TIMES, KC_PENT, KC_PENT, _______, \
+ _______, _______, _______, _______, _______, _______, _______, KC_P0, COMMA, KC_PDOT, KC_PSLS, DIVIDE, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ ),
+};
diff --git a/keyboards/xiudi/xd75/keymaps/billypython/rules.mk b/keyboards/xiudi/xd75/keymaps/billypython/rules.mk
new file mode 100644
index 0000000000..a4fd56ac18
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/billypython/rules.mk
@@ -0,0 +1,15 @@
+AUDIO_ENABLE = no
+BACKLIGHT_ENABLE = no
+BLUETOOTH_ENABLE = no
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+COMMAND_ENABLE = yes
+CONSOLE_ENABLE = yes
+EXTRAKEY_ENABLE = yes
+MIDI_ENABLE = no
+MOUSEKEY_ENABLE = yes
+NKRO_ENABLE = yes
+RGBLIGHT_ENABLE = no
+SLEEP_LED_ENABLE = no
+TAP_DANCE_ENABLE = no
+UNICODE_ENABLE = yes
+VISUALIZER_ENABLE = no
diff --git a/keyboards/xiudi/xd75/keymaps/boy_314/config.h b/keyboards/xiudi/xd75/keymaps/boy_314/config.h
new file mode 100644
index 0000000000..7b9637ef9c
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/boy_314/config.h
@@ -0,0 +1 @@
+#pragma once \ No newline at end of file
diff --git a/keyboards/xiudi/xd75/keymaps/boy_314/keymap.c b/keyboards/xiudi/xd75/keymaps/boy_314/keymap.c
new file mode 100644
index 0000000000..89d6569ddc
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/boy_314/keymap.c
@@ -0,0 +1,141 @@
+#include QMK_KEYBOARD_H
+
+// Layer shorthand
+#define _DV 0
+#define _QW 1
+#define _NP 2
+#define _FN1 3
+#define _FN2 4
+
+#define RGBLIGHT_LIGHT_VAL 255
+const uint8_t RGBLED_RAINBOW_SWIRL_INTERVALS[] PROGMEM = {10, 10, 10};
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* DVORAK
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | 1 | 2 | 3 | 4 | 5 | - | ` | = | 6 | 7 | 8 | 9 | 0 | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | ' | . | . | P | Y | [ | UP | ] | F | G | C | R | L | / |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | CAP LK | A | O | E | U | I | LEFT | DOWN | RIGHT | D | H | T | N | S | ENTER |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | ; | Q | J | K | X | PG DN | UP | PG UP | M | W | W | V | Z | RSHIFT |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LCTRL | DEL | LALT | WIN | FN1 | SPACE | LEFT | DOWN | RIGHT | SPACE | FN2 | LEFT | DOWN | UP | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_DV] = LAYOUT_ortho_5x15( /* DVORAK */
+ 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_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_LBRC, KC_UP, KC_RBRC, KC_F, KC_G, KC_C, KC_R, KC_L, KC_SLSH,
+ LCTL_T(KC_CAPS), KC_A, KC_O, KC_E, KC_U, KC_I, KC_LEFT, KC_DOWN, KC_RGHT, KC_D, KC_H, KC_T, KC_N, KC_S, KC_ENT,
+ KC_LSPO, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_PGDN, KC_UP, KC_PGUP, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSPC,
+ KC_LCTL, KC_DEL, KC_LALT, KC_LGUI, MO(_FN1),KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, MO(_FN2),KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
+ ),
+
+/* QWERTY
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | 1 | 2 | 3 | 4 | 5 | - | ` | = | 6 | 7 | 8 | 9 | 0 | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | Q | W | E | R | T | [ | \ | ] | Y | U | I | O | P | ENTER |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | CAP LK | A | S | D | F | G | HOME | DEL | PG UP | H | J | K | L | ; | ' |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | END | UP | PG DN | N | M | , | . | / | RSHIFT |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LCTRL | DEL | LALT | WIN | FN1 | SPACE | LEFT | DOWN | RIGHT | SPACE | FN2 | LEFT | DOWN | UP | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_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_ENT,
+ 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_QUOT,
+ KC_LSPO, 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_RSPC,
+ KC_LCTL, KC_DEL, KC_LALT, KC_LGUI, MO(_FN1),KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, MO(_FN2),KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
+ ),
+
+/* NUMPAD
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | | | | | | / | * | - | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | 7 | 8 | 9 | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | 4 | 5 | 6 | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | 1 | 2 | 3 | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | 0 | + | . | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_NP] = LAYOUT_ortho_5x15( /* NUMPAD */
+ _______, _______, _______, _______, _______, _______, KC_SLSH, KC_ASTR, KC_MINS, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, KC_0, KC_PLUS, KC_DOT, _______, _______, _______, _______, _______, _______
+ ),
+
+/* FUNCTION1
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ` | ! | @ | # | $ | % | | | | ^ | & | * | ( | ) | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | ~ | ! | @ | # | $ | % | RESET |RGB HUE-|RGB HUE+| ^ | & | * | ( | ) | DEL |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | DEL | F1 | F2 | F3 | F4 | F5 | F6 |RGB SAT-|RGB SAT+| DVORAK | _ | + | { | } | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 |BRIGHT- |BRIGHT+ | QWERTY | | | HOME | END | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | |RGB MODE|RGB MODE| | | PREV | VOL UP |VOL DOWN| NEXT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_FN1] = LAYOUT_ortho_5x15( /* FUNCTION1 */
+ KC_GRV , KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, RESET, RGB_HUD, RGB_HUI, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
+ KC_DEL, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, RGB_SAD, RGB_SAI, TO(_DV), KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RGB_VAD, RGB_VAI, TO(_QW), _______, _______, KC_HOME, KC_END, _______,
+ _______, _______, _______, _______, _______, _______, _______,RGB_RMOD, RGB_MOD, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+ ),
+
+
+/* FUNCTION2
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | ` | | | UP | | | RESET |RGB HUE-|RGB HUE+| NUMPAD | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | DEL | | LEFT | DOWN | RIGHT | | |RGB SAT-|RGB SAT+| DVORAK | - | = | [ | ] | \ |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | |BRIGHT- |BRIGHT+ | QWERTY | | | PAGE UP| PAGE DN| |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | |RGB MODE|RGB MODE| | | PREV | VOL UP |VOL DOWN| NEXT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_FN2] = LAYOUT_ortho_5x15( /* FUNCTION2 */
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_GRV, _______, _______, KC_UP, _______, _______, RESET, RGB_HUD, RGB_HUI, TG(_NP), _______, _______, _______, _______, KC_DEL,
+ KC_DEL, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, RGB_SAD, RGB_SAI, TG(_DV), KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, TG(_QW), _______, _______, KC_PGDN, KC_PGUP, _______,
+ _______, _______, _______, _______, _______, _______, _______,RGB_RMOD, RGB_MOD, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+ )
+};
+
+void matrix_init_user(void) {
+ if (!(host_keyboard_leds() & (1<<USB_LED_NUM_LOCK))) {
+ register_code(KC_NUMLOCK);
+ unregister_code(KC_NUMLOCK);
+ }
+}
+
+void led_set_user(uint8_t usb_led) {
+ if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
+ rgblight_mode(18);
+ } else {
+ rgblight_mode(14);
+ }
+}
diff --git a/keyboards/xiudi/xd75/keymaps/boy_314/readme.md b/keyboards/xiudi/xd75/keymaps/boy_314/readme.md
new file mode 100644
index 0000000000..4008aff1c3
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/boy_314/readme.md
@@ -0,0 +1,8 @@
+# Boy_314's XD75RE Layout
+- Default is DVORAK, FN+N to switch to QWERTY, FN+H to switch to DVORAK (N and H on QWERTY layout)
+- Features many symbols and function keys in secondary layers.
+- Dedicated bracket and braces keys on bottom right 4 keys, useful for programming
+- RGB underglow changes to a fast cycle mode when CAPS LOCK is activated
+- NOTE: WORK IN PROGRESS
+# THINGS TO DO
+- add numpad toggle layer \ No newline at end of file
diff --git a/keyboards/xiudi/xd75/keymaps/boy_314/rules.mk b/keyboards/xiudi/xd75/keymaps/boy_314/rules.mk
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/boy_314/rules.mk
diff --git a/keyboards/xiudi/xd75/keymaps/bramver/config.h b/keyboards/xiudi/xd75/keymaps/bramver/config.h
new file mode 100644
index 0000000000..2264af74c2
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/bramver/config.h
@@ -0,0 +1,25 @@
+/* Copyright 2018 darm
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#define MOUSEKEY_DELAY 0
+#define MOUSEKEY_INTERVAL 16
+#define MOUSEKEY_MAX_SPEED 7
+#define MOUSEKEY_TIME_TO_MAX 60
+#define MOUSEKEY_WHEEL_MAX_SPEED 8
+#define MOUSEKEY_WHEEL_TIME_TO_MAX 40
+#define MOUSEKEY_WHEEL_DELAY 0
diff --git a/keyboards/xiudi/xd75/keymaps/bramver/keymap.c b/keyboards/xiudi/xd75/keymaps/bramver/keymap.c
new file mode 100644
index 0000000000..7cbb0bae82
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/bramver/keymap.c
@@ -0,0 +1,109 @@
+/* Copyright 2018 darm
+ *
+ * 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
+
+// Layer shorthand
+#define _BASE 0
+#define _LOWER 1
+#define _LINVERT 2
+#define _RAISE 3
+#define _EMOJIFY 4
+
+enum emoji_map {
+ UNAM, // unamused 😒
+ HEYE, // smiling face with heart shaped eyes 😍
+ OK, // ok hand sign 👌
+ SMIR, // smirk 😏
+ PRAY, // pray 🙏
+ CELE, // celebration 🙌
+ COOL, // smile with sunglasses 😎
+ EYES, // eyes
+ THNK, // BIG THONK
+ NAIL, // Nailcare 💅
+};
+
+const uint32_t PROGMEM unicode_map[] = {
+ [UNAM] = 0x1F612,
+ [HEYE] = 0x1f60d,
+ [OK] = 0x1F44C,
+ [SMIR] = 0x1F60F,
+ [PRAY] = 0x1F64F,
+ [CELE] = 0x1F64C,
+ [COOL] = 0x1F60E,
+ [EYES] = 0x1F440,
+ [THNK] = 0x1F914,
+ [NAIL] = 0x1F485,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [_BASE] = LAYOUT_ortho_5x15(
+ KC_GESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_MPRV , KC_MPLY , KC_MNXT , 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_MINS , KC_EQL , KC_BSLS , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_ENT ,
+ MO(3) , KC_A , KC_S , KC_D , KC_F , KC_G , KC_LBRC , KC_MUTE , KC_RBRC , 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_HOME , KC_SLEP , KC_END , KC_N , KC_M , KC_COMM , KC_DOT , KC_SLSH , KC_RSFT,
+ KC_LCTL , MO(4) , KC_LALT , KC_LGUI , KC_SPC , KC_SPC , MO(1) , KC_DEL , MO(2) , KC_SPC , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT , KC_RGUI,
+ ),
+
+ [_LOWER] = LAYOUT_ortho_5x15(
+ _______ , _______ , _______ , _______ , _______ , _______ , BL_TOGG , BL_DEC , BL_INC , _______ , _______ , _______ , _______ , _______ , _______,
+ _______ , KC_WH_L , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_WH_U , BL_STEP , RGB_TOG , RGB_MOD , _______ , _______ , _______ , _______ , _______ , _______,
+ _______ , KC_WH_R , KC_MS_L , KC_MS_D , KC_MS_R , KC_WH_D , RGB_HUI , RGB_HUD , RGB_SAI , _______ , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT , _______,
+ _______ , _______ , _______ , _______ , _______ , _______ , RGB_SAD , RGB_VAI , RGB_VAD , _______ , _______ , _______ , _______ , _______ , _______,
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______,
+ ),
+
+ [_LINVERT] = LAYOUT_ortho_5x15(
+ _______ , _______ , _______ , _______ , _______ , _______ , BL_TOGG , BL_DEC , BL_INC , _______ , _______ , _______ , _______ , _______ , _______,
+ _______ , _______ , _______ , _______ , _______ , _______ , BL_STEP , RGB_TOG , RGB_MOD , KC_WH_U , KC_BTN1 , KC_MS_U , KC_BTN2 , KC_WH_L , _______,
+ _______ , KC_LEFT , KC_DOWN , KC_UP , KC_RGHT , _______ , RGB_SAI , RGB_HUI , RGB_HUD , KC_WH_D , KC_MS_L , KC_MS_D , KC_MS_R , KC_WH_R , _______,
+ _______ , _______ , _______ , _______ , _______ , _______ , RGB_SAD , RGB_VAI , RGB_VAD , _______ , _______ , _______ , _______ , _______ , _______,
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
+ ),
+
+ [_RAISE] = LAYOUT_ortho_5x15(
+ 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_7 , KC_8 , KC_9 , _______ , _______ , _______ , _______ , _______ , KC_MUTE , KC_VOLD , KC_VOLU , _______ , _______,
+ _______ , _______ , KC_4 , KC_5 , KC_6 , _______ , _______ , _______ , _______ , _______ , KC_MPRV , KC_MPLY , KC_MNXT , _______ , _______,
+ _______ , _______ , KC_1 , KC_2 , KC_3 , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______,
+ _______ , _______ , _______ , KC_0 , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
+ ),
+
+ [_EMOJIFY] = LAYOUT_ortho_5x15(
+ TO(0) , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , RESET ,
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______,
+ _______ , X(CELE) , X(PRAY) , X(NAIL) , X(OK) , X(THNK) , _______ , _______ , _______ , X(UNAM) , X(HEYE) , X(COOL) , X(EYES) , X(SMIR) , _______,
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______,
+ _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______ , _______
+ )
+
+};
+
+void matrix_init_user(void) {
+ _delay_ms(20); // Gets rid of tick
+ set_unicode_input_mode(UC_LNX);
+}
+
+/* Template for future layers
+ [_LAYER_NAME] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
+*/
diff --git a/keyboards/xiudi/xd75/keymaps/bramver/readme.md b/keyboards/xiudi/xd75/keymaps/bramver/readme.md
new file mode 100644
index 0000000000..2dcac5f0e3
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/bramver/readme.md
@@ -0,0 +1,43 @@
+# XD75 Layout
+
+Standard qwerty layout.
+Limited emoji support and proper mouse settings.
+
+## Keymap
+
+```
+_BASE
+ | GESC | 1 | 2 | 3 | 4 | 5 | MPRV | MPLY | MNXT | 6 | 7 | 8 | 9 | 0 | BSPC |
+ | TAB | Q | W | E | R | T | MINS | EQL | BSLS | Y | U | I | O | P | ENT |
+ | MO(3) | A | S | D | F | G | LBRC | MUTE | RBRC | H | J | K | L | SCLN | QUOT |
+ | LSFT | Z | X | C | V | B | HOME | SLEP | END | N | M | COMM | DOT | SLSH | RSFT |
+ | LCTL | MO(4) | LALT | LGUI | SPC | SPC | MO(1) | DEL | MO(2) | SPC | LEFT | DOWN | UP | RGHT | RGUI |
+
+_LOWER
+ | _______ | _______ | _______ | _______ | _______ | _______ | BL_TOGG | BL_DEC | BL_INC | _______ | _______ | _______ | _______ | _______ | _______ |
+ | _______ | WH_L | BTN1 | MS_U | BTN2 | WH_U | BL_STEP | RGB_TOG | RGB_MOD | _______ | _______ | _______ | _______ | _______ | _______ |
+ | _______ | WH_R | MS_L | MS_D | MS_R | WH_D | RGB_HUI | RGB_HUD | RGB_SAI | _______ | LEFT | DOWN | UP | RGHT | _______ |
+ | _______ | _______ | _______ | _______ | _______ | _______ | RGB_SAD | RGB_VAI | RGB_VAD | _______ | _______ | _______ | _______ | _______ | _______ |
+ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ |
+
+_LINVERT
+ | _______ | _______ | _______ | _______ | _______ | _______ | BL_TOGG | BL_DEC | BL_INC | _______ | _______ | _______ | _______ | _______ | _______ |
+ | _______ | _______ | _______ | _______ | _______ | _______ | BL_STEP | RGB_TOG | RGB_MOD | WH_U | BTN1 | MS_U | BTN2 | WH_L | _______ |
+ | _______ | LEFT | DOWN | UP | RGHT | _______ | RGB_SAI | RGB_HUI | RGB_HUD | WH_D | MS_L | MS_D | MS_R | WH_R | _______ |
+ | _______ | _______ | _______ | _______ | _______ | _______ | RGB_SAD | RGB_VAI | RGB_VAD | _______ | _______ | _______ | _______ | _______ | _______ |
+ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ |
+
+_RAISE
+ | F1 | F2 | F3 | F4 | F5 | F6 | _______ | _______ | _______ | F7 | F8 | F9 | F10 | F11 | F12 |
+ | _______ | _______ | 7 | 8 | 9 | _______ | _______ | _______ | _______ | _______ | MUTE | VOLD | VOLU | _______ | _______ |
+ | _______ | _______ | 4 | 5 | 6 | _______ | _______ | _______ | _______ | _______ | MPRV | MPLY | MNXT | _______ | _______ |
+ | _______ | _______ | 1 | 2 | 3 | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ |
+ | _______ | _______ | _______ | 0 | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ |
+
+_EMOJIFY
+ | TO(0) | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | RESET |
+ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ |
+ | _______ | X(CELE) | X(PRAY) | X(NAIL) | X(OK) | X(THNK) | _______ | _______ | _______ | X(UNAM) | X(HEYE) | X(COOL) | X(EYES) | X(SMIR) | _______ |
+ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ |
+ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ | _______ |
+``` \ No newline at end of file
diff --git a/keyboards/xiudi/xd75/keymaps/bramver/rules.mk b/keyboards/xiudi/xd75/keymaps/bramver/rules.mk
new file mode 100644
index 0000000000..1c3d4d8cd0
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/bramver/rules.mk
@@ -0,0 +1,7 @@
+# Build options
+BACKLIGHT_ENABLE = yes # Switch LEDs
+MOUSEKEY_ENABLE = yes # Emulates mouse key using keypresses
+RGBLIGHT_ENABLE = yes # LED strips
+EXTRAKEY_ENABLE = yes # Use system and audio control key codes
+TAP_DANCE_ENABLE = no # Use multi-tap features
+UNICODEMAP_ENABLE = yes # Emojify me pls
diff --git a/keyboards/xiudi/xd75/keymaps/bulbizarre/config.h b/keyboards/xiudi/xd75/keymaps/bulbizarre/config.h
new file mode 100644
index 0000000000..e6975da8a2
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/bulbizarre/config.h
@@ -0,0 +1,19 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+// place overrides here
diff --git a/keyboards/xiudi/xd75/keymaps/bulbizarre/keymap.c b/keyboards/xiudi/xd75/keymaps/bulbizarre/keymap.c
new file mode 100644
index 0000000000..f35eea73c4
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/bulbizarre/keymap.c
@@ -0,0 +1,152 @@
+/* Copyright 2017 Wunder
+ *
+ * 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
+
+
+// Layer shorthand
+#define _QW 0
+#define _FN 1
+#define _FS 2
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+ SWITCH_FN = SAFE_RANGE,
+ SWITCH_FS
+};
+
+uint16_t lt12_timer;
+
+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 | [ | ] | ENTER | DEL |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | CAP LK | A | S | D | F | G | H | J | K | L | : | @ | ~ | ENTER | HOME |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | B | N | M | , | . | / | RSHIFT | UP | END |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LCTRL | DEL | LALT | PSCR | SPACE | SPACE | SPACE | SPACE | ALTGR | FN | FX | RCTRL | LEFT | DOWN | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+ KC_ESC, KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
+ 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_ENT, 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_NUHS, KC_ENT, KC_HOME,
+ KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_END,
+ KC_LCTL, KC_DEL, KC_LALT, KC_PSCR, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_ALGR, SWITCH_FN, SWITCH_FS, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+/* FUNCTION
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | = | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | ENTER | DEL |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | CAP LK | A | S | D | F | G | H | J | K | L | : | @ | ~ | ENTER | HOME |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | B | N | M | , | . | / | RSHIFT | UP | END |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LCTRL | DEL | LALT | PSCR | SPACE | SPACE | SPACE | SPACE | ALTGR | FN | FX | RCTRL | LEFT | DOWN | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_EQL, KC_BSPC,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(_QW), TO(_FS), _______, _______, _______, _______
+ ),
+
+/* FUNCTIONS
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | RGB+ | BL_BRT | F3 | F4 | F5 | F6 | F7 | F8 | F9 | / | * | - | + | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | RGB_H+ | RGB- | BL- | E | R | T | Y | U | I | O | 7 | 8 | 9 | ENTER | DEL |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | RGB_H- | RGB_M+ | BL+ | VOL+ | F | G | H | J | K | L | 4 | 5 | 6 | ENTER | RESET |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | RGB_S+ | RGB_M- | BL_S | VOL- | V | B | B | N | M | , | 1 | 2 | 3 | UP | END |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | RGB_S- | RGB_T | BL_T | MUTE | SPACE | SPACE | SPACE | SPACE | ALTGR | FN | FX | 0 | . | . | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_FS] = LAYOUT_ortho_5x15( /* FUNCTION */
+ _______, RGB_VAI, BL_BRTG, _______, _______, _______, _______, _______, _______, _______, KC_PSLS, KC_PAST, KC_PMNS, KC_PPLS, _______,
+ RGB_HUI, RGB_VAD, BL_INC, _______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______,
+ RGB_HUD, RGB_RMOD,BL_DEC, KC_VOLU, _______, _______, _______, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, RESET,
+ RGB_SAI, RGB_MOD, BL_STEP, KC_VOLD, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______,
+ RGB_SAD, RGB_TOG, BL_TOGG, KC_MUTE, _______, _______, _______, _______, _______, TO(_FN), TO(_QW), KC_P0, KC_PDOT, KC_DOT, _______
+ )
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case SWITCH_FN:
+ if (record->event.pressed) {
+ lt12_timer = timer_read();
+ layer_on(_FN);
+ gp100_led_on();
+ } else {
+ if (timer_elapsed(lt12_timer) > 200) {
+ layer_off(_FN);
+ gp100_led_off();
+ }
+ }
+ return false;
+ break;
+ case SWITCH_FS:
+ if (record->event.pressed) {
+ lt12_timer = timer_read();
+ layer_on(_FS);
+ gp100_led_on();
+ } else {
+ if (timer_elapsed(lt12_timer) > 200) {
+ layer_off(_FS);
+ gp100_led_off();
+ }
+ }
+ return false;
+ break;
+ }
+ return true;
+}
+
+void matrix_init_user(void) {
+
+}
+
+void matrix_scan_user(void) {
+
+}
+
+void led_set_user(uint8_t usb_led) {
+ if (IS_LED_ON(usb_led, USB_LED_CAPS_LOCK)) {
+ capslock_led_on();
+ } else {
+ capslock_led_off();
+ }
+ if (IS_LAYER_ON(_FN) || IS_LAYER_ON(_FS)) {
+ gp100_led_on();
+ } else {
+ gp100_led_off();
+ }
+}
diff --git a/keyboards/xiudi/xd75/keymaps/bulbizarre/readme.md b/keyboards/xiudi/xd75/keymaps/bulbizarre/readme.md
new file mode 100644
index 0000000000..87ee9d7055
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/bulbizarre/readme.md
@@ -0,0 +1,4 @@
+# Bulbizarre keymap
+
+Modified full layout, F-key layer, numpad and function layer.
+Uses backlight, RGB underglow, and tap or hold layer switching keys.
diff --git a/keyboards/xiudi/xd75/keymaps/bulbizarre/rules.mk b/keyboards/xiudi/xd75/keymaps/bulbizarre/rules.mk
new file mode 100644
index 0000000000..e20fde4ed0
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/bulbizarre/rules.mk
@@ -0,0 +1,16 @@
+# Copyright 2013 Jun Wako <wakojun@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+BACKLIGHT_ENABLE = yes
diff --git a/keyboards/xiudi/xd75/keymaps/buzzlighter1/config.h b/keyboards/xiudi/xd75/keymaps/buzzlighter1/config.h
new file mode 100644
index 0000000000..84f050577c
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/buzzlighter1/config.h
@@ -0,0 +1,5 @@
+
+#pragma once
+
+#define FORCE_NKRO
+#define RGBLIGHT_SLEEP
diff --git a/keyboards/xiudi/xd75/keymaps/buzzlighter1/keymap.c b/keyboards/xiudi/xd75/keymaps/buzzlighter1/keymap.c
new file mode 100644
index 0000000000..09eea933e1
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/buzzlighter1/keymap.c
@@ -0,0 +1,113 @@
+#include QMK_KEYBOARD_H
+
+// Layer shorthand
+#define _QW 0
+#define _FN 1
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+ QMKBEST = SAFE_RANGE,
+ QMKURL
+};
+
+#define FN_CAPS LT(_FN, KC_CAPS)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* QWERTY
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | GESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Del | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Mute |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | FN(CPS)| A | S | D | F | G | H | J | K | L | ; | ' | Vol- | Vol+ | ENTER |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | Home | PGUP | UP | PGDWN |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LCTRL | Del | ENTER | LALT | SPACE | End | LEFT | DOWN | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+ KC_GESC, 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_DEL, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_MUTE,
+ FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_VOLD, KC_VOLU, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_HOME, KC_PGUP, KC_UP, KC_PGDN,
+ KC_LCTL, KC_MPRV, KC_MNXT, KC_LALT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, KC_END, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+/* FUNCTION
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | XXXXXXX| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | _______| _______|
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | _______| P7 | P8 | P9 | + | P* | XXXXXXX| PR SCR | SCR LK | PAUSE | XXXXXXX| BL_DEC | BL_INC | RGB HD | RGB HI |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | _______| P4 | P5 | P6 | NumLk | CALC | XXXXXXX| POWER | XXXXXXX| RESET | XXXXXXX| BL_BRTG| BL_STEP| RGB SD | RGB SI |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | _______| P1 | P2 | P3 | - | P/ | XXXXXXX| OS | PLAY | PREV | NXT | BL_OFF | BL_ON | RGB VD | RGB VI |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | _______| P0 | P. | PENT | SPACE | BL_TOGG| RGB TG | RGB RMD| RGB MD |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ XXXXXXX, 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_P7, KC_P8, KC_P9, KC_PPLS, KC_PAST, XXXXXXX, KC_SLCK, KC_PAUS, XXXXXXX, XXXXXXX, BL_DEC, BL_INC, RGB_HUD, RGB_HUI,
+ _______, KC_P4, KC_P5, KC_P6, KC_NLCK, KC_CALC, XXXXXXX, KC_PWR, XXXXXXX, RESET, XXXXXXX, BL_BRTG, BL_STEP, RGB_SAD, RGB_SAI,
+ _______, KC_P1, KC_P2, KC_P3, KC_PMNS, KC_PSLS, XXXXXXX, KC_LWIN, KC_MPLY, KC_MPRV, KC_MNXT, BL_OFF, BL_ON, RGB_VAD, RGB_VAI,
+ _______, KC_P0, KC_PDOT, KC_PENT, XXXXXXX, XXXXXXX, XXXXXXX, KC_SPC, XXXXXXX, XXXXXXX, XXXXXXX, BL_TOGG, RGB_TOG, RGB_RMOD,RGB_MOD
+ )
+};
+
+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;
+}
+
+void matrix_init_user(void) {
+
+}
+
+void matrix_scan_user(void) {
+
+}
+
+void led_set_user(uint8_t usb_led) {
+ if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
+ capslock_led_on();
+ } else {
+ capslock_led_off();
+ }
+}
+
+// Runs whenever there is a layer state change.
+layer_state_t layer_state_set_user(layer_state_t state) {
+ uint8_t layer = get_highest_layer(state);
+
+ gp100_led_off();
+ //gp103_led_off();
+
+ // turns on gp100 (top left led) for odd layers
+ if (layer & (1<<0)) gp100_led_on();
+ // turns on gp103 (top mid led) for layers 2, 6, ...
+ //if (layer & (1<<1)) gp103_led_on();
+
+ return state;
+}
diff --git a/keyboards/xiudi/xd75/keymaps/buzzlighter1/readme.md b/keyboards/xiudi/xd75/keymaps/buzzlighter1/readme.md
new file mode 100644
index 0000000000..947acca101
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/buzzlighter1/readme.md
@@ -0,0 +1,54 @@
+# XD75 with 7U spacebar for EN-RU gamers
+ * Standard QWERTY made for gamers with a Russian alternative input.
+ * The keys for extra letters in RU alphabet are where they are expected.
+ * Full 2x4 nav cluster.
+ * Volume/mute control are on base layer, Win key is on function layer.
+ * FN_CAPS provides fast F-keys access while gaming. Lefthanded Numpad operation.
+ * NKRO is on (forced).
+
+## Layout
+```c
+/* QWERTY
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | GESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Del | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | Mute |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | FN(CPS)| A | S | D | F | G | H | J | K | L | ; | ' | Vol- | Vol+ | ENTER |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | Home | PGUP | UP | PGDWN |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LCTRL | Del | ENTER | LALT | SPACE | End | LEFT | DOWN | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+```
+```c
+/* FUNCTION
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | XXXXXXX| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | _______| _______|
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | _______| P7 | P8 | P9 | + | P* | XXXXXXX| PR SCR | SCR LK | PAUSE | XXXXXXX| BL_DEC | BL_INC | RGB HD | RGB HI |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | _______| P4 | P5 | P6 | NumLk | CALC | XXXXXXX| POWER | XXXXXXX| RESET | XXXXXXX| BL_BRTG| BL_STEP| RGB SD | RGB SI |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | _______| P1 | P2 | P3 | - | P/ | XXXXXXX| OS | PLAY | PREV | NXT | BL_OFF | BL_ON | RGB VD | RGB VI |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | _______| P0 | P. | PENT | SPACE | BL_TOGG| RGB TG | RGB RMD| RGB MD |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+```
+## LEDs
+Top left LED - Function layer active.
+Mid left LED - CapsLock active.
+
+## Compile
+
+go to qmk top directory.
+```
+$ cd qmk_firmware
+```
+
+build
+```
+$ make xd75:buzzlighter1
+``` \ No newline at end of file
diff --git a/keyboards/xiudi/xd75/keymaps/buzzlighter1/rules.mk b/keyboards/xiudi/xd75/keymaps/buzzlighter1/rules.mk
new file mode 100644
index 0000000000..d018ebecfa
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/buzzlighter1/rules.mk
@@ -0,0 +1,4 @@
+
+BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
+BACKLIGHT_ENABLE = yes
+RGBLIGHT_ENABLE = no
diff --git a/keyboards/xiudi/xd75/keymaps/c4software_bepo/config.h b/keyboards/xiudi/xd75/keymaps/c4software_bepo/config.h
new file mode 100644
index 0000000000..6605bbf93f
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/c4software_bepo/config.h
@@ -0,0 +1,19 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+
+# pragma once
+
+// place overrides here
diff --git a/keyboards/xiudi/xd75/keymaps/c4software_bepo/keymap.c b/keyboards/xiudi/xd75/keymaps/c4software_bepo/keymap.c
new file mode 100644
index 0000000000..fdfe3be16d
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/c4software_bepo/keymap.c
@@ -0,0 +1,68 @@
+/* Copyright 2017 Valentin Brosseau
+ *
+ * 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
+#include "keymap_bepo.h"
+
+// Layer shorthand
+#define _BP 0
+#define _FN 1
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Native BepoDev for compatible computer
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | " | < | > | ( | ) | % | VOL- | VOL+ | @ | + | - | / | * | = |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | B | E_ACUT | P | O | $ | E_GRAV | DEL | E_CIRC | V | D | L | J | Z | C_CEDIL|
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | RALT | A | U | I | E | , | BACKSP | ENTER | C | T | S | R | N | M | W |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | A_GRAV | Y | X | . | K | BACKSP | ENTER | ’ | Q | G | H | F | UP | RSHIFT |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LALT | LCTRL | FN | LGUI | SPACE | SPACE | RALT | RALT | SPACE | SPACE | RGUI | FN | LEFT | DOWN | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_BP] = LAYOUT_ortho_5x15( /* BepoDev */
+ KC_ESC, BP_DQUO, BP_LDAQ, BP_RDAQ, BP_LPRN, BP_RPRN, BP_PERC, KC_VOLD, KC_VOLU, BP_AT, BP_PLUS, BP_MINS, BP_SLSH, BP_ASTR, BP_EQL,
+ KC_TAB, BP_B, BP_EACU, BP_P, BP_O, BP_DLR, BP_EGRV, KC_DEL, BP_DCIR, BP_V, BP_D, BP_L, BP_J, BP_Z, BP_CCED,
+ KC_RALT, BP_A, BP_U, BP_I, BP_E, BP_COMM, KC_BSPC, KC_ENT, BP_C, BP_T, BP_S, BP_R, BP_N, BP_M, BP_W,
+ KC_LSFT, BP_AGRV, BP_Y, BP_X, BP_DOT, BP_K, KC_BSPC, KC_ENT, BP_QUOT, BP_Q, BP_G, BP_H, BP_F, KC_UP, KC_RSFT,
+ KC_LALT, KC_LCTL, MO(_FN), KC_LGUI, KC_SPC, KC_SPC, KC_RALT, KC_RALT, KC_SPC, KC_SPC, KC_RGUI, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+/* FUNCTION
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | P/ | P* | F9 | F10 | F11 | F12 |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | P7 | P8 | P9 | - | RGB_TOG| RGB_MOD| RGB_HUI|
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | PREV | PLAY | NEXT | STOP | | | | P4 | P5 | P6 | + | RGB_SAI| RGB_SAD| RGB_VAI|
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | VOL- | MUTE | VOL+ | | | | | P1 | P2 | P3 | ENT | RGB_VAD| Home | RGB_HUD|
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | RESET | | FN | | | | | | P0 | P0 | . | FN | | End | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_SLSH, KC_ASTR, KC_F9, KC_F10, KC_F11, KC_F12,
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_P7, KC_P8, KC_P9, KC_MINS, RGB_TOG, RGB_MOD, RGB_HUI,
+ KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, KC_TRNS, KC_TRNS, KC_TRNS, KC_P4, KC_P5, KC_P6, KC_PLUS, RGB_SAI, RGB_SAD, RGB_VAI,
+ KC_TRNS, KC_VOLD, KC_MUTE, KC_VOLU, KC_APP, KC_TRNS, KC_TRNS, KC_TRNS, KC_P1, KC_P2, KC_P3, KC_ENT, RGB_VAD, KC_HOME, RGB_HUD,
+ RESET, KC_TRNS, MO(_FN), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_KP_0, KC_KP_0, KC_PDOT, MO(_FN), KC_TRNS, KC_END, KC_TRNS
+ )
+};
diff --git a/keyboards/xiudi/xd75/keymaps/c4software_bepo/readme.md b/keyboards/xiudi/xd75/keymaps/c4software_bepo/readme.md
new file mode 100644
index 0000000000..b95130a31b
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/c4software_bepo/readme.md
@@ -0,0 +1,37 @@
+# c4software Custom Keyboard
+
+Layout for Bépo Dev
+
+```
+/* Native BepoDev for compatible computer
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | " | < | > | ( | ) | % | VOL- | VOL+ | @ | + | - | / | * | = |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | B | E_ACUT | P | O | $ | E_GRAV | DEL | E_CIRC | V | D | L | J | Z | C_CEDIL|
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | RALT | A | U | I | E | , | BACKSP | ENTER | C | T | S | R | N | M | W |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | A_GRAV | Y | X | . | K | BACKSP | ENTER | ’ | Q | G | H | F | UP | RSHIFT |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LALT | LCTRL | FN | LGUI | SPACE | SPACE | RALT | RALT | SPACE | SPACE | RGUI | FN | LEFT | DOWN | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+ ```
+
+ The FN layer :
+
+ ```
+/* FUNCTION
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | P/ | P* | F9 | F10 | F11 | F12 |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | P7 | P8 | P9 | - | RGB_TOG| RGB_MOD| RGB_HUI|
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | PREV | PLAY | NEXT | STOP | | | | P4 | P5 | P6 | + | RGB_SAI| RGB_SAD| RGB_VAI|
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | VOL- | MUTE | VOL+ | | | | | P1 | P2 | P3 | ENT | RGB_VAD| Home | RGB_HUD|
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | RESET | | FN | | | | | | P0 | P0 | . | FN | | End | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+ ``` \ No newline at end of file
diff --git a/keyboards/xiudi/xd75/keymaps/c4software_bepo/rules.mk b/keyboards/xiudi/xd75/keymaps/c4software_bepo/rules.mk
new file mode 100644
index 0000000000..7efceba50a
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/c4software_bepo/rules.mk
@@ -0,0 +1,14 @@
+# Copyright 2013 Jun Wako <wakojun@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
diff --git a/keyboards/xiudi/xd75/keymaps/cbbrowne/config.h b/keyboards/xiudi/xd75/keymaps/cbbrowne/config.h
new file mode 100644
index 0000000000..0ff61e1f42
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/cbbrowne/config.h
@@ -0,0 +1,34 @@
+/* Copyright 2017 REPLACE_WITH_YOUR_NAME
+ *
+ * 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
+#ifndef NO_DEBUG
+#define NO_DEBUG
+#endif
+#ifndef NO_PRINT
+#define NO_PRINT
+#endif
+
+#define LEADER_TIMEOUT 300
+#define BACKLIGHT_BREATHING
+
+/* cbbrowne user configuration */
+
+#define randadd 53
+#define randmul 181
+#define randmod 167
diff --git a/keyboards/xiudi/xd75/keymaps/cbbrowne/keymap.c b/keyboards/xiudi/xd75/keymaps/cbbrowne/keymap.c
new file mode 100644
index 0000000000..1b29686cff
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/cbbrowne/keymap.c
@@ -0,0 +1,310 @@
+/* Copyright 2017 Christopher B Browne
+ *
+ * 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
+
+/* Fillers to make layering more clear */
+#define ___T___ KC_TRNS
+
+/* Layer shorthand */
+
+enum layers {
+ _QWERTY = 0, /* Qwerty mapping */
+ _LOWER, /* Lower layer, where top line has symbols !@#$%^&*() */
+ _RAISE, /* Raised layer, where top line has digits 1234567890 */
+ _ADJUST, /* Special Adjust layer coming via tri-placement */
+ _FUNCTION /* Function key layer */
+};
+
+
+/* Macros need to be uniquely identified; using an enum to do this
+ automatically
+ */
+
+enum macro_id {
+ M_LED = 0,
+ M_USERNAME,
+ M_RANDDIGIT,
+ M_RANDLETTER,
+ M_VERSION,
+ MACRO_UPPER,
+ MACRO_LOWER,
+};
+
+/* I want some short forms for keycodes so that they fit into
+ limited-width cells */
+
+#define M_LOWER M(MACRO_LOWER)
+#define M_UPPER M(MACRO_UPPER)
+#define ROT_LED M(M_LED) /* Rotate LED */
+#define QWERTY DF(_QWERTY) /* Switch to QWERTY layout */
+#define QCENT2 DF(_QCENT2) /* Switch to QWERTY-with-centre layout */
+#define USERNAME M(M_USERNAME) /* shortcut for username */
+#define RANDDIG M(M_RANDDIGIT)
+#define RANDALP M(M_RANDLETTER)
+#define CTLENTER MT(MOD_RCTL, KC_ENT)
+#define SHIFTQUOTE MT(MOD_RSFT, KC_QUOT)
+#define ALTRIGHT MT(MOD_LALT, KC_RGHT)
+#define MVERSION M(M_VERSION)
+#define ALTSLASH LALT(KC_SLSH)
+#define FUNCTION MO(_FUNCTION)
+#define MRAISE MO(_RAISE)
+#define MLOWER MO(_LOWER)
+#define ALTPLUS ALT_T(KC_PLUS)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* QWERTY - MIT ENHANCED / GRID COMPATIBLE
+ * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
+ * | ESC | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN |
+ * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ /* layout for centred keypad + qwerty...
+
+|ESC| 1 | 2 | 3 | 4 | 5 | ? | ? | ? | ? | 6 | 7 | 8 | 9 | 0 |
+|TAB| q | w | e | r | t | ? | ? | ? | ? | y | u | i | o | p |
+|CTL| a | s | d | f | g | ? | ? | ? | ? | h | j | k | l | ; |
+|SHF| z | x | c | v | b | ? | ? | ? | ? | n | m | , | . | / |
+|ALT|LED| | | | | | | | | | | | | |
+
+
+keys needing to be assigned:
+51 - KC_TAB - tab
+ - ROT_LED - rotate LED
+15 - KC_LALT - Left ALT
+53,55 - M_RAISE - switch to RAISE layer
+5b - M_LOWER - switch to LOWER layer
+56,59,5a - KC_SPC - space
+5c - KC_LEFT - famous arrows
+5d - KC_DOWN - famous arrows
+5e - KC_UP - famous arrows
+5f - KC_RIGHT - famous arrows
+3f - KC_ENT - enter
+ - KC_GRV - leftwards quote
+4f - KC_QUOT - rightwards quote
+1f - KC_BSPC - backspace
+11 - KC_ESC
+19 - KC_GRV - ` - raised
+19 - KC_TILD - ~ - lowered
+
+ */
+
+[_QWERTY] = LAYOUT_ortho_5x15( /* QWERTY, with keypad in the centre */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_EQL, KC_MINS, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC ,
+ KC_LALT, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_7, KC_8, KC_EQL, KC_Y, KC_U, KC_I, KC_O, KC_P, ALTPLUS ,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_LBRC, KC_RBRC,KC_MINS, KC_H, KC_J, KC_K, KC_L, KC_SCLN, CTLENTER ,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGUP, KC_EQL, KC_BSLS, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SHIFTQUOTE ,
+ KC_TAB, FUNCTION, MRAISE, FUNCTION, MRAISE, KC_SPC,KC_PGDN, KC_MINS, KC_SPC, KC_SPC, MLOWER, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+),
+
+/* LOWER
+ * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | | INS |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | XXXXXX . | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | XXXXXX . | | |
+ * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | | | XXXXXX . | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+[_LOWER] = LAYOUT_ortho_5x15( /* LOWERED */
+ ___T___, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, KC_TILD, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11 ,
+ ___T___, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_INS ,
+ ___T___, 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, _______, _______, _______, _______, _______, ___T___, ___T___, _______ ,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+/* RAISED
+ * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | | INS |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | XXXXXX . | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | XXXXXX . | | |
+ * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | | | XXXXXX . | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+[_RAISE] = LAYOUT_ortho_5x15 ( /* RAISED */
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, MVERSION, _______, KC_GRV, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___ ,
+ KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, USERNAME, _______, KC_7, KC_8, KC_LCBR, KC_RCBR, _______, _______, KC_INS ,
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, RANDDIG, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___ ,
+ KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RANDALP, _______, _______, _______, _______, ___T___, ___T___, _______, _______ ,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+),
+
+/* FUNCTION
+ * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
+ * | NUM LK | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | SCR LK | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | PAUSE | PR SCR |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
+ * | CAP LK | MS BT5 | MS BT4 | MS BT3 | MS BT2 | SLOW M | FAST M | NEXT | VOL+ | VOL- | PLAY | | XXXXXX | | WHEEL+ |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
+ * | RGB TG | RGB MD | RGB HI | RGB HD | RGB SI | RGB SD | RGB VI | RGB VD | BL TOG | BL INC | BL DEC | XXXXXX | | MOUS U | WHEEL- |
+ * |--------+--------+--------+--------+--------+-- 2u -----------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | RESET | | QWERTY | COLEMK | DVORAK | XXXXXX . MS BT1 | | | | | | MOUS L | MOUS D | MOUS R |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+[_FUNCTION] = LAYOUT_ortho_5x15( /* FUNCTION */
+ KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RESET, RESET,
+ KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR ,
+ KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U ,
+ RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, ___T___, ___T___, KC_MS_U, KC_WH_D ,
+ RESET , _______, DF(_QWERTY), DF(_QWERTY), DF(_QWERTY), KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R
+ )
+};
+
+/* This bit of logic seeds a wee linear congruential random number generator */
+/* lots of prime numbers everywhere... */
+static uint16_t random_value = 157;
+
+const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt)
+{
+ uint8_t clockbyte=0;
+ clockbyte = TCNT1 % 256;
+ uint8_t rval;
+ /* MACRODOWN only works in this function */
+ switch(id) {
+ case 0:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+#ifdef BACKLIGHT_ENABLE
+ backlight_step();
+#endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ case M_USERNAME:
+ if (record->event.pressed) {
+ SEND_STRING("cbbrowne");
+ }
+ break;
+ case M_VERSION:
+ if (record->event.pressed) {
+ SEND_STRING(QMK_KEYBOARD "/" QMK_KEYMAP);
+ }
+ break;
+ case M_RANDDIGIT:
+ /* Generate, based on random number generator, a keystroke for
+ a numeric digit chosen at random */
+ random_value = ((random_value + randadd) * randmul) % randmod;
+ if (record->event.pressed) {
+ /* Here, we mix the LCRNG with low bits from one of the system
+ clocks via XOR in the theory that this may be more random
+ than either separately */
+ rval = (random_value ^ clockbyte) % 10;
+ /* Note that KC_1 thru KC_0 are a contiguous range */
+ register_code (KC_1 + rval);
+ unregister_code (KC_1 + rval);
+ }
+ break;
+ case M_RANDLETTER:
+ /* Generate, based on random number generator, a keystroke for
+ a letter chosen at random */
+ /* Here, we mix the LCRNG with low bits from one of the system
+ clocks via XOR in the theory that this may be more random
+ than either separately */
+ random_value = ((random_value + randadd) * randmul) % randmod;
+ if (record->event.pressed) {
+ rval = (random_value ^ clockbyte) % 26;
+ register_code (KC_A + rval);
+ unregister_code (KC_A + rval);
+ }
+ break;
+ case MACRO_UPPER:
+ if (record->event.pressed)
+ {
+ layer_on(_RAISE);
+#ifdef BACKLIGHT_ENABLE
+ breathing_period_set(2);
+ breathing_pulse();
+#endif
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ else
+ {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ break;
+ case MACRO_LOWER:
+ if (record->event.pressed)
+ {
+ layer_on(_LOWER);
+#ifdef BACKLIGHT_ENABLE
+ breathing_period_set(2);
+ breathing_pulse();
+#endif
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ else
+ {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
+
+void matrix_init_user(void) {
+ rgblight_enable();
+ rgblight_mode(1);
+ rgblight_sethsv(325,255,255);
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ switch(biton32(state)) {
+ case _QWERTY:
+ rgblight_sethsv_white();
+ break;
+ case _LOWER:
+ rgblight_sethsv_blue();
+ break;
+ case _RAISE:
+ rgblight_sethsv_green();
+ break;
+ case _ADJUST:
+ rgblight_sethsv_orange();
+ break;
+ case _FUNCTION:
+ rgblight_sethsv_red();
+ break;
+ default:
+ rgblight_sethsv(325,255,255);
+ break;
+ }
+ return state;
+}
diff --git a/keyboards/xiudi/xd75/keymaps/cbbrowne/readme.md b/keyboards/xiudi/xd75/keymaps/cbbrowne/readme.md
new file mode 100644
index 0000000000..f2a1306eed
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/cbbrowne/readme.md
@@ -0,0 +1,22 @@
+cbbrowne custom keyboard
+==============================
+
+Due to cbbrowne@acm.org
+Christopher Browne
+
+Much of this is copied from my Planck keymap...
+
+1. TODO
+--------------------------------------------------
+
+ * Set up keypad in the middle of the screen?
+ * Or perhaps I should set up a layer for that?
+ * Need the Random, version, my name keys
+ * Almost certainly I want shift/control/alt on the right side,
+ superimposed on whatever is at the rightmost end
+ * Need a good place for RESET
+ * Definitely want the keyboard to "breathe"
+ * Perhaps nice to have some programming constructs as in jeremy-dev
+ - It had C operators such as /=, *=, -=, +=, ...
+ * Should I have some tmux commands like in mollat?
+ * How about adding some emacs commands? \ No newline at end of file
diff --git a/keyboards/xiudi/xd75/keymaps/cbbrowne/rules.mk b/keyboards/xiudi/xd75/keymaps/cbbrowne/rules.mk
new file mode 100644
index 0000000000..9b7d553c95
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/cbbrowne/rules.mk
@@ -0,0 +1,19 @@
+# Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+EXTRAKEY_ENABLE = no # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI controls
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight. Do not enable this with audio at the same time.
+
+# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
diff --git a/keyboards/xiudi/xd75/keymaps/clanghans/config.h b/keyboards/xiudi/xd75/keymaps/clanghans/config.h
new file mode 100755
index 0000000000..c21c036fd6
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/clanghans/config.h
@@ -0,0 +1,21 @@
+/* Copyright 2020 Chris Langhans
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#define RGBLIGHT_SLEEP
+
+// place overrides here
diff --git a/keyboards/xiudi/xd75/keymaps/clanghans/keymap.c b/keyboards/xiudi/xd75/keymaps/clanghans/keymap.c
new file mode 100755
index 0000000000..09a2bec55c
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/clanghans/keymap.c
@@ -0,0 +1,64 @@
+/* Copyright 2020 Chris Langhans
+ *
+ * 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
+
+// Layer shorthand
+#define _QW 0
+#define _FN 1
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* QWERTY
+ * ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐
+ * │ Esc │ 1 │ 2 │ 3 │ 4 │ 5 │ Bsp │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ ~ │
+ * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
+ * │ Tab │ Q │ W │ E │ R │ T │ Del │ Y │ U │ I │ O │ P │ [ │ ] │ \ │
+ * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
+ * │ Ctrl │ A │ S │ D │ F │ G │ │ H │ J │ K │ L │ ; │ ' │ Home │ PgUp │
+ * ├──────┼──────┼──────┼──────┼──────┼──────┼Enter ┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
+ * │ Shift│ Z │ X │ C │ V │ B │ │ N │ M │ , │ . │ / │ Shft │ End │ PgDn │
+ * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
+ * │ Ctrl │ Gui │ Alt │ FN │ Bsp │ N/A │ Space │ Alt │ Ctrl │ Left │ Down │ Up │ Right│
+ * └──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘
+ */
+ [_QW] = LAYOUT(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_BSPC, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_DEL, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_ENT, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_HOME, KC_PGUP,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, XXXXXXX, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_END, KC_PGDN,
+ KC_LCTL, KC_LGUI, KC_LALT, MO(_FN), XXXXXXX, KC_BSPC, XXXXXXX, KC_SPC, XXXXXXX, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ ),
+
+ /* FUNCTION
+ * ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐
+ * │Alt F4│ F1 │ F2 │ F3 │ F4 │ F5 │ │ F6 │ F7 │ F8 │ F9 │ F10 │ F11 │ F12 │ # Lk │
+ * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
+ * │ │ │ │ │RGBHUI│BL_TOG│ │ 7 │ 8 │ 9 │ / │ │ │ │ │
+ * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
+ * │ │ │ │ │RGBSAI│RGBMOD│ │ 4 │ 5 │ 6 │ * │ │ │ │Reset │
+ * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
+ * │ │ │ │ │RGBVAI│ │ │ 1 │ 2 │ 3 │ - │ │ │ │ │
+ * ├──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┼──────┤
+ * │ │ │ │ │ │ │ │ 0 │ │ , │ + │ │ │ │ │
+ * └──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘
+ */
+ [_FN] = LAYOUT(
+ LALT(KC_F4), 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_NLCK,
+ _______, _______, _______, _______, RGB_HUI, RGB_TOG, _______, KC_P7, KC_P8, KC_P9, KC_PSLS, _______, _______, _______, _______,
+ _______, _______, _______, _______, RGB_SAI, RGB_MOD, _______, KC_P4, KC_P5, KC_P6, KC_PAST, _______, _______, _______, RESET,
+ _______, _______, _______, _______, RGB_VAI, _______, _______, KC_P1, KC_P2, KC_P3, KC_PMNS, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_P0, _______, KC_PDOT, KC_PPLS, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/xiudi/xd75/keymaps/clanghans/readme.md b/keyboards/xiudi/xd75/keymaps/clanghans/readme.md
new file mode 100755
index 0000000000..bce20f6133
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/clanghans/readme.md
@@ -0,0 +1,11 @@
+# xd75 from Chris Langhans
+
+- qwerty layer
+- special function layer with num pad and shortcuts
+
+* Build/Flash
+ qmk setup
+ qmk compile -kb xd75 -km clanghans
+ qmk flash -kb xd75 -km clanghans
+
+ Hit 'Raise'+'PgUp' for entering bootloader mode
diff --git a/keyboards/xiudi/xd75/keymaps/colinta/config.h b/keyboards/xiudi/xd75/keymaps/colinta/config.h
new file mode 100644
index 0000000000..354c9c9186
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/colinta/config.h
@@ -0,0 +1,25 @@
+/* Copyright 2017 Colin T.A. Gray
+ *
+ * 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
+
+// QMK customization:
+// - after 1.5s, turn off one-shot keys
+#define ONESHOT_TIMEOUT 1500
+// - TT(layer) only needs one press
+#define TAPPING_TOGGLE 1
diff --git a/keyboards/xiudi/xd75/keymaps/colinta/keymap.c b/keyboards/xiudi/xd75/keymaps/colinta/keymap.c
new file mode 100644
index 0000000000..257caad339
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/colinta/keymap.c
@@ -0,0 +1,268 @@
+/* Copyright 2017 Colin T.A. Gray
+ *
+ * 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
+
+#ifdef IS_COLINTA
+#include "secrets.h"
+#else
+#define SENDSTRING_MM0 ""
+#define SENDSTRING_MM1 ""
+#define SENDSTRING_MM2 ""
+#endif
+
+// layers:
+// - colemak,
+// - record-mode (adds stop buttons)
+// - qwerty
+// - fn (recording, changing layers)
+#define LAYER_COLEMAK 0
+#define LAYER_RECORD 1
+#define LAYER_QWERTY 2
+#define LAYER_FN 3
+
+// custom keys:
+// - goto layer keys
+#define GOTO_FN TT(LAYER_FN)
+#define GOTO_CM TO(LAYER_COLEMAK)
+#define GOTO_QW TO(LAYER_QWERTY)
+// - sticky keys, aka one-shot
+#define OSCTL OSM(MOD_LCTL)
+#define OSALT OSM(MOD_LALT)
+#define OSSFT OSM(MOD_LSFT)
+#define OSGUI OSM(MOD_LGUI)
+// "MMENU" is a macro for "CMD+SPC" (aka Spotlight/Alfred)
+#define MMENU LGUI(KC_SPC)
+#define _____ KC_TRNS
+#define MM_0 DYN_MACRO_PLAY1
+#define MM_1 DYN_MACRO_PLAY2
+
+// tap-hold settings
+#define LONGPRESS_DELAY 250
+#define TH_EVENTS_COUNT 13
+
+enum my_keycods {
+ TH_M0 = SAFE_RANGE,
+ TH_M1,
+ TH_M2,
+ TH_F1,
+ TH_F2,
+ TH_F3,
+ TH_F4,
+ TH_F5,
+ TH_F6,
+ TH_F7,
+ TH_F8,
+ TH_F9,
+ TH_F10,
+ TH_LAST,
+ MM_2,
+ DM_CLEAR,
+ DYNAMIC_MACRO_RANGE,
+};
+
+#include "dynamic_macro.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* COLEMAK
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | 1 | 2 | 3 | 4 | 5 | M(0) | M(1) | DEL | 6 | 7 | 8 | 9 | 0 | - |
+ * |--------+-/F1----+-/F2----+-/F3----+-/F4----+-/F5----+--------+--------+--------+-/F6----+-/F7----+-/F8----+-/F9----+-/F10---+--------|
+ * | TAB | Q | W | F | P | G | M(2) | (FN) | BKSP | J | L | U | Y | ; | = |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | SHIFT | A | R | S | T | D | [ | ] | ENTER | H | N | E | I | O | ' |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | CTRL | Z | X | C | V | B | HOME | END | PG UP | K | M | , | . | / | \ |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | VOL- | PLAY | VOL+ | ALT | GUI | SPACE | PG DN | MENU | ESC | LEFT | DOWN | UP | RIGHT |
+ * '--/RRND----/MUTE----/FFWD-------------------------------------------------------------------------------------------------------------'
+ */
+
+ [LAYER_COLEMAK] = LAYOUT(
+ KC_GRV, TH_F1, TH_F2, TH_F3, TH_F4, TH_F5, MM_0, MM_1, KC_DEL, TH_F6, TH_F7, TH_F8, TH_F9, TH_F10, KC_MINS,
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, MM_2, GOTO_FN, KC_BSPC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_EQL,
+ OSCTL, KC_A, KC_R, KC_S, KC_T, KC_D, KC_LBRC, KC_RBRC, KC_ENT, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
+ OSSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_HOME, KC_END, KC_PGUP, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS,
+ TH_M0, TH_M1, TH_M2, OSALT, OSGUI, _____ , KC_SPC, _____ , KC_PGDN, MMENU, KC_ESC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ ),
+
+/* DYN_REC LAYER - recording tap/hold keys is possible, but they will always "tap" (macros don't record holding duration)
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | | | | | | STOP | STOP | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | | | | | | | STOP | STOP | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | | | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [LAYER_RECORD] = LAYOUT(
+ _____, _____, _____, _____, _____, _____, DYN_REC_STOP, DYN_REC_STOP, _____, _____, _____, _____, _____, _____, _____,
+ _____, _____, _____, _____, _____, _____, DYN_REC_STOP, DYN_REC_STOP, _____, _____, _____, _____, _____, _____, _____,
+ _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____,
+ _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____,
+ _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____
+ ),
+
+/* QWERTY - doesn't support recording of macros, btw. Falls through to colemak for most keys, but passes through the recording layer, so heads up.
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | | | | | | M(0) | M(1) | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | | Q | W | E | R | T | M(2) | (FN) | | Y | U | I | O | P | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | SHIFT | A | S | D | F | G | | | | H | J | K | L | ; | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | CTRL | Z | X | C | V | B | | | | N | M | | | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | ALT | GUI | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [LAYER_QWERTY] = LAYOUT(
+ _____, _____, _____, _____, _____, _____, MM_0, MM_1, _____, _____, _____, _____, _____, _____, _____,
+ _____, KC_Q, KC_W, KC_E, KC_R, KC_T, MM_2, GOTO_FN, _____, KC_Y, KC_U, KC_I, KC_O, KC_P, _____,
+ MOD_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, _____, _____, _____, KC_H, KC_J, KC_K, KC_L, KC_SCLN, _____,
+ MOD_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_B, _____, _____, _____, KC_N, KC_M, _____, _____, _____, _____,
+ _____, _____, _____, MOD_LALT, MOD_LGUI, _____, _____, _____, _____, _____, _____, _____, _____, _____, _____
+ ),
+
+/* FN LAYER - change layouts and start recording a macro
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | COLEMAK| QWERTY | | | | | REC 1 | REC 2 | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | | | | | | | | ------ | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | | RESET | DM_CLEAR | | | RESET | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [LAYER_FN] = LAYOUT(
+ GOTO_CM, GOTO_QW, KC_NO, KC_NO, KC_NO, KC_NO, DYN_REC_START1, DYN_REC_START2, 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_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, RESET, KC_NO, DM_CLEAR, KC_NO, KC_NO, KC_NO, RESET, KC_NO, KC_NO, KC_NO, KC_NO
+ )
+};
+
+typedef struct {
+ bool is_pressed;
+ uint16_t timer;
+ uint16_t kc_tap;
+ uint16_t kc_hold;
+} tap_hold_t;
+
+static tap_hold_t th_events[] = {
+ { .is_pressed = false, .timer = 0, .kc_tap = KC_VOLD, .kc_hold = KC_MRWD }, // TH_M0
+ { .is_pressed = false, .timer = 0, .kc_tap = KC_MPLY, .kc_hold = KC_MUTE }, // TH_M1
+ { .is_pressed = false, .timer = 0, .kc_tap = KC_VOLU, .kc_hold = KC_MFFD }, // TH_M2
+
+ { .is_pressed = false, .timer = 0, .kc_tap = KC_1, .kc_hold = KC_F1 }, // TH_F1
+ { .is_pressed = false, .timer = 0, .kc_tap = KC_2, .kc_hold = KC_F2 }, // TH_F2
+ { .is_pressed = false, .timer = 0, .kc_tap = KC_3, .kc_hold = KC_F3 }, // TH_F3
+ { .is_pressed = false, .timer = 0, .kc_tap = KC_4, .kc_hold = KC_F4 }, // TH_F4
+ { .is_pressed = false, .timer = 0, .kc_tap = KC_5, .kc_hold = KC_F5 }, // TH_F5
+ { .is_pressed = false, .timer = 0, .kc_tap = KC_6, .kc_hold = KC_F6 }, // TH_F6
+ { .is_pressed = false, .timer = 0, .kc_tap = KC_7, .kc_hold = KC_F7 }, // TH_F7
+ { .is_pressed = false, .timer = 0, .kc_tap = KC_8, .kc_hold = KC_F8 }, // TH_F8
+ { .is_pressed = false, .timer = 0, .kc_tap = KC_9, .kc_hold = KC_F9 }, // TH_F9
+ { .is_pressed = false, .timer = 0, .kc_tap = KC_0, .kc_hold = KC_F10 } // TH_F10
+};
+
+void taphold_tapped(uint8_t index, bool pressed) {
+ if (index >= TH_EVENTS_COUNT) { return; }
+
+ tap_hold_t *th_event = &th_events[index];
+
+ if (pressed) {
+ th_event->timer = timer_read();
+ th_event->is_pressed = true;
+ } else if (th_event->is_pressed) {
+ register_code(th_event->kc_tap);
+ unregister_code(th_event->kc_tap);
+ th_event->is_pressed = false;
+ }
+}
+
+void matrix_scan_user() {
+ for (uint8_t index = 0 ; index < TH_EVENTS_COUNT ; ++index ) {
+ tap_hold_t *th_event = &th_events[index];
+ if ( th_event->is_pressed && timer_elapsed(th_event->timer) > LONGPRESS_DELAY) {
+ register_code(th_event->kc_hold);
+ unregister_code(th_event->kc_hold);
+ th_event->is_pressed = false;
+ }
+ }
+}
+
+// if the dynamic macros haven't been recorded, we send the default macro strings.
+bool did_record_m1 = false;
+bool did_record_m2 = false;
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ bool try_dynamic_macro = true;
+ if ((keycode == DYN_MACRO_PLAY1 && !did_record_m1) || (keycode == DYN_MACRO_PLAY2 && !did_record_m2)) {
+ try_dynamic_macro = false;
+ }
+ else if (keycode == DM_CLEAR) {
+ try_dynamic_macro = false;
+ did_record_m1 = false;
+ did_record_m2 = false;
+ }
+
+ if (try_dynamic_macro && !process_record_dynamic_macro(keycode, record)) {
+ if (keycode == DYN_MACRO_PLAY1) {
+ did_record_m1 = true;
+ }
+
+ if (keycode == DYN_MACRO_PLAY2) {
+ did_record_m2 = true;
+ }
+
+ if (keycode == DYN_REC_START1 || keycode == DYN_REC_START2) {
+ layer_move(LAYER_RECORD);
+ }
+ else if (keycode == DYN_REC_STOP) {
+ layer_move(LAYER_COLEMAK);
+ }
+
+ return false;
+ }
+
+ switch (keycode) {
+ case DYN_MACRO_PLAY1:
+ SEND_STRING(SENDSTRING_MM0);
+ return false;
+ case DYN_MACRO_PLAY2:
+ SEND_STRING(SENDSTRING_MM1);
+ return false;
+ case MM_2:
+ SEND_STRING(SENDSTRING_MM2);
+ return false;
+ case TH_M0 ... TH_LAST:
+ taphold_tapped(keycode - TH_M0, record->event.pressed);
+ return false;
+ }
+
+ return true;
+}
diff --git a/keyboards/xiudi/xd75/keymaps/colinta/readme.md b/keyboards/xiudi/xd75/keymaps/colinta/readme.md
new file mode 100644
index 0000000000..e3f59d681f
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/colinta/readme.md
@@ -0,0 +1,64 @@
+# colinta's keymap for XD75
+
+```
+make xd75:colinta:dfu
+```
+
+The default layout is a Colemak keyboard with "one-shot" keys assigned to the modifier keys.
+
+ .--------------------------------------------------------------------------------------------------------------------------------------.
+ | ESC | 1 | 2 | 3 | 4 | 5 | DYN_M1 | DYN_M2 | DEL | 6 | 7 | 8 | 9 | 0 | - |
+ |--------+-/F1----+-/F2----+-/F3----+-/F4----+-/F5----+--------+--------+--------+-/F6----+-/F7----+-/F8----+-/F9----+-/F10---+--------|
+ | TAB | Q | W | F | P | G | MACRO | (FN) | BKSP | J | L | U | Y | ; | = |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ | SHIFT | A | R | S | T | D | [ | ] | ENTER | H | N | E | I | O | ' |
+ |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ | CTRL | Z | X | C | V | B | HOME | END | PG UP | K | M | , | . | / | \ |
+ |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ | VOL- | PLAY | VOL+ | ALT | GUI | SPACE | PG DN | MENU | ESC | LEFT | DOWN | UP | RIGHT |
+ '--/RRND----/MUTE----/FFWD-------------------------------------------------------------------------------------------------------------'
+
+
+I've implemented my own "tap/hold" feature, identical in spirit to "Space Cadet", but generic. Tapping "1" sends a 1, but press and hold to send "F1". Or, tap "VOL-" to turn the volume down, but press and hold to rewind.
+
+The function layer is only to switch to Qwerty (so other people can use this keyboard - also turns off sticky keys) and to start recording keypresses.
+
+I implemented "stop recording" in a unique way; starting a macro recording sends the keyboard layer to one that has all the macro keys assigned to `DYN_REC_STOP`, and restores the layer to the default when recording is stopped.
+
+I wish Dynamic Macros supported more, because I'd like to record a third macro in the MACRO slot instead of hardcoding it. I'm using these to store some passwords.
+
+## Regarding "secrets.h"
+
+The macros I'm using are sensitive, I'm comfortable having them hardcoded onto my keyboard (no SSN or private GPG keys), but not suitable for public viewing. So I've put them in a header file that is excluded from the project, and I can include this file using a compiler flag.
+
+If you would *also* like to take advantage of this feature, you'll first want to make sure your "secrets" file isn't included in the repo. Open `.git/info/exclude` and add `secrets.h` to that file, below the comments.
+
+###### .git/info/exclude
+```
+# git ls-files --others --exclude-from=.git/info/exclude
+# Lines that start with '#' are comments.
+# For a project mostly in C, the following would be a good set of
+# exclude patterns (uncomment them if you want to use them):
+# *.[oa]
+# *~
+/keyboards/xd75/keymaps/colinta/secrets.h
+```
+
+Then you can create this file and add your macro strings to it:
+
+```
+$EDITOR keyboards/xd75/keymaps/colinta/secrets.h
+```
+
+###### secrets.h
+```
+#define SENDSTRING_MM0 "abcd1234"
+#define SENDSTRING_MM1 "shhhhh secret"
+#define SENDSTRING_MM2 "stop saying pickle rick"
+```
+
+To include the feature at compile time, include the flag `IS_COLINTA` like so:
+
+```
+make xd75:colinta:dfu EXTRAFLAGS=-DIS_COLINTA
+```
diff --git a/keyboards/xiudi/xd75/keymaps/daniel/keymap.c b/keyboards/xiudi/xd75/keymaps/daniel/keymap.c
new file mode 100644
index 0000000000..e9f2740b15
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/daniel/keymap.c
@@ -0,0 +1,29 @@
+#include QMK_KEYBOARD_H
+
+#define _QW 0
+#define _NV 1
+#define _NM 2
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QW] = 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_GRV , KC_BSPC,
+ KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
+ MO(_NV), KC_A , KC_S , KC_D , KC_F , KC_G , KC_H , KC_J , KC_K , KC_L , KC_SCLN, KC_QUOT, KC_ENT , MO(_NM), 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_UP , KC_PGDN,
+ KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_SPC , KC_SPC , KC_SPC , KC_SPC , KC_SPC , KC_RALT, KC_RGUI, KC_APP , KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+ [_NV] = LAYOUT_ortho_5x15(
+ 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_DEL , KC_BSPC, _______, KC_HOME, KC_UP , KC_END , KC_INS , _______, _______, _______, _______,
+ _______, _______, _______, KC_LSFT, KC_LCTL, KC_ENT , _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_NM] = LAYOUT_ortho_5x15(
+ _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/xiudi/xd75/keymaps/daniel/readme.md b/keyboards/xiudi/xd75/keymaps/daniel/readme.md
new file mode 100644
index 0000000000..3305d0f30b
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/daniel/readme.md
@@ -0,0 +1 @@
+# Daniels xd75 keymap
diff --git a/keyboards/xiudi/xd75/keymaps/davidrambo/config.h b/keyboards/xiudi/xd75/keymaps/davidrambo/config.h
new file mode 100644
index 0000000000..6e6349c7cf
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/davidrambo/config.h
@@ -0,0 +1,22 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+// place overrides here
+
+#define TAPPING_TERM 200
+#define PERMISSIVE_HOLD
diff --git a/keyboards/xiudi/xd75/keymaps/davidrambo/keymap.c b/keyboards/xiudi/xd75/keymaps/davidrambo/keymap.c
new file mode 100644
index 0000000000..f380ebdb11
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/davidrambo/keymap.c
@@ -0,0 +1,194 @@
+/* Copyright 2021 David Rambo
+ *
+ * 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
+
+//aliases for clarity in layering
+#define ABSPC LALT(KC_BSPC) // delete whole word in Mac
+#define CBSPC LCTL(KC_BSPC) // delete whole word in PC
+#define ALEFT LALT(KC_LEFT)
+#define ARGHT LALT(KC_RGHT)
+#define CRGHT LCTL(KC_RGHT)
+#define CLEFT LCTL(KC_LEFT)
+#define SftEnt SFT_T(KC_ENT)
+#define BSGUI LGUI_T(KC_BSPC)
+#define BSCTL LCTL_T(KC_BSPC)
+
+// internet browser tab shortcuts and window/application swapping for Mac and Win
+#define GSL LGUI(S(KC_LEFT)) // back one tab in Safari
+#define GSR LGUI(S(KC_RGHT)) // forward one tab in Safari
+#define CTLPGDN LCTL(KC_PGDN) // back one tab on PC
+#define CTLPGUP LCTL(KC_PGUP) // forward one tab on PC
+#define GTAB LGUI(KC_TAB) // Mac: switch applications
+#define GGRV LGUI(KC_GRV) // Mac: switch between windows within an application
+#define ATAB LALT(KC_TAB)
+#define CTAB LCTL(KC_TAB)
+
+// toggles for navigation layers for Mac, PC, and Roguelike Numpad
+#define NAV LT(5, KC_ESC)
+#define NAVPC LT(6, KC_ESC)
+#define NAVQUD MO(7)
+
+enum custom_layer {
+ _COLEMAK,
+ _PC,
+ _GAME, // Gaming layer
+ _QUD,3 // Roguelike layer
+ _SYMBOL, // Function keys, numbers, symbols, Backlighting
+ _NAV, // Navigation Layer on Mac
+ _NAVPC, // Navigation Layer on Win
+ _NAVQUD, // Numpad for Roguelike 8-directional movement
+}
+
+// tapdance declarations
+enum {
+ SFT_LCK
+};
+
+// alias for tapdance
+#define SftLck TD(SFT_LCK)
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* COLEMAK
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | `~ | 1 | 2 | 3 | 4 | 5 | -_ | PC | =+ | 6 | 7 | 8 | 9 | 0 | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | ESC/`~ | Q | W | F | P | G | [ | \| | ] | J | L | U | Y | ; | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | NAVTAB | A | S | D | F | G | PgUp |PlayPaus| ENTER | H | N | E | I | O | ' |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * |SFT/CAPS| Z | X | C | V | B | PgDn | UP | ENTER | K | M | , | . | / | SftEnt |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | DEL | LGUI | LCTRL | LALT | LGUI | BKSPC | LEFT | DOWN | RIGHT | SPACE | SYMBOL | RGUI | RALT | RCTRL | BL |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_COLEMAK] = LAYOUT_ortho_5x15( /* COLEMAK */
+ KC_GRV , KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, TO(1) , KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_TAB , KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRC, KC_BSLS, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
+ NAV , KC_A, KC_R, KC_S, KC_T, KC_D, KC_PGUP, KC_MPLY, GGRV , KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
+ SftLck , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGDN, KC_UP , GTAB , KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SftEnt,
+ KC_DEL , KC_LGUI, KC_LCTL, KC_LALT, KC_LCTL, BSGUI, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, MO(4) , KC_RGUI, KC_RALT, KC_RCTL, BL_STEP
+ ),
+
+// Linux/Windows Layer: essentially swaps Control and GUI
+
+ [_PC] = LAYOUT_ortho_5x15( /* WINDOWS */
+ _______, _______, _______, _______, _______, _______, _______, TO(2) , _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ NAVPC , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, ATAB , _______, _______, _______, _______, _______, _______,
+ _______, KC_PSCR, KC_LGUI, _______, KC_LGUI, BSCTL , _______, _______, _______, _______, _______, KC_RCTL, _______, KC_RGUI, _______
+ ),
+
+ [_GAME] = LAYOUT_ortho_5x15( /* Gaming Layer */
+ _______, _______, _______, _______, _______, _______, _______, TO(0) , _______, _______, _______, _______, _______, _______, TO(3) ,
+ KC_ESC , KC_T , KC_Q , KC_W , KC_E , KC_R , KC_F7 , KC_F8 , KC_F9 , KC_Y , KC_U , KC_I , KC_O , KC_P , _______,
+ KC_TAB , KC_LSFT, KC_A , KC_S , KC_D , KC_F , KC_F4 , KC_F5 , KC_F6 , KC_H , KC_J , KC_K , KC_L , KC_SCLN, _______,
+ KC_LALT, KC_LCTL, KC_Z , KC_X , KC_C , KC_V , KC_F1 , KC_F2 , KC_F3 , KC_N , KC_M , _______, _______, _______, KC_ENT ,
+ _______, _______, _______, KC_G , KC_B , KC_SPC , KC_I , KC_M , ATAB , _______, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, _______
+ ),
+
+ [_QUD] = LAYOUT_ortho_5x15( /* Roguelike Layer */
+ _______, _______, _______, _______, _______, _______, _______,KC_PSLS, KC_PAST, _______, _______, _______, _______, _______, TO(0),
+ KC_GESC, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_LBRC, KC_BSLS, KC_RBRC, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
+ NAV , KC_A, KC_R, KC_S, KC_T, KC_D, KC_PGUP, KC_MPLY, GGRV , KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
+ SftLck , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_PGDN, KC_UP , ATAB , KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SftEnt ,
+ KC_DEL , KC_LGUI, KC_LGUI, KC_LALT, KC_LCTL, TO(7), KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, MO(4) , KC_RGUI, KC_RALT, KC_RCTL, _______
+ ),
+
+/* SYMBOL
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | F12 | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | F11 |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | [{ | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | }] |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | ! | @ | # | $ | % | | | | ^ | & | * | ( | ) | = |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | HOME | END | BL_OFF | BL_ON | | | | | | -_ | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_SYMBOL] = LAYOUT_ortho_5x15( /* SYMBOL */
+ KC_F12 , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , _______, _______, _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_F11 ,
+ KC_LBRC, KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , _______, _______, _______, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_RBRC,
+ _______, KC_EXLM, KC_AT , KC_HASH, KC_DLR , KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_EQL ,
+ _______, KC_HOME, KC_END , BL_OFF , BL_ON , KC_VOLD, _______, _______, _______, KC_VOLU, KC_MINS, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+
+ [_NAV] = LAYOUT_ortho_5x15( /* NAVIGATION for Mac */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, CTAB , ALEFT , KC_UP , ARGHT , KC_DEL , _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, CTLPGUP, KC_LEFT, KC_DOWN, KC_RGHT, CTLPGDN, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, GTAB , ABSPC , KC_HOME, KC_END , GGRV , _______,
+ RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ [_NAVPC] = LAYOUT_ortho_5x15( /* NAVIGATION FOR PC: replaces Alt with Control, GUI with Alt, and browser tab shortcuts*/
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, CTAB , CLEFT , KC_UP , CRGHT , KC_DEL , _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, CTLPGUP, KC_LEFT, KC_DOWN, KC_RGHT, CTLPGDN, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, ATAB , CBSPC , KC_HOME, KC_END , _______, _______,
+ RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ [_NAVQUD] = LAYOUT_ortho_5x15( /* NAVIGATION for Mac */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PSLS, KC_PAST, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_7, KC_KP_8, KC_KP_9, KC_PMNS, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_4, KC_KP_2, KC_KP_6, KC_PPLS, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_KP_1, KC_KP_5, KC_KP_3, _______, _______,
+ _______, _______, _______, _______, _______, TO(3), _______, _______, _______, _______, KC_KP_0, KC_PDOT, _______, _______, _______
+ )
+};
+
+// Shift vs capslock function. From bbaserdem's Planck keymap.
+void caps_tap (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ register_code (KC_LSFT);
+ } else if (state->count == 2) {
+ unregister_code (KC_LSFT);
+ register_code (KC_CAPS);
+ }
+}
+void caps_tap_end (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 1) {
+ unregister_code (KC_LSFT);
+ } else {
+ unregister_code (KC_CAPS);
+ }
+}
+
+//Tap Dance Definitions
+qk_tap_dance_action_t tap_dance_actions[] = {
+ //Tap once for Shift, twice for Caps Lock
+ [SFT_LCK] = ACTION_TAP_DANCE_FN_ADVANCED( caps_tap, NULL, caps_tap_end )
+};
+
+/* Template for future layers
+ [_LAYER_NAME] = {
+ { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
+ { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
+ { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
+ { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
+ { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______},
+ }
+};
+*/
diff --git a/keyboards/xiudi/xd75/keymaps/davidrambo/readme.md b/keyboards/xiudi/xd75/keymaps/davidrambo/readme.md
new file mode 100644
index 0000000000..4199a5d807
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/davidrambo/readme.md
@@ -0,0 +1,8 @@
+# XD75
+
+This is a Colemak layout for XD75 with both Mac and Linux/Windows layers.
+These two layers share momentary toggle access to a "Symbol" layer, which is modeled after my Planck layout (see planck/keymaps/davidrambo).
+Each of the base Colemak layers have their own Navigation layers for the right hand to use arrows and shortcuts for both text editing and web browsing.
+It also has two layers used for games: one with a typical WASD orientation, another for playing Roguelikes that need a numpad.
+
+The rules.mk file overrides the XD75's "BACKLIGHT_ENABLE" with YES and also adds tap dance functionality.
diff --git a/keyboards/xiudi/xd75/keymaps/davidrambo/rules.mk b/keyboards/xiudi/xd75/keymaps/davidrambo/rules.mk
new file mode 100644
index 0000000000..edc9cc6bc1
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/davidrambo/rules.mk
@@ -0,0 +1,2 @@
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+TAP_DANCE_ENABLE = yes # Enable tap dance functionality \ No newline at end of file
diff --git a/keyboards/xiudi/xd75/keymaps/default/keymap.c b/keyboards/xiudi/xd75/keymaps/default/keymap.c
new file mode 100644
index 0000000000..68441d1728
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/default/keymap.c
@@ -0,0 +1,66 @@
+/* Copyright 2017 Wunder
+ *
+ * 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 layer_names {
+ _QW,
+ _FN
+};
+
+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/xiudi/xd75/keymaps/default/readme.md b/keyboards/xiudi/xd75/keymaps/default/readme.md
new file mode 100644
index 0000000000..a1c0236ed9
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/default/readme.md
@@ -0,0 +1 @@
+# The default keymap for xd75, with led controls \ No newline at end of file
diff --git a/keyboards/xiudi/xd75/keymaps/developper_bepo/config.h b/keyboards/xiudi/xd75/keymaps/developper_bepo/config.h
new file mode 100644
index 0000000000..0183e02427
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/developper_bepo/config.h
@@ -0,0 +1,19 @@
+/* Copyright 2017 Quentin Lebastard
+ *
+ * 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/xiudi/xd75/keymaps/developper_bepo/keymap.c b/keyboards/xiudi/xd75/keymaps/developper_bepo/keymap.c
new file mode 100644
index 0000000000..121b18438e
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/developper_bepo/keymap.c
@@ -0,0 +1,72 @@
+/* Copyright 2017 Quentin Lebastard
+ *
+ * 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
+#include "keymap_bepo.h"
+
+// Layer shorthand
+#define _BP 0
+#define _FN 1
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/*
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | $ | " | { | } | ( | ) | VOL- | MUTE | VOL+ | + | - | / | * | = | % |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | B | E_ACUT | P | O | E_GRAV | | | | ^ | V | D | L | J | Z |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | ESC | A | U | I | E | , | HOME | | END | C | T | S | R | N | M |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | W | Y | X | . | K | PAGE UP| | PAGE D | ? | Q | G | H | F | RSHIFT |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LCTRL | LGUI | ALT | | _ |ENTER/FN| DEL | | BACKSP |SPACE/FN| _ | ALT | ALT | RGUI | LCTRL |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_BP] = LAYOUT_ortho_5x15( /* BepoDev */
+ BP_DLR, BP_DQUO, BP_LCBR, BP_RCBR, BP_LPRN, BP_RPRN, KC_VOLD, KC_MUTE, KC_VOLU, BP_PLUS, BP_MINS, BP_SLSH, BP_ASTR, BP_EQL, BP_PERC,
+ KC_TAB, BP_B, BP_EACU, BP_P, BP_O, BP_EGRV, KC_KP_7, KC_KP_8, KC_KP_9, BP_DCIR, BP_V, BP_D, BP_L, BP_J, BP_Z,
+ KC_ESC, BP_A, BP_U, BP_I, BP_E, BP_COMM, KC_HOME, KC_KP_5, KC_END, BP_C, BP_T, BP_S, BP_R, BP_N, BP_M,
+ KC_LSFT, BP_W, BP_Y, BP_X, BP_DOT, BP_K, KC_PGUP, KC_END, KC_PGDOWN, BP_QUOT, BP_Q, BP_G, BP_H, BP_F, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_RALT, KC_LGUI, BP_UNDS, LT(_FN,KC_ENT), KC_DEL, KC_KP_0, KC_BSPC, LT(_FN,KC_SPC), BP_UNDS, KC_RALT, KC_RALT, KC_RGUI, KC_LCTL
+ ),
+
+
+/* FUNCTION
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | F6 | PREV | PAUSE | NEXT | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | \ | [ | ] | & | | | | | LEFT | DOWN | UP | RIGHT | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | | < | > | @ | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | _ | MO(_FN)| | | | | MO(_FN)| _ | | | | RESET |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ _______, S(BP_DQUO), S(BP_LDAQ), S(BP_RDAQ), S(BP_LPRN), S(BP_RPRN), _______, _______, _______, S(BP_AT), S(BP_PLUS), S(BP_MINS), S(BP_SLSH), S(BP_ASTR), S(BP_EQL),
+ _______, RALT(BP_B), BP_BSLS, BP_LBRC, BP_RBRC, RALT(BP_P), _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP , KC_RGHT, _______,
+ _______, BP_BSLS, _______, _______, _______, _______, _______, _______, _______, _______, BP_LABK, BP_RABK, BP_AT , _______, _______,
+ _______, _______, _______, _______, _______, LT(_FN,KC_ENT), _______, _______, _______, LT(_FN,KC_SPC), _______, _______, _______, _______, RESET
+ )
+
+};
diff --git a/keyboards/xiudi/xd75/keymaps/developper_bepo/readme.md b/keyboards/xiudi/xd75/keymaps/developper_bepo/readme.md
new file mode 100644
index 0000000000..7954a683a0
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/developper_bepo/readme.md
@@ -0,0 +1,13 @@
+# developper_bepo Custom Keyboard
+
+Layout for Bépo Software development
+
+* Improved access to frequently used keys in software development
+* Modified layout for english input
+* Easy access to layers with space and enter key
+
+Keyboard maintainer: [Quentin Lebastard](https://github.com/lebastaq)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make xd75:developper_bepo
diff --git a/keyboards/xiudi/xd75/keymaps/developper_bepo/rules.mk b/keyboards/xiudi/xd75/keymaps/developper_bepo/rules.mk
new file mode 100644
index 0000000000..7efceba50a
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/developper_bepo/rules.mk
@@ -0,0 +1,14 @@
+# Copyright 2013 Jun Wako <wakojun@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
diff --git a/keyboards/xiudi/xd75/keymaps/dyn_macro_tap_dance/config.h b/keyboards/xiudi/xd75/keymaps/dyn_macro_tap_dance/config.h
new file mode 100644
index 0000000000..e6975da8a2
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/dyn_macro_tap_dance/config.h
@@ -0,0 +1,19 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+// place overrides here
diff --git a/keyboards/xiudi/xd75/keymaps/dyn_macro_tap_dance/keymap.c b/keyboards/xiudi/xd75/keymaps/dyn_macro_tap_dance/keymap.c
new file mode 100644
index 0000000000..679684976b
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/dyn_macro_tap_dance/keymap.c
@@ -0,0 +1,115 @@
+/* Copyright 2017 Wunder
+ *
+ * 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 planck_keycodes {
+ DUMMY = SAFE_RANGE,
+ DYNAMIC_MACRO_RANGE,
+};
+
+#include "dynamic_macro.h"
+
+// Layer shorthand
+#define _QW 0
+#define _FN 1
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if ( !process_record_dynamic_macro( keycode, record ) ) {
+ return false;
+ }
+
+ return true;
+};
+
+void macro_tog_key( qk_tap_dance_state_t *state, void *user_data ) {
+ if ( state->count > 3 )
+ return;
+
+ keyrecord_t kr;
+ kr.event.pressed = false;
+ uint16_t action = DYN_REC_STOP;
+
+ if ( state->count == 1 ) {
+ action = DYN_MACRO_PLAY1;
+ }
+ else if ( state->count == 2 ) {
+ action = DYN_REC_STOP;
+ kr.event.pressed = true;
+ }
+ else if ( state->count == 3 ) {
+ action = DYN_REC_START1;
+ }
+
+ process_record_dynamic_macro( action, &kr );
+}
+
+enum {
+ MCROTOG_ = 0
+};
+
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [MCROTOG_] = ACTION_TAP_DANCE_FN( macro_tog_key )
+};
+
+// Key shorthand
+#define MCROTOG TD( MCROTOG_ )
+
+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 | MCRTOG | 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, MCROTOG, 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/xiudi/xd75/keymaps/dyn_macro_tap_dance/readme.md b/keyboards/xiudi/xd75/keymaps/dyn_macro_tap_dance/readme.md
new file mode 100644
index 0000000000..b29295c748
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/dyn_macro_tap_dance/readme.md
@@ -0,0 +1 @@
+# The default keymap for xd75, with led controls
diff --git a/keyboards/xiudi/xd75/keymaps/dyn_macro_tap_dance/rules.mk b/keyboards/xiudi/xd75/keymaps/dyn_macro_tap_dance/rules.mk
new file mode 100644
index 0000000000..7708eba6a1
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/dyn_macro_tap_dance/rules.mk
@@ -0,0 +1,17 @@
+# Copyright 2013 Jun Wako <wakojun@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+TAP_DANCE_ENABLE = yes
+
diff --git a/keyboards/xiudi/xd75/keymaps/emilyh/config.h b/keyboards/xiudi/xd75/keymaps/emilyh/config.h
new file mode 100644
index 0000000000..a72596783d
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/emilyh/config.h
@@ -0,0 +1,19 @@
+/* Copyright 2017 REPLACE_WITH_YOUR_NAME
+ *
+ * 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/xiudi/xd75/keymaps/emilyh/keymap.c b/keyboards/xiudi/xd75/keymaps/emilyh/keymap.c
new file mode 100644
index 0000000000..3197b6bde9
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/emilyh/keymap.c
@@ -0,0 +1,181 @@
+/* Copyright 2017 REPLACE_WITH_YOUR_NAME
+ *
+ * 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
+#include "backlight.h"
+
+// Fillers to make layering more clear
+#define ___T___ KC_TRNS
+
+// Layer shorthand
+#define _QW 0
+#define _CM 1
+#define _DV 2
+#define _LW 3
+#define _RS 4
+#define _FN 5
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* QWERTY - MIT ENHANCED / GRID COMPATIBLE
+ * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | Q | W | E | R | T | Y | U | I | O | P | [ | ] | \ | DEL |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
+ * | ESC | A | S | D | F | G | H | J | K | L | ; | ' | XXXXXX . ENTER | PG UP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN |
+ * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_EQL, KC_PSLS, KC_PAST, KC_PPLS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, KC_P7, KC_P8, KC_P9,
+ 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_P4, KC_P5, KC_P6,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_ENT, KC_P1, KC_P2, KC_P3,
+ KC_LCTL, M(0), KC_LGUI, KC_LALT, MO(_LW), KC_SPC, KC_SPC, MO(_RS), KC_SLSH, KC_LEFT, KC_DOWN, KC_RIGHT,KC_P0, KC_PDOT, KC_PENT
+ ),
+
+/* COLEMAK - MIT ENHANCED / GRID COMPATIBLE
+ * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | Q | W | F | P | G | J | L | U | Y | ; | [ | ] | \ | DEL |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
+ * | ESC | A | R | S | T | D | H | N | E | I | O | ' | XXXXXX . ENTER | PG UP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | K | M | , | . | / | XXXXXX . RSHIFT | UP | PG DN |
+ * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_CM] = LAYOUT_ortho_5x15( /* COLEMAK */
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
+ KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
+ KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT, KC_ENT, KC_ENT, KC_PGUP,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN,
+ M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+/* DVORAK - MIT ENHANCED / GRID COMPATIBLE
+ * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | XXXXXX . BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | ' | , | . | P | Y | F | G | C | R | L | [ | ] | \ | DEL |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
+ * | ESC | A | O | E | U | I | D | H | T | N | S | / | XXXXXX . ENTER | PG UP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
+ * | LSHIFT | ; | Q | J | K | X | B | M | W | V | Z | XXXXXX . RSHIFT | UP | PG DN |
+ * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | BRITE | LCTRL | LALT | LGUI | RAISE | XXXXXX . SPACE | LOWER | RGUI | RALT | RCTRL | FN | LEFT | DOWN | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_DV] = LAYOUT_ortho_5x15( /* DVORAK */
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
+ KC_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, KC_F, KC_G, KC_C, KC_R, KC_L, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL,
+ KC_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH, KC_ENT, KC_ENT, KC_PGUP,
+ KC_LSFT, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, KC_B, KC_M, KC_W, KC_V, KC_Z, KC_RSFT, KC_RSFT, KC_UP, KC_PGDN,
+ M(0), KC_LCTL, KC_LALT, KC_LGUI, MO(_RS), KC_SPC, KC_SPC, MO(_LW), KC_RGUI, KC_RALT, KC_RCTL, MO(_FN), KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+/* LOWERED
+ * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | | ! | @ | # | $ | % | ^ | & | * | ( | ) | | | | INS |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | _ | + | { | } | | | XXXXXX . | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | XXXXXX . | | |
+ * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | | | XXXXXX . | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_LW] = LAYOUT_ortho_5x15( /* LOWERED */
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___,
+ _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______, _______, _______, KC_INS,
+ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, ___T___, ___T___, _______,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+/* RAISED
+ * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | | | | INS |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | - | = | [ | ] | \ | XXXXXX . | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
+ * | | F7 | F8 | F9 | F10 | F11 | F12 | | | | | XXXXXX . | | |
+ * |--------+--------+--------+--------+--------+- 2u ------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | | | XXXXXX . | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_RS] = LAYOUT_ortho_5x15( /* RAISED */
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___,
+ _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, KC_INS,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, ___T___, ___T___, _______,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, ___T___, ___T___, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+/* FUNCTION
+ * .---------------------------------------------------------------------------------------------------------------------- 2u ------------.
+ * | NUM LK | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | XXXXXX . |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | SCR LK | F13 | F14 | F15 | F16 | F17 | F18 | F19 | F20 | F21 | F22 | F23 | F24 | PAUSE | PR SCR |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ------------+--------|
+ * | CAP LK | MS BT5 | MS BT4 | MS BT3 | MS BT2 | SLOW M | FAST M | NEXT | VOL+ | VOL- | PLAY | | XXXXXX . | WHEEL+ |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+- 2u ---------------------+--------|
+ * | RGB TG | RGB MD | RGB HI | RGB HD | RGB SI | RGB SD | RGB VI | RGB VD | BL TOG | BL INC | BL DEC | XXXXXX . | MOUS U | WHEEL- |
+ * |--------+--------+--------+--------+--------+-- 2u -----------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | RESET | | QWERTY | COLEMK | DVORAK | XXXXXX . MS BT1 | | | | | | MOUS L | MOUS D | MOUS R |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ KC_NLCK, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, ___T___, ___T___,
+ KC_SLCK, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24, KC_PAUS, KC_PSCR,
+ KC_CAPS, KC_BTN5, KC_BTN4, KC_BTN3, KC_BTN2, KC_ACL0, KC_ACL2, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY, _______, ___T___, ___T___, KC_WH_U,
+ RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, ___T___, ___T___, KC_MS_U, KC_WH_D,
+ RESET , _______, DF(_QW), DF(_CM), DF(_DV), KC_BTN1, KC_BTN1, _______, _______, _______, _______, _______, KC_MS_L, KC_MS_D, KC_MS_R
+ )
+};
+
+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);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ break;
+ }
+ return MACRO_NONE;
+};
diff --git a/keyboards/xiudi/xd75/keymaps/emilyh/readme.md b/keyboards/xiudi/xd75/keymaps/emilyh/readme.md
new file mode 100644
index 0000000000..743aae5b3c
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/emilyh/readme.md
@@ -0,0 +1 @@
+# Modified keymap for xd75 with numpad on right
diff --git a/keyboards/xiudi/xd75/keymaps/emilyh/rules.mk b/keyboards/xiudi/xd75/keymaps/emilyh/rules.mk
new file mode 100644
index 0000000000..52a8f38d45
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/emilyh/rules.mk
@@ -0,0 +1,15 @@
+# Copyright 2013 Jun Wako <wakojun@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
diff --git a/keyboards/xiudi/xd75/keymaps/ericgebhart/config.h b/keyboards/xiudi/xd75/keymaps/ericgebhart/config.h
new file mode 100644
index 0000000000..77f83e83fd
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/ericgebhart/config.h
@@ -0,0 +1,12 @@
+#pragma once
+
+#undef RGBLED_NUM
+#define RGBLED_NUM 6
+#define RGBLIGHT_LAYERS
+
+#undef RGBLIGHT_ANIMATIONS
+//#define RGBLIGHT_HUE_STEP 8
+//#define RGBLIGHT_SAT_STEP 8
+
+
+// place overrides here
diff --git a/keyboards/xiudi/xd75/keymaps/ericgebhart/keymap.c b/keyboards/xiudi/xd75/keymaps/ericgebhart/keymap.c
new file mode 100644
index 0000000000..9661972bfa
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/ericgebhart/keymap.c
@@ -0,0 +1,242 @@
+/*
+ Copyright 2018 Eric Gebhart <e.a.gebhart@gmail.com>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#include "keymap_bepo.h"
+#include "ericgebhart.h"
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [DVORAK] = LAYOUT_ortho_5x15_wrapper(
+ KC_GRV, ___ORTHO_15_N___, KC_EQL,
+ KC_LOCK, ___13_DVORAK_1___, KC_SLASH,
+ TAB_BKTAB, ___13_DVORAK_2___, KC_MINUS,
+ KC_LSFT, ___13_DVORAK_3___, KC_RSFT,
+ ___ORTHO_15_BOTTOM___
+ ),
+
+ [QWERTY] = LAYOUT_ortho_5x15_wrapper(
+ KC_GRV, ___ORTHO_15_N___, KC_EQL,
+ KC_LOCK, ___13_QWERTY_1___, KC_SLASH,
+ TAB_BKTAB, ___13_QWERTY_2___, KC_MINUS,
+ KC_LSFT, ___13_QWERTY_3___, KC_RSFT,
+ ___ORTHO_15_BOTTOM___
+ ),
+
+ [COLEMAK] = LAYOUT_ortho_5x15_wrapper(
+ KC_GRV, ___ORTHO_15_N___, KC_EQL,
+ KC_LOCK, ___13_COLEMAK_1___, KC_SLASH,
+ TAB_BKTAB, ___13_COLEMAK_2___, KC_MINUS,
+ KC_LSFT, ___13_COLEMAK_3___, KC_RSFT,
+ ___ORTHO_15_BOTTOM___
+ ),
+
+ [WORKMAN] = LAYOUT_ortho_5x15_wrapper(
+ KC_GRV, ___ORTHO_15_N___, KC_EQL,
+ KC_LOCK, ___13_WORKMAN_1___, KC_SLASH,
+ TAB_BKTAB, ___13_WORKMAN_2___, KC_MINUS,
+ KC_LSFT, ___13_WORKMAN_3___, KC_RSFT,
+ ___ORTHO_15_BOTTOM___
+ ),
+
+ [NORMAN] = LAYOUT_ortho_5x15_wrapper(
+ KC_GRV, ___ORTHO_15_N___, KC_EQL,
+ KC_LOCK, ___13_NORMAN_1___, KC_SLASH,
+ TAB_BKTAB, ___13_NORMAN_2___, KC_MINUS,
+ KC_LSFT, ___13_NORMAN_3___, KC_RSFT,
+ ___ORTHO_15_BOTTOM___
+ ),
+
+ [DVORAK_ON_BEPO] = LAYOUT_ortho_5x15_wrapper(
+ DB_GRV, ___ORTHO_15_B_N___, DB_EQL,
+ KC_LOCK, ___13_DVORAK_B_1___, DB_SLASH,
+ TAB_BKTAB, ___13_DVORAK_B_2___, DB_MINUS,
+ KC_LSFT, ___13_DVORAK_B_3___, KC_RSFT,
+ ___ORTHO_15_BOTTOM_FR___
+ ),
+
+ [XMONAD] = LAYOUT_ortho_5x15_wrapper(
+ ___ORTHO_15_FUNC_1_12___,
+ ___, ___13_DVORAK_1___, ___,
+ ___, ___13_DVORAK_2___, ___,
+ ___, ___13_DVORAK_3___, ___,
+ ___15___
+ ),
+
+ [XMONAD_FR] = LAYOUT_ortho_5x15_wrapper(
+ ___ORTHO_15_FUNC_1_12___,
+ ___, ___13_DVORAK_B_1___, ___,
+ ___, ___13_DVORAK_B_2___, ___,
+ ___, ___13_DVORAK_B_3___, ___,
+ ___15___
+ ),
+
+ [BEPO] = LAYOUT_ortho_5x15_wrapper(
+ ___ORTHO_15_B_SYMB___,
+ KC_LOCK, ___13_BEPO_1___, BP_W,
+ TAB_BKTAB, ___13_BEPO_2___, BP_CCED,
+ BP_SFT_T_ECRC, ___13_BEPO_3___, BP_SFT_T_W,
+ ___ORTHO_15_BOTTOM_BP___
+ ),
+
+ // SYMBOLS
+ [SYMB] = LAYOUT_ortho_5x15_wrapper(
+ ___ORTHO_15_FUNC_1_12___,
+ ___15_SYMB_1___,
+ ___15_SYMB_2___,
+ ___15_SYMB_3___,
+ ___15_SYMB_4___
+ ),
+
+ [KEYPAD] = LAYOUT_ortho_5x15_wrapper(
+ ___ORTHO_15_FUNC_1_12___,
+ ___15_KP_1___,
+ ___15_KP_2___,
+ ___15_KP_3___,
+ ___15_KP_4___
+ ),
+
+ [KEYPAD_ON_BEPO] = LAYOUT_ortho_5x15_wrapper(
+ ___ORTHO_15_FUNC_1_12___,
+ ___15_KP_B_1___,
+ ___15_KP_B_2___,
+ ___15_KP_B_3___,
+ ___15_KP_B_4___
+ ),
+
+ [SYMB_ON_BEPO] = LAYOUT_ortho_5x15_wrapper(
+ ___ORTHO_15_FUNC_1_12___,
+ ___15_SYMB_B_1___,
+ ___15_SYMB_B_2___,
+ ___15_SYMB_B_3___,
+ ___15_SYMB_B_4___
+ ),
+
+ // MEDIA AND MOUSE
+ [MDIA] = LAYOUT_ortho_5x15_wrapper(
+ ___ORTHO_15_FUNC_1_12___,
+ ___15_MDIA_1___,
+ ___15_MDIA_2___,
+ ___15_MDIA_3___,
+ ___15_MDIA_4___
+ ),
+
+ [LAYERS] = LAYOUT_ortho_5x15_wrapper(
+ ___ORTHO_15_FUNC_1_12___,
+ ___15_LAYERS_1___,
+ ___15_LAYERS_2___,
+ ___15_LAYERS_3___,
+ ___15___
+ ),
+
+ [_RGB] = LAYOUT_ortho_5x15_wrapper(
+ ___ORTHO_15_FUNC_1_12___,
+ ___15_RGB_1___,
+ ___15_RGB_2___,
+ ___15_RGB_3___,
+ ___15___
+ ),
+};
+
+
+/********************************************************************************/
+/* Using layers to do RGB underlighting */
+/********************************************************************************/
+
+const rgblight_segment_t PROGMEM on_bepo[] = RGBLIGHT_LAYER_SEGMENTS(
+ {0, 2, HSV_AZURE}
+ );
+
+const rgblight_segment_t PROGMEM bepo[] = RGBLIGHT_LAYER_SEGMENTS(
+ {3, 2, HSV_MAGENTA}
+ );
+
+const rgblight_segment_t PROGMEM dvorak[] = RGBLIGHT_LAYER_SEGMENTS(
+ {3, 2, HSV_AZURE}
+ );
+
+const rgblight_segment_t PROGMEM media[] = RGBLIGHT_LAYER_SEGMENTS(
+ {5, 1, HSV_GREEN}
+ );
+
+const rgblight_segment_t PROGMEM symbol[] = RGBLIGHT_LAYER_SEGMENTS(
+ {4, 2, HSV_GOLD}
+ );
+
+const rgblight_segment_t PROGMEM keypad[] = RGBLIGHT_LAYER_SEGMENTS(
+ {4, 2, HSV_BLUE}
+ );
+
+const rgblight_segment_t PROGMEM layers[] = RGBLIGHT_LAYER_SEGMENTS(
+ {5, 1, HSV_RED}
+ );
+
+const rgblight_segment_t PROGMEM rgb[] = RGBLIGHT_LAYER_SEGMENTS(
+ {5, 1, HSV_ORANGE}
+ );
+
+const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(on_bepo, bepo, dvorak, media, symbol,
+ keypad, layers, rgb);
+
+void keyboard_post_init_user(void) {
+ rgblight_sethsv_noeeprom(HSV_PURPLE);
+ rgblight_layers = rgb_layers;
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ // rgblight_set_layer_state(0, !on_qwerty());
+ rgblight_set_layer_state(0, layer_state_cmp(state, DVORAK));
+
+ rgblight_set_layer_state(1, layer_state_cmp(state, BEPO));
+ rgblight_set_layer_state(2, layer_state_cmp(state, DVORAK));
+ //|| layer_state_cmp(state, DVORAK_ON_BEPO)));
+ rgblight_set_layer_state(3, layer_state_cmp(state, MDIA));
+ rgblight_set_layer_state(4, layer_state_cmp(state, SYMB) );
+
+ //(layer_state_cmp(state, SYMB) || (layer_state_cmp(state, SYMB_ON_BEPO))));
+ rgblight_set_layer_state(5, layer_state_cmp(state, KEYPAD) );
+ ///(layer_state_cmp(state, KEYPAD) || (layer_state_cmp(state, KEYPAD_ON_BEPO))));
+ rgblight_set_layer_state(6, layer_state_cmp(state, LAYERS));
+ rgblight_set_layer_state(7, layer_state_cmp(state, _RGB));
+ return state;
+}
+
+/* void suspend_power_down_user(void) { */
+/* rgblight_disable(); */
+/* } */
+
+/* void suspend_wakeup_init_user(void) { */
+/* rgblight_enable(); */
+/* } */
+
+/* bool is_shift_pressed = false; */
+
+/* bool led_update_user(led_t led_state) { */
+/* rgblight_set_layer_state(2, is_shift_pressed != led_state.caps_lock); */
+/* return true; */
+/* } */
+
+/* bool process_record_user(uint16_t keycode, keyrecord_t* record) { */
+/* switch (keycode) { */
+/* case KC_LSFT: */
+/* case KC_RSFT: */
+/* is_shift_pressed = record->event.pressed; */
+/* rgblight_set_layer_state(2, is_shift_pressed != host_keyboard_led_state().caps_lock); */
+/* default: */
+/* return true; */
+/* } */
+/* } */
diff --git a/keyboards/xiudi/xd75/keymaps/ericgebhart/readme.md b/keyboards/xiudi/xd75/keymaps/ericgebhart/readme.md
new file mode 100644
index 0000000000..a1c0236ed9
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/ericgebhart/readme.md
@@ -0,0 +1 @@
+# The default keymap for xd75, with led controls \ No newline at end of file
diff --git a/keyboards/xiudi/xd75/keymaps/ericgebhart/rules.mk b/keyboards/xiudi/xd75/keymaps/ericgebhart/rules.mk
new file mode 100644
index 0000000000..11871f9c9d
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/ericgebhart/rules.mk
@@ -0,0 +1,3 @@
+RGBLIGHT_ENABLE = yes
+RGBLIGHT_ANIMATION = yes
+# BACKLIGHT_ENABLE = yes
diff --git a/keyboards/xiudi/xd75/keymaps/fabian/config.h b/keyboards/xiudi/xd75/keymaps/fabian/config.h
new file mode 100644
index 0000000000..a72596783d
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/fabian/config.h
@@ -0,0 +1,19 @@
+/* Copyright 2017 REPLACE_WITH_YOUR_NAME
+ *
+ * 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/xiudi/xd75/keymaps/fabian/keymap.c b/keyboards/xiudi/xd75/keymaps/fabian/keymap.c
new file mode 100644
index 0000000000..0d59e4ce8f
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/fabian/keymap.c
@@ -0,0 +1,290 @@
+/* Copyright 2015-2017 Jack Humbert
+ *
+ * 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
+#include "action_layer.h"
+#include "eeconfig.h"
+
+extern keymap_config_t keymap_config;
+
+enum custom_layers {
+ _QWERTY,
+ _COLEMAK,
+ _DVORAK,
+ _LOWER,
+ _RAISE,
+ _PLOVER,
+ _ADJUST
+};
+
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ COLEMAK,
+ DVORAK,
+ PLOVER,
+ LOWER,
+ RAISE,
+ BACKLIT,
+ EXT_PLV
+};
+
+#define CTL_ESC CTL_T(KC_ESC) // Tap for Escape, hold for Control
+#define HPR_TAB ALL_T(KC_TAB) // Tap for Tab, hold for Hyper (Super+Ctrl+Alt+Shift)
+#define MEH_GRV MEH_T(KC_GRV) // Tap for Backtick, hold for Meh (Ctrl+Alt+Shift)
+#define SFT_BSP SFT_T(KC_BSPC) // Tap for Backspace, hold for Shift
+#define SFT_ENT SFT_T(KC_ENT) // Tap for Enter, hold for Shift
+#define SFT_SPC SFT_T(KC_SPC) // Tap for Space, hold for Shift
+#define UMLAUT RALT(KC_U) // Combine Alt and U
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Qwerty
+ * ,--------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | Q | W | E | R | T | | | | Y | U | I | O | P | Bksp |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | | | | H | J | K | L | ; | " |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | | | | N | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Meh | Alt | GUI |Lower |Space | | | | Tab |Raise | GUI |AltGr | Umlt | Ctrl |
+ * `--------------------------------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ HPR_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, _______, _______, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ CTL_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, _______, _______, _______, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ SFT_BSP, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT,
+ KC_LCTL, MEH_GRV, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, _______, _______, HPR_TAB, RAISE, KC_RGUI, KC_RALT, UMLAUT, KC_RCTL
+),
+
+/* Colemak
+ * ,--------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | Q | W | F | P | G | | | | J | L | U | Y | ; | Bksp |
+ * |------+------+------+------+------+------+------+------+-------------+------+------+------+------+------|
+ * | Esc | A | R | S | T | D | | | | H | N | E | I | O | " |
+ * |------+------+------+------+------+------+------+------+------|------+------+------+------+------+------|
+ * | Shift| Z | X | C | V | B | | | | K | M | , | . | / |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Meh | Alt | GUI |Lower |Space | | | | Tab |Raise | GUI |AltGr | Umlt | Ctrl |
+ * `--------------------------------------------------------------------------------------------------------'
+ */
+[_COLEMAK] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ HPR_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, _______, _______, _______, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSPC,
+ CTL_ESC, KC_A, KC_R, KC_S, KC_T, KC_D, _______, _______, _______, KC_H, KC_N, KC_E, KC_I, KC_O, KC_QUOT,
+ SFT_BSP, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, SFT_ENT,
+ KC_LCTL, MEH_GRV, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, _______, _______, HPR_TAB, RAISE, KC_RGUI, KC_RALT, UMLAUT, KC_RCTL
+),
+
+/* Dvorak
+ * ,--------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Tab | " | , | . | P | Y | | | | F | G | C | R | L | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------+------+------+------|
+ * | Esc | A | O | E | U | I | | | | D | H | T | N | S | / |
+ * |------+------+------+------+------+------|------+------+------+------+------+------+------+------+------|
+ * | Shift| ; | Q | J | K | X | | | | B | M | W | V | Z |Enter |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | Meh | Alt | GUI |Lower |Space | | | | Tab |Raise | GUI |AltGr | Umlt | Ctrl |
+ * `--------------------------------------------------------------------------------------------------------'
+ */
+[_DVORAK] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ HPR_TAB, KC_QUOT, KC_COMM, KC_DOT, KC_P, KC_Y, _______, _______, _______, KC_F, KC_G, KC_C, KC_R, KC_L, KC_BSPC,
+ CTL_ESC, KC_A, KC_O, KC_E, KC_U, KC_I, _______, _______, _______, KC_D, KC_H, KC_T, KC_N, KC_S, KC_SLSH,
+ SFT_BSP, KC_SCLN, KC_Q, KC_J, KC_K, KC_X, _______, _______, _______, KC_B, KC_M, KC_W, KC_V, KC_Z, SFT_ENT,
+ KC_LCTL, MEH_GRV, KC_LALT, KC_LGUI, LOWER, KC_SPC, _______, _______, _______, HPR_TAB, RAISE, KC_RGUI, KC_RALT, UMLAUT, KC_RCTL
+),
+
+/* Lower
+ * ,--------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | ~ | ! | @ | # | $ | % | | | | ^ | & | * | ( | ) | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | | | | F6 | _ | + | { | } | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | | | | F12 | MS L | MS D |MS U | MS R |MS Btn|
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `--------------------------------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
+ 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_MS_L, KC_MS_D, KC_MS_U, KC_MS_R, KC_BTN1,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Raise
+ * ,--------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | ` | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | Bksp |
+ * |------+------+------+------+------+-------------+------+------+------+------+------+------+------+------|
+ * | Del | F1 | F2 | F3 | F4 | F5 | | | | F6 | - | = | [ | ] | \ |
+ * |------+------+------+------+------+------|------+------+------+------+------+------+------+------+------|
+ * | | F7 | F8 | F9 | F10 | F11 | | | | F12 | Left | Down | Up | Rght |MS_BN2|
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | Next | Vol- | Vol+ | Play |
+ * `--------------------------------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_DEL, 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_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_BTN2,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+),
+
+/* Plover layer (http://opensteno.org)
+ * ,--------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | # | # | # | # | # | # | | | | # | # | # | # | # | # |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | S | T | P | H | * | | | | * | F | P | L | T | D |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | S | K | W | R | * | | | | * | R | B | G | S | Z |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Exit | | | A | O | | | | | | E | U | | | |
+ * `--------------------------------------------------------------------------------------------------------'
+ */
+
+[_PLOVER] = LAYOUT_ortho_5x15(
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ KC_1, KC_1, KC_1, KC_1, KC_1, KC_1, XXXXXXX, XXXXXXX, XXXXXXX, KC_1, KC_1, KC_1, KC_1, KC_1, KC_1,
+ XXXXXXX, KC_Q, KC_W, KC_E, KC_R, KC_T, XXXXXXX, XXXXXXX, XXXXXXX, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC,
+ XXXXXXX, KC_A, KC_S, KC_D, KC_F, KC_G, XXXXXXX, XXXXXXX, XXXXXXX, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
+ EXT_PLV, XXXXXXX, XXXXXXX, KC_C, KC_V, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_N, KC_M, XXXXXXX, XXXXXXX, XXXXXXX
+),
+
+/* Adjust (Lower + Raise)
+ * ,--------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | Reset| | | | | | | | | | | | Reset| Del |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | |Aud on|Audoff|AGnorm| | | |AGswap|Qwerty|Colemk|Dvorak|Plover| |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | |Voice-|Voice+|Mus on|Musoff|MIDIon| | | |MIDIof| | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | | | | |
+ * `--------------------------------------------------------------------------------------------------------'
+ */
+
+[_ADJUST] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, RESET, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET, KC_DEL,
+ _______, _______, MU_MOD, AU_ON, AU_OFF, AG_NORM, _______, _______, _______, AG_SWAP, QWERTY, COLEMAK, DVORAK, PLOVER, _______,
+ _______, MUV_DE, MUV_IN, MU_ON, MU_OFF, MI_ON, _______, _______, _______, MI_OFF, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+)
+};
+
+#ifdef AUDIO_ENABLE
+ float plover_song[][2] = SONG(PLOVER_SOUND);
+ float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND);
+#endif
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ break;
+ case COLEMAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_COLEMAK);
+ }
+ return false;
+ break;
+ case DVORAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_DVORAK);
+ }
+ return false;
+ break;
+ case LOWER:
+ if (record->event.pressed) {
+ layer_on(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_LOWER);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case RAISE:
+ if (record->event.pressed) {
+ layer_on(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ } else {
+ layer_off(_RAISE);
+ update_tri_layer(_LOWER, _RAISE, _ADJUST);
+ }
+ return false;
+ break;
+ case BACKLIT:
+ if (record->event.pressed) {
+ register_code(KC_RSFT);
+ #ifdef BACKLIGHT_ENABLE
+ backlight_step();
+ #endif
+ } else {
+ unregister_code(KC_RSFT);
+ }
+ return false;
+ break;
+ case PLOVER:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ stop_all_notes();
+ PLAY_SONG(plover_song);
+ #endif
+ layer_off(_RAISE);
+ layer_off(_LOWER);
+ layer_off(_ADJUST);
+ layer_on(_PLOVER);
+ if (!eeconfig_is_enabled()) {
+ eeconfig_init();
+ }
+ keymap_config.raw = eeconfig_read_keymap();
+ keymap_config.nkro = 1;
+ eeconfig_update_keymap(keymap_config.raw);
+ }
+ return false;
+ break;
+ case EXT_PLV:
+ if (record->event.pressed) {
+ #ifdef AUDIO_ENABLE
+ PLAY_SONG(plover_gb_song);
+ #endif
+ layer_off(_PLOVER);
+ }
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/xiudi/xd75/keymaps/fabian/rules.mk b/keyboards/xiudi/xd75/keymaps/fabian/rules.mk
new file mode 100644
index 0000000000..3ff9b75d30
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/fabian/rules.mk
@@ -0,0 +1,34 @@
+# Copyright 2013 Jun Wako <wakojun@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+# QMK Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+
diff --git a/keyboards/xiudi/xd75/keymaps/french/config.h b/keyboards/xiudi/xd75/keymaps/french/config.h
new file mode 100644
index 0000000000..e6975da8a2
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/french/config.h
@@ -0,0 +1,19 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+// place overrides here
diff --git a/keyboards/xiudi/xd75/keymaps/french/keymap.c b/keyboards/xiudi/xd75/keymaps/french/keymap.c
new file mode 100644
index 0000000000..8d5d2b634f
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/french/keymap.c
@@ -0,0 +1,56 @@
+#include "keymap_french.c"
+#include QMK_KEYBOARD_H
+
+
+// Layer shorthand
+#define _AZ 0
+#define _FN 1
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* AZERTY
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | & | é | " | ' | ( | - | è | _ | ç | à | ) | = | INSERT | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | a | z | e | r | t | y | u | i | o | p | ^ | $ | ENTER | PG UP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | CAP LK | q | s | d | f | g | h | j | k | l | m | ù | * | ENTER | PG DN |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | w | x | c | v | b | n | , | ; | : | ! | < | LSHIFT | UP | DEL |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LCTRL | CMD | ALT | FN | SPACE | SPACE | SPACE | SPACE | ALGR | MENU | HOME | END | LEFT | DOWN | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_AZ] = LAYOUT_ortho_5x15( /* AZERTY */
+ FR_ESC, FR_AMPR, FR_EACU, FR_DQUO, FR_QUOT, FR_LPAR, FR_MINS, FR_EGRV, FR_UNDS, FR_CCED, FR_AGRV, FR_RPAR, FR_EQUA, FR_INST, FR_BSPC,
+ FR_TAB, FR_A, FR_Z, FR_E, FR_R, FR_T, FR_Y, FR_U, FR_I, FR_O, FR_P, FR_HAT, FR_DLR, FR_ENTR, FR_PGUP,
+ FR_CAPL, FR_Q, FR_S, FR_D, FR_F, FR_G, FR_H, FR_J, FR_K, FR_L, FR_M, FR_UGRV, FR_AST, FR_ENTR, FR_PGDN,
+ FR_LSFT, FR_W, FR_X, FR_C, FR_V, FR_B, FR_N, FR_COMM, FR_SCLN, FR_COLN, FR_EXCL, FR_LABK, FR_RSFT, FR_UP, FR_DEL,
+ FR_LCTR, FR_LCMD, FR_LALT, MO(_FN), FR_SPAC, FR_SPAC, FR_SPAC, FR_SPAC, FR_ALGR, FR_MENU, FR_HOME, FR_END, FR_LEFT, FR_DOWN, FR_RIGT
+ ),
+
+
+/* FUNCTION
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | PRINT | LED |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | PREV | PLAY | NEXT | | | | | NUM LCK| 7 | 8 | 9 | * | | LED+ |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | VOL- | MUTE | VOL+ | | | | | | 4 | 5 | 6 | - | | LED- |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | 1 | 2 | 3 | + | | LEDMAX |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | RESET | | | FN | | | | | | | 0 | . | PENT | | LEDLVL |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ FR_EMPT, FR_F1, FR_F2, FR_F3, FR_F4, FR_F5, FR_F6, FR_F7, FR_F8, FR_F9, FR_F10, FR_F11, FR_F12, FR_PSCR, BL_TOGG,
+ FR_EMPT, FR_MPRV, FR_MPLY, FR_MNXT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_NUML, FR_7, FR_8, FR_9, FR_MULT, FR_EMPT, BL_INC,
+ FR_EMPT, FR_MVDN, FR_MUTE, FR_MVUP, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_4, FR_5, FR_6, FR_MOIN, FR_EMPT, BL_DEC,
+ FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_1, FR_2, FR_3, FR_PLUS, FR_EMPT, BL_ON,
+ RESET, FR_EMPT, FR_EMPT, FR_TRANS, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_EMPT, FR_0, FR_DOT, FR_ENTK, FR_EMPT, BL_STEP
+ )
+};
diff --git a/keyboards/xiudi/xd75/keymaps/french/keymap_french.c b/keyboards/xiudi/xd75/keymaps/french/keymap_french.c
new file mode 100644
index 0000000000..c346138381
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/french/keymap_french.c
@@ -0,0 +1,157 @@
+enum french_key {
+
+ FR_EMPT = 0x00,
+ FR_TRANS,
+ FR_Q = 0x04,
+ FR_B,
+ FR_C,
+ FR_D,
+ FR_E,
+ FR_F,
+ FR_G,
+ FR_H,
+ FR_I,
+ FR_J,
+ FR_K,
+ FR_L,
+ FR_COMM, /* 0x10 */
+ FR_N,
+ FR_O,
+ FR_P,
+ FR_A,
+ FR_R,
+ FR_S,
+ FR_T,
+ FR_U,
+ FR_V,
+ FR_Z,
+ FR_X,
+ FR_Y,
+ FR_W,
+ FR_AMPR,
+ FR_EACU,
+ FR_DQUO, /* 0x20 */
+ FR_QUOT,
+ FR_LPAR,
+ FR_MINS,
+ FR_EGRV,
+ FR_UNDS,
+ FR_CCED,
+ FR_AGRV,
+ FR_ENTR,
+ FR_ESC,
+ FR_BSPC,
+ FR_TAB,
+ FR_SPAC,
+ FR_RPAR,
+ FR_EQUA,
+ FR_HAT,
+ FR_DLR, /* 0x30 */
+ FR_AST =0x32,
+ FR_M,
+ FR_UGRV,
+ FR_SCLN =0x36,
+ FR_COLN,
+ FR_EXCL,
+ FR_CAPL,
+ FR_F1,
+ FR_F2,
+ FR_F3,
+ FR_F4,
+ FR_F5,
+ FR_F6,
+ FR_F7, /* 0x40 */
+ FR_F8,
+ FR_F9,
+ FR_F10,
+ FR_F11,
+ FR_F12,
+ FR_PSCR,
+ FR_INST =0x49,
+ FR_HOME,
+ FR_PGUP,
+ FR_DEL,
+ FR_END,
+ FR_PGDN,
+ FR_RIGT,
+ FR_LEFT, /* 0x50 */
+ FR_DOWN,
+ FR_UP,
+ FR_NUML,
+ FR_SLSH, /* KEYPAD */
+ FR_MULT,
+ FR_MOIN,
+ FR_PLUS,
+ FR_ENTK,
+ FR_1,
+ FR_2,
+ FR_3,
+ FR_4,
+ FR_5,
+ FR_6,
+ FR_7,
+ FR_8, /* 0x60 */
+ FR_9,
+ FR_0,
+ FR_DOT,
+ FR_LABK,
+ FR_EQ =0x67 /* END KEYPAD */,
+ FR_F13,
+ FR_F14,
+ FR_F15,
+ FR_F16,
+ FR_F17,
+ FR_F18,
+ FR_F19,
+ FR_F20,
+ FR_F21, /* 0x70 */
+ FR_F22,
+ FR_F23,
+ FR_F24,
+ FR_MENU =0x76
+};
+
+
+enum french_control_touch{
+
+ /* Modifiers */
+ FR_LCTR = 0xE0,
+ FR_LSFT,
+ FR_LALT,
+ FR_LCMD,
+ FR_RCTR,
+ FR_RSFT,
+ FR_ALGR,
+ FR_RCMD
+};
+
+
+enum french_media_key{
+ /* System Control */
+ FR_SYSTEM_POWER = 0xA5,
+ FR_SYSTEM_SLEEP,
+ FR_SYSTEM_WAKE,
+
+ /* Media Control */
+ FR_MUTE,
+ FR_MVUP,
+ FR_MVDN,
+ FR_MNXT,
+ FR_MPRV,
+ FR_MSTP,
+ FR_MPLY,
+ FR_MEDIA_SELECT,
+ FR_MEDIA_EJECT,
+ FR_MAIL,
+ FR_CALCULATOR,
+ FR_MY_COMPUTER,
+ FR_WWW_SEARCH,
+ FR_WWW_HOME,
+ FR_WWW_BACK,
+ FR_WWW_FORWARD,
+ FR_WWW_STOP,
+ FR_WWW_REFRESH,
+ FR_WWW_FAVORITES,
+ FR_MEDIA_FAST_FORWARD,
+ FR_MEDIA_REWIND /* 0xBC */
+};
diff --git a/keyboards/xiudi/xd75/keymaps/french/readme.md b/keyboards/xiudi/xd75/keymaps/french/readme.md
new file mode 100644
index 0000000000..8c5330290e
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/french/readme.md
@@ -0,0 +1,20 @@
+# Clavier AZERTY français
+
+![Disposition Clavier](https://i.imgur.com/tH9TVBc.png)
+
+
+# Configuration du clavier
+
+Ce clavier AZERTY est basé sur le fichier keymap_french.c de correspondance QWERTY - AZERTY.
+
+Ce fichier est composé de trois énumérations (layout français, touches de contrôle, touches multimédias) correspondant aux keycodes sous la forme d'hexa.
+
+Il peut être utilisé pour toute autre configuration de clavier juste en incluant ce fichier dans son propre keymap.c.
+
+La touche de fonction permet elle d'avoir accès aux différentes touches multimédias ainsi qu'au pavé numérique. Mais aussi si le clavier est équipé de led, à différents modes d'éclairage.
+
+# Compilation
+
+```
+make xd75:french:dfu
+```
diff --git a/keyboards/xiudi/xd75/keymaps/french/rules.mk b/keyboards/xiudi/xd75/keymaps/french/rules.mk
new file mode 100644
index 0000000000..324d9ebd05
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/french/rules.mk
@@ -0,0 +1,17 @@
+# Copyright 2013 Jun Wako <wakojun@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+RGBLIGHT_ENABLE = no
+
diff --git a/keyboards/xiudi/xd75/keymaps/germanized/config.h b/keyboards/xiudi/xd75/keymaps/germanized/config.h
new file mode 100644
index 0000000000..d8c8f2d502
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/germanized/config.h
@@ -0,0 +1,117 @@
+/* Copyright 2018 Kolja Brauns
+ *
+ * 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
+
+//Tap-Toggle
+#define TAPPING_TOGGLE 3
+
+//Tap Dancing
+#define TAPPING_TERM 200
+
+// normal characters
+#define DE_Z KC_Y
+#define DE_Y KC_Z
+
+#define DE_A KC_A
+#define DE_B KC_B
+#define DE_C KC_C
+#define DE_D KC_D
+#define DE_E KC_E
+#define DE_F KC_F
+#define DE_G KC_G
+#define DE_H KC_H
+#define DE_I KC_I
+#define DE_J KC_J
+#define DE_K KC_K
+#define DE_L KC_L
+#define DE_M KC_M
+#define DE_N KC_N
+#define DE_O KC_O
+#define DE_P KC_P
+#define DE_Q KC_Q
+#define DE_R KC_R
+#define DE_S KC_S
+#define DE_T KC_T
+#define DE_U KC_U
+#define DE_V KC_V
+#define DE_W KC_W
+#define DE_X KC_X
+
+#define DE_0 KC_0
+#define DE_1 KC_1
+#define DE_2 KC_2
+#define DE_3 KC_3
+#define DE_4 KC_4
+#define DE_5 KC_5
+#define DE_6 KC_6
+#define DE_7 KC_7
+#define DE_8 KC_8
+#define DE_9 KC_9
+
+#define DE_DOT KC_DOT
+#define DE_COMM KC_COMM
+
+#define DE_SS KC_MINS
+#define DE_ADIA KC_QUOT
+#define DE_UDIA KC_LBRC
+#define DE_ODIA KC_SCLN
+
+#define DE_CIRC KC_GRAVE // accent circumflex ^ and ring °
+#define DE_ACUT KC_EQL // accent acute ´ and grave `
+#define DE_PLUS KC_RBRC // + and * and ~
+#define DE_HASH KC_BSLS // # and '
+#define DE_LABK KC_NUBS // < and > and |
+#define DE_MINS KC_SLSH // - and _
+
+// shifted characters
+#define DE_DEG LSFT(DE_CIRC) // °
+#define DE_EXLM LSFT(KC_1) // !
+#define DE_DQUO LSFT(KC_2) // "
+#define DE_SECT LSFT(KC_3) // §
+#define DE_DLR LSFT(KC_4) // $
+#define DE_PERC LSFT(KC_5) // %
+#define DE_AMPR LSFT(KC_6) // &
+#define DE_SLSH LSFT(KC_7) // /
+#define DE_LPRN LSFT(KC_8) // (
+#define DE_RPRN LSFT(KC_9) // )
+#define DE_EQL LSFT(KC_0) // =
+#define DE_QUES LSFT(DE_SS) // ?
+#define DE_GRV LSFT(DE_ACUT) // `
+#define DE_ASTR LSFT(DE_PLUS) // *
+#define DE_QUOT LSFT(DE_HASH) // '
+#define DE_RABK LSFT(DE_LABK) // >
+#define DE_COLN LSFT(KC_DOT) // :
+#define DE_SCLN LSFT(KC_COMM) // ;
+#define DE_UNDS LSFT(DE_MINS) // _
+
+// Alt Gr-ed characters
+#define DE_SUP2 ALGR(KC_2) // ²
+#define DE_SUP3 ALGR(KC_3) // ³
+#define DE_LCBR ALGR(KC_7) // {
+#define DE_LBRC ALGR(KC_8) // [
+#define DE_RBRC ALGR(KC_9) // ]
+#define DE_RCBR ALGR(KC_0) // }
+#define DE_BSLS ALGR(DE_SS) // backslash
+#define DE_AT ALGR(KC_Q) // @
+#define DE_EURO ALGR(KC_E) // €
+#define DE_TILD ALGR(DE_PLUS) // ~
+#define DE_PIPE ALGR(DE_LABK) // |
+
+// Launchy
+#define ALT_SPC LALT(KC_SPC)
diff --git a/keyboards/xiudi/xd75/keymaps/germanized/keymap.c b/keyboards/xiudi/xd75/keymaps/germanized/keymap.c
new file mode 100644
index 0000000000..3b00a4b670
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/germanized/keymap.c
@@ -0,0 +1,86 @@
+/* Copyright 2017 Kolja Brauns
+*/
+#include QMK_KEYBOARD_H
+
+#ifndef KEYMAP_GERMAN
+#define KEYMAP_GERMAN
+
+#include "keymap.h"
+
+#endif
+
+//Tap Dance Declarations
+enum {
+ TD_ESC_RUPT = 0
+};
+
+enum {
+ TD_TAB = 1
+};
+
+//Tap Dance Definitions
+qk_tap_dance_action_t tap_dance_actions[] = {
+ //Tap once for Esc, twice Ctrl+Alt+Del
+ [TD_ESC_RUPT] = ACTION_TAP_DANCE_DOUBLE(KC_ESC, LALT(LCTL(KC_DEL))),
+ [TD_TAB] = ACTION_TAP_DANCE_DOUBLE(KC_LCTL, LGUI(KC_TAB))
+// Other declarations would go here, separated by commas, if you have them
+};
+
+//In Layer declaration, add tap dance item in place of a key code
+
+
+// Layer shorthand
+#define _QWZ 0
+#define _FNC 1
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+
+ /* QWZ
+ * .-----------------------------------------------------------------------------------------------------------------------.
+ * | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ß | ´ | BckSpc| Esc |
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ * | Tab | Q | W | E | R | T | Z | U | I | O | P | Ü | + | | PgUp |
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| Enter |-------|
+ * | Ctrl/ | A | S | D | F | G | H | J | K | L | Ö | Ä | # | | PgDn |
+ * | GUITab| | | | | | | | | | | | | | |
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ * | LShift| Y | X | C | V | B | N | M | , | . | - | ^ | Home/ | Up | End |
+ * | | | | | | | | | | | | | RShift| | |
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ * | LCtrl | LAlt | MO(1)/| Space | Backspace | MO(1)/|AltGr/ | Win | < | Del | Left | Down | Right |
+ * | | | Enter | | | TO(1) |Pause | | | | | | |
+ * °-----------------------------------------------------------------------------------------------------------------------°
+ */
+
+ [_QWZ] = LAYOUT_ortho_5x15(
+ TD(TD_ESC_RUPT), KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, DE_SS, DE_ACUT, KC_BSPC, KC_ESC,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, DE_Z, KC_U, KC_I, KC_O, KC_P, DE_UDIA, DE_PLUS, KC_NO, KC_PGUP,
+ TD(TD_TAB), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, DE_ODIA, DE_ADIA, DE_HASH, KC_ENT, KC_PGDN,
+ KC_LSFT, DE_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, DE_MINS, DE_CIRC, MT(MOD_RSFT, KC_HOME), KC_UP, KC_END,
+ KC_LCTL, KC_LALT, LT(1, KC_ENT), KC_SPC, KC_NO, KC_BSPC, KC_NO, TT(1), MT(MOD_RALT, KC_PAUS), KC_RGUI, DE_LABK, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT
+ ),
+
+ /* FNC
+ * .-----------------------------------------------------------------------------------------------------------------------.
+ * | Reset | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | _____ | _____ |
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ * | _____ | _____ | _____ |Bright+| _____ | _____ | _____ | _____ | _____ | Up | PrtSc | _____ | _____ | _____ | _____ |
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ * | _____ | _____ | _____ |RGB Tog|RGB Mod| _____ | _____ | _____ | Left | Down | Right | _____ | _____ | Play | _____ |
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ * | CpsLck| _____ | _____ |Bright-| _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | VolUp | Mute |
+ * |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ * | TO(0) | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | Prev | VolDn | Next |
+ * °-----------------------------------------------------------------------------------------------------------------------°
+*/
+ [_FNC] = LAYOUT_ortho_5x15(
+ 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_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_UP, KC_PSCR, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_MOD, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_MPLY, KC_TRNS,
+ KC_CAPS, KC_TRNS, KC_TRNS, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLU, KC_MUTE,
+ TO(0), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT
+ )
+
+};
+
diff --git a/keyboards/xiudi/xd75/keymaps/germanized/readme.md b/keyboards/xiudi/xd75/keymaps/germanized/readme.md
new file mode 100644
index 0000000000..81e98c9f70
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/germanized/readme.md
@@ -0,0 +1,83 @@
+# XD75RE
+
+Copyright 2018 Kolja Brauns
+
+### Current release: 1.7
+
+**Features**
+A keymap for German users of the XD75RE keyboard, customized to my needs. Not optimized for ten-finger typing. Some choices are due to me being a lefty.
+Designed to ease transition from staggered layouts, with the most important keys in the same positions. All German alphanumerics on main layer. Keyboard language should be set to DE in your OS.
+Lots of dual-use keys, mostly with hold/tap. See visual representation below.
+Some 2u keys, using PoS caps. If you don't have any you'll have to replace the dummy keys with the relevant keycodes.
+Full nav keys on main layer.
+Designed to be used with an additional macropad, no numpad configured.
+
+ **QWZ** - Layer 0, Default Layer. QWERTZ layout.
+
+
+ .-----------------------------------------------------------------------------------------------------------------------.
+ | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | ß | ´ | BckSpc| Esc |
+ |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ | Tab | Q | W | E | R | T | Z | U | I | O | P | Ü | + | | PgUp |
+ |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------| Enter |-------|
+ | Ctrl/ | A | S | D | F | G | H | J | K | L | Ö | Ä | # | | PgDn |
+ | GUITab| | | | | | | | | | | | | | |
+ |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ | LShift| Y | X | C | V | B | N | M | , | . | - | ^ | Home/ | Up | End |
+ | | | | | | | | | | | | | RShift| | |
+ |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ | LCtrl | LAlt | MO(1)/| Space | Backspace | MO(1)/|AltGr/ | Win | < | Del | Left | Down | Right |
+ | | | Enter | | | TO(1) |Pause | | | | | | |
+ °-----------------------------------------------------------------------------------------------------------------------°
+
+
+
+
+**FNC** - Layer 1, Function Layer. F-Keys, additional useful keys. Usually accessed temporarily, can be toggled if necessary.
+
+
+ .-----------------------------------------------------------------------------------------------------------------------.
+ | Reset | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | _____ | _____ |
+ |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ | _____ | _____ | _____ |Bright+| _____ | _____ | _____ | _____ | _____ | Up | PrtSc | _____ | _____ | _____ | _____ |
+ |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ | _____ | _____ | _____ |RGB Tog|RGB Mod| _____ | _____ | _____ | Left | Down | Right | _____ | _____ | Play | _____ |
+ |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ | CpsLck| _____ | _____ |Bright-| _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | VolUp | Mute |
+ |-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------+-------|
+ | TO(0) | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | _____ | Prev | VolDn | Next |
+ °-----------------------------------------------------------------------------------------------------------------------°
+
+
+
+*Release 1.1*
+
+Added Printscreen to second layer.
+Added shortcut to Launchy to AltGr.
+
+*Release 1.3*
+
+Now using PoS keys for 2u keys, added dummy keys accordingly (not strictly necessary since debouncing handles this, but without this you'll have double input rarely.)
+Cleaned keymap up & removed unnecessary layers.
+
+*Release 1.4*
+Fixed position of the reset key, replaced right spacebar with backspace.
+
+*Release 1.5*
+Reset moved to Esc. Removed Numpad since it wasn't getting any use. Removed random other keys on function layer that weren't getting any use or are covered by my macropad. Added RShift for held home key.
+Added secondary arrow keys on JIKL.
+
+*Release 1.6*
+Major rework and cleanup.
+Capslock removed. Caps now temporarily toggles function layer when held, Esc when tapped. LShift is Capslock when tapped. Esc is Ctrl-Alt-Del on tap.
+Left lower MO(1) is now Enter on tap. Right lower Layer(1) is now Tap-Toggle (Toggle:_Tap thrice).
+Media keys moved to nav section - Enter=Play, Up=VolUp, Down=VolDn, Left=Prev, Right=Next, End=Mute.
+Added PrintScreen on P on Layer 1.
+Added cleaner visual representation since the multi-function keys make the actual keymap messy.
+Moved old versions into folder together, only current version in root keymap directory now.
+
+*Release 1.7*
+Backspace split, includes Esc now.
+Capslock moved to function layer to keep smoother LShift operation.
+Original Caps key now Ctrl, Alt+GUI on double-tap - inspired by Android.
+Cleaned up visual representation in readme.
diff --git a/keyboards/xiudi/xd75/keymaps/germanized/rules.mk b/keyboards/xiudi/xd75/keymaps/germanized/rules.mk
new file mode 100644
index 0000000000..0b95ead09a
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/germanized/rules.mk
@@ -0,0 +1,35 @@
+# Copyright 2013 Jun Wako <wakojun@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+# QMK Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = no # Mouse keys(+4700)
+EXTRAKEY_ENABLE = yes # Audio control and System control(+450)
+CONSOLE_ENABLE = no # Console for debug(+400)
+COMMAND_ENABLE = yes # Commands for debug and configuration
+NKRO_ENABLE = yes # Nkey Rollover - if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config)
+AUDIO_ENABLE = no # Audio output on port C6
+UNICODE_ENABLE = no # Unicode
+BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID
+RGBLIGHT_ENABLE = yes # Enable WS2812 RGB underlight.
+SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
+TAP_DANCE_ENABLE = yes # Enable Tap Dancing
+
diff --git a/keyboards/xiudi/xd75/keymaps/hybrid/config.h b/keyboards/xiudi/xd75/keymaps/hybrid/config.h
new file mode 100644
index 0000000000..8aa116d993
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/hybrid/config.h
@@ -0,0 +1,20 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+#define TAPPING_TERM 170
+//#define RGBLIGHT_LAYERS
+// place overrides here
diff --git a/keyboards/xiudi/xd75/keymaps/hybrid/keymap.c b/keyboards/xiudi/xd75/keymaps/hybrid/keymap.c
new file mode 100644
index 0000000000..e8b5a3536b
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/hybrid/keymap.c
@@ -0,0 +1,310 @@
+/* Copyright 2020 Hybrid
+ *
+ * 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 layers {
+ _MAIN = 0,
+ _LY1,
+ _LY2,
+};
+
+enum {
+ TD_A,
+ TD_E,
+ TD_I,
+ TD_O,
+ TD_U,
+ TD_SLASH,
+ TD_UNDER,
+ TD_OP_ACCOL,
+ TD_CL_ACCOL,
+ TD_QUESTION,
+ TD_CEDILLE,
+ TD_DOT,
+};
+
+
+
+void dance_a_accent (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 2) {
+ tap_code (KC_0);
+ }
+ else {
+ tap_code (KC_Q);
+ }
+}
+void dance_e_accent (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 2) {
+ tap_code (KC_2);
+ }
+ else if (state->count == 3) {
+ tap_code (KC_7);
+ }
+ else {
+ tap_code (KC_E);
+ }
+}
+void dance_i_accent (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 2) {
+ tap_code (KC_NLCK);
+ register_code (KC_LALT);
+ tap_code (KC_P0);
+ tap_code (KC_P2);
+ tap_code (KC_P3);
+ tap_code (KC_P8);
+ unregister_code (KC_LALT);
+ tap_code (KC_NLCK);
+ }
+ else {
+ tap_code (KC_I);
+
+ }
+}
+void dance_o_accent (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 2) {
+ tap_code (KC_NLCK);
+ register_code (KC_LALT);
+ tap_code (KC_P0);
+ tap_code (KC_P2);
+ tap_code (KC_P4);
+ tap_code (KC_P4);
+ unregister_code (KC_LALT);
+ tap_code (KC_NLCK);
+ }
+ else {
+ tap_code (KC_O);
+ }
+}
+void dance_u_accent (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 2) {
+ tap_code (KC_NLCK);
+ register_code (KC_LALT);
+ tap_code (KC_P0);
+ tap_code (KC_P2);
+ tap_code (KC_P4);
+ tap_code (KC_P9);
+ unregister_code (KC_LALT);
+ tap_code (KC_NLCK);
+ }
+ else {
+ tap_code (KC_U);
+ }
+
+}
+void dance_slash (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 2) {
+ tap_code (KC_NLCK);
+ register_code (KC_LALT);
+ tap_code (KC_P0);
+ tap_code (KC_P9);
+ tap_code (KC_P2);
+ unregister_code (KC_LALT);
+ tap_code (KC_NLCK);
+ }
+ else {
+ tap_code (KC_PSLS);
+ }
+}
+void dance_under (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 2) {
+ tap_code (KC_NLCK);
+ register_code (KC_LALT);
+ tap_code (KC_P0);
+ tap_code (KC_P9);
+ tap_code (KC_P5);
+ unregister_code (KC_LALT);
+ tap_code (KC_NLCK);
+ }
+ else {
+ tap_code (KC_6);
+ }
+}
+void dance_open_accol (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 2) {
+ tap_code (KC_NLCK);
+ register_code (KC_LALT);
+ tap_code (KC_P0);
+ tap_code (KC_P1);
+ tap_code (KC_P2);
+ tap_code (KC_P3);
+ unregister_code (KC_LALT);
+ tap_code (KC_NLCK);
+ }
+ else if (state->count == 3) {
+ tap_code (KC_NLCK);
+ register_code (KC_LALT);
+ tap_code (KC_P0);
+ tap_code (KC_P9);
+ tap_code (KC_P1);
+ unregister_code (KC_LALT);
+ tap_code (KC_NLCK);
+ }
+ else {
+ tap_code (KC_5);
+ }
+}
+void dance_close_accol (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 2) {
+ tap_code (KC_NLCK);
+ register_code (KC_LALT);
+ tap_code (KC_P0);
+ tap_code (KC_P1);
+ tap_code (KC_P2);
+ tap_code (KC_P5);
+ unregister_code (KC_LALT);
+ tap_code (KC_NLCK);
+
+ }
+ else if (state->count == 3) {
+ tap_code (KC_NLCK);
+ register_code (KC_LALT);
+ tap_code (KC_P0);
+ tap_code (KC_P9);
+ tap_code (KC_P3);
+ unregister_code (KC_LALT);
+ tap_code (KC_NLCK);
+ }
+ else {
+ tap_code (KC_MINS);
+ }
+}
+void dance_question (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 2) {
+ tap_code (KC_NLCK);
+ register_code (KC_LALT);
+ tap_code (KC_P0);
+ tap_code (KC_P0);
+ tap_code (KC_P3);
+ tap_code (KC_P3);
+ unregister_code (KC_LALT);
+ tap_code (KC_NLCK);
+
+ }
+ else {
+ tap_code (KC_NLCK);
+ register_code (KC_LALT);
+ tap_code (KC_P0);
+ tap_code (KC_P0);
+ tap_code (KC_P6);
+ tap_code (KC_P3);
+ unregister_code (KC_LALT);
+ tap_code (KC_NLCK);
+
+ }
+}
+void dance_cedille (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 2) {
+ tap_code (KC_9);
+ }
+ else {
+ tap_code (KC_C);
+ }
+}
+void dance_dot (qk_tap_dance_state_t *state, void *user_data) {
+ if (state->count == 2) {
+ tap_code (KC_NLCK);
+ register_code (KC_LALT);
+ tap_code (KC_P0);
+ tap_code (KC_P4);
+ tap_code (KC_P4);
+ unregister_code (KC_LALT);
+ tap_code (KC_NLCK);
+ }
+ else {
+ tap_code (KC_NLCK);
+ register_code (KC_LALT);
+ tap_code (KC_P0);
+ tap_code (KC_P4);
+ tap_code (KC_P6);
+ unregister_code (KC_LALT);
+ tap_code (KC_NLCK);
+ }
+}
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [TD_A] = ACTION_TAP_DANCE_FN(dance_a_accent),
+ [TD_E] = ACTION_TAP_DANCE_FN(dance_e_accent),
+ [TD_I] = ACTION_TAP_DANCE_FN(dance_i_accent),
+ [TD_O] = ACTION_TAP_DANCE_FN(dance_o_accent),
+ [TD_U] = ACTION_TAP_DANCE_FN(dance_u_accent),
+ [TD_SLASH] = ACTION_TAP_DANCE_FN(dance_slash),
+ [TD_UNDER] = ACTION_TAP_DANCE_FN(dance_under),
+ [TD_OP_ACCOL] = ACTION_TAP_DANCE_FN(dance_open_accol),
+ [TD_CL_ACCOL] = ACTION_TAP_DANCE_FN(dance_close_accol),
+ [TD_QUESTION] = ACTION_TAP_DANCE_FN(dance_question),
+ [TD_CEDILLE] = ACTION_TAP_DANCE_FN(dance_cedille),
+ [TD_DOT] = ACTION_TAP_DANCE_FN(dance_dot),
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+// red led layout
+ [_MAIN] = LAYOUT_ortho_5x15(
+ KC_ESC, KC_RBRC, KC_1, KC_2, KC_3, KC_4, KC_5, TD(TD_DOT), KC_6, KC_7, KC_8, KC_9, KC_0, DF(_LY1), KC_NO,
+ KC_TAB, TD(TD_A), KC_W, TD(TD_E), KC_R, KC_T, KC_Y, KC_ENT, TD(TD_U), TD(TD_I), TD(TD_O), KC_P, KC_NO, TD(TD_OP_ACCOL), TD(TD_CL_ACCOL),
+ KC_PGUP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_ENT, KC_J, KC_K, KC_L, KC_SCLN, KC_UP, KC_NO, KC_NO,
+ KC_PGDN, KC_Z, KC_X, TD(TD_CEDILLE), KC_V, KC_B, KC_N, KC_DOT, TD(TD_QUESTION), TD(TD_UNDER), TD(TD_SLASH), KC_LEFT, KC_DOWN, KC_RGHT, KC_NO,
+ KC_NO, KC_NO, KC_LALT, KC_LCTL, KC_LSFT, KC_SPC, KC_HOME, KC_LGUI, KC_END, KC_BSPC, KC_RALT, KC_DEL, KC_PMNS, KC_NO, MO(1)
+ ),
+
+// green led layout
+ [_LY1] = LAYOUT_ortho_5x15(
+ KC_ESC, RGB_TOG, RGB_RMOD, RGB_M_P, RGB_M_B, RGB_M_SW, RGB_M_K, RGB_M_G, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, DF(_LY2), DF(_MAIN),
+ DEBUG, KC_PSCR, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_NLCK, KC_PSLS, KC_PAST, KC_PMNS,
+ RESET, KC_NO, KC_S, KC_D, KC_F, KC_G, KC_Z, KC_J, KC_K, KC_L, KC_M, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_LSFT,
+ KC_NO, KC_X, KC_C, KC_V, KC_B, KC_N, KC_COMM, KC_SCLN, KC_NO, KC_NO, KC_P4, KC_P5, KC_P6, KC_PEQL, KC_LCBR,
+ KC_NO, KC_NO, KC_NO, KC_SPC, KC_SPC, KC_SPC, KC_TRNS, KC_NO, KC_TRNS, KC_P0, KC_P1, KC_P2, KC_P3, KC_TRNS
+ ),
+
+// blue led layout
+ [_LY2] = LAYOUT_ortho_5x15(
+ KC_MPRV, KC_MNXT, KC_NO, KC_NO, KC_NO, BL_ON, BL_OFF, KC_NO, KC_NO, KC_NO, RGB_TOG, RGB_RMOD, RGB_MOD, KC_NO, DF(_LY1),
+ KC_VOLD, KC_VOLU, KC_NO, KC_NO, KC_NO, BL_TOGG, BL_STEP, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUD, RGB_HUI, RGB_M_P, RGB_M_B,
+ KC_MPLY, KC_MSTP, KC_MUTE, KC_NO, KC_NO, BL_DEC, BL_INC, KC_NO, KC_NO, KC_NO, KC_NO, RGB_SAD, RGB_SAI, RGB_M_R, RGB_M_SW,
+ KC_MRWD, KC_MFFD, KC_NO, KC_NO, KC_NO, BL_BRTG, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_VAD, RGB_VAI, RGB_M_SN, RGB_M_K,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_NO, KC_NO, RGB_SPD, RGB_SPI, RGB_M_X, RGB_M_G
+ )
+
+};
+
+
+//Define layer colors
+#define rgblight_setrgb_user_MAIN() rgblight_sethsv_red()
+#define rgblight_setrgb_user_LY1() rgblight_sethsv_green()
+#define rgblight_setrgb_user_LY2() rgblight_sethsv_blue()
+
+void matrix_init_user(void) {
+ rgblight_enable();
+ rgblight_mode(1);
+ rgblight_setrgb_user_MAIN();
+}
+
+
+//Set a color based on the layer
+layer_state_t layer_state_set_user(layer_state_t state) {
+ switch (get_highest_layer(state)) {
+ case _LY1:
+ rgblight_setrgb_user_LY1();
+ break;
+ case _LY2:
+ rgblight_setrgb_user_LY2();
+ break;
+ default:
+ rgblight_setrgb_user_MAIN();
+ break;
+ }
+ return state;
+}
diff --git a/keyboards/xiudi/xd75/keymaps/hybrid/readme.md b/keyboards/xiudi/xd75/keymaps/hybrid/readme.md
new file mode 100644
index 0000000000..dbe41037c2
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/hybrid/readme.md
@@ -0,0 +1,13 @@
+#
+# My XD75 keyboard
+# The layouts are 100 % customizable by myself.
+# The layout 1 is almost finished (layer 2 and layer 3 are not finished, for testing purpose as far)
+# Layout 1 => rgb red
+# Layout 2 => rgb green
+# Layout 1 => rgb blue
+# (to memorize => rgb :) )
+#
+# I added some double tap dance for french accent (à é è î ô ù, not for every accents) and c & ç
+# Some double tap dance for useful mapping (- & _ , ({[ & )}], etc... )
+#
+#
diff --git a/keyboards/xiudi/xd75/keymaps/hybrid/rules.mk b/keyboards/xiudi/xd75/keymaps/hybrid/rules.mk
new file mode 100644
index 0000000000..403c3c65ce
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/hybrid/rules.mk
@@ -0,0 +1,21 @@
+# Copyright 2013 Jun Wako <wakojun@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+RGBLIGHT_ENABLE = yes
+TAP_DANCE_ENABLE = yes
+UNICODE_ENABLE = no
+SLEEP_LED_ENABLE = no
+BACKLIGHT_ENABLE = no
+
diff --git a/keyboards/xiudi/xd75/keymaps/jarred/keymap.c b/keyboards/xiudi/xd75/keymaps/jarred/keymap.c
new file mode 100644
index 0000000000..a875165078
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/jarred/keymap.c
@@ -0,0 +1,37 @@
+#include QMK_KEYBOARD_H
+
+#define _QW 0
+#define _LW 1
+#define _NV 2
+#define _NM 3
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QW] = LAYOUT_ortho_5x15(
+ KC_ESC , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_MUTE, KC_VOLD, KC_VOLU, 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_INS , KC_HOME, KC_PGUP, KC_Y , KC_U , KC_I , KC_O , KC_P , KC_BSPC,
+ MO(_NV), KC_A , KC_S , KC_D , KC_F , KC_G , KC_DEL , KC_END , KC_PGDN, 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_UP , _______, KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, MO(_NM), KC_LALT, MO(_LW), KC_SPC , KC_LEFT, KC_DOWN, KC_RGHT, KC_ENT , MO(_LW), KC_RALT, KC_RGUI, KC_APP , KC_RCTL
+ ),
+ [_LW] = 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_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , _______, _______, _______, KC_F11 , KC_MINS, KC_EQL , KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , _______, _______, _______, KC_F12 , KC_GRV , _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_NV] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, KC_DEL , KC_BSPC, _______, _______, _______, _______, KC_HOME, KC_UP , KC_END , KC_INS , _______,
+ _______, _______, _______, KC_LSFT, KC_LCTL, KC_ENT , _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_PGDN, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_NM] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_SAI, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______,
+ RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/xiudi/xd75/keymaps/jarred/readme.md b/keyboards/xiudi/xd75/keymaps/jarred/readme.md
new file mode 100644
index 0000000000..4070bb3eed
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/jarred/readme.md
@@ -0,0 +1 @@
+# Jarreds xd75 keymap
diff --git a/keyboards/xiudi/xd75/keymaps/kim-kim-xd73/config.h b/keyboards/xiudi/xd75/keymaps/kim-kim-xd73/config.h
new file mode 100644
index 0000000000..0c8015e227
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/kim-kim-xd73/config.h
@@ -0,0 +1,20 @@
+/* Copyright 2017 REPLACE_WITH_YOUR_NAME
+ *
+ * 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
+#undef BACKLIGHT_BREATHING
diff --git a/keyboards/xiudi/xd75/keymaps/kim-kim-xd73/keymap.c b/keyboards/xiudi/xd75/keymaps/kim-kim-xd73/keymap.c
new file mode 100644
index 0000000000..fdcc47cabe
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/kim-kim-xd73/keymap.c
@@ -0,0 +1,117 @@
+/* Copyright 2017 Lukmanul Hakim
+ *
+ * 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
+
+// Fillers to make layering more clear
+#define ___T___ KC_TRNS
+
+// Layer shorthand
+#define _QW 0
+#define _LW 1
+#define _RS 2
+#define _RT 3
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* SPLIT QWERTY
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | 1 | 2 | 3 | 4 | 5 | NUM/ | NUM* | NUM- | 6 | 7 | 8 | 9 | 0 | ` |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | Q | W | E | R | T | NUM7 | NUM8 | NUM9 | Y | U | I | O | P | BSPACE |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | LCTRL | A | S | D | F | G | NUM4 | NUM5 | NUM6 | H | J | K | L | ; | ENTER |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | NUM1 | NUM2 | NUM3 | N | M | < | > | / | RSHIFT |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | LALT | RAISE | LGUI | SPACE | SPACE | NUM+ | NUM0 | NUM. | SPACE | SPACE | RGUI | LOWER | RALT | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_QW] = LAYOUT_ortho_5x15( /* SPLIT QWERTY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_PSLS, KC_PAST, KC_PMNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P7, KC_P8, KC_P9, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_P4, KC_P5, KC_P6, 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_P1, KC_P2, KC_P3, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
+ _______, KC_LALT, MO(_RS), KC_LGUI, KC_SPC, KC_SPC, KC_PPLS, KC_P0, KC_PDOT, KC_SPC, KC_SPC, KC_RGUI, MO(_LW), KC_RALT, _______
+ ),
+
+/* LOWERED
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F11 | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | | PREV | NEXT | VOLUP | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | | PLAY | STOP | VOLDWN | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | | | | MUTE | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | | | | | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_LW] = LAYOUT_ortho_5x15( /* LOWERED */
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_MPRV, KC_MNXT, KC_VOLU, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_MPLY, KC_MSTP, KC_VOLD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, MO(_RT), MO(_RT), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+/* RAISED
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | F12 | F6 | F7 | F8 | F9 | F10 | DELETE |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | | | | | | | | | PRTSCR | | [ | ] | - | = | \ |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | | | | | | | | | BACKL+ | | LEFT | DOWN | UP | RIGHT | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | | | | | | | | | BACKL- | | HOME | PGDN | PGUP | END | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | | | | | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_RS] = LAYOUT_ortho_5x15( /* RAISED */
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_BSLS,
+ _______, _______, _______, _______, _______, _______, _______, _______, BL_INC, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(_RT), MO(_RT), _______
+ ),
+
+/* RESET
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | | | | | | | | RESET | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | | | | | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_RT] = LAYOUT_ortho_5x15( /* RESET */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+
+};
diff --git a/keyboards/xiudi/xd75/keymaps/kim-kim-xd73/rules.mk b/keyboards/xiudi/xd75/keymaps/kim-kim-xd73/rules.mk
new file mode 100644
index 0000000000..4c894d7973
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/kim-kim-xd73/rules.mk
@@ -0,0 +1,22 @@
+# Copyright 2013 Jun Wako <wakojun@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+# QMK Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+
diff --git a/keyboards/xiudi/xd75/keymaps/kim-kim/config.h b/keyboards/xiudi/xd75/keymaps/kim-kim/config.h
new file mode 100644
index 0000000000..0c8015e227
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/kim-kim/config.h
@@ -0,0 +1,20 @@
+/* Copyright 2017 REPLACE_WITH_YOUR_NAME
+ *
+ * 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
+#undef BACKLIGHT_BREATHING
diff --git a/keyboards/xiudi/xd75/keymaps/kim-kim/keymap.c b/keyboards/xiudi/xd75/keymaps/kim-kim/keymap.c
new file mode 100644
index 0000000000..486a3743a4
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/kim-kim/keymap.c
@@ -0,0 +1,117 @@
+/* Copyright 2017 Lukmanul Hakim
+ *
+ * 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
+
+// Fillers to make layering more clear
+#define ___T___ KC_TRNS
+
+// Layer shorthand
+#define _QW 0
+#define _LW 1
+#define _RS 2
+#define _RT 3
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* SPLIT QWERTY
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | 1 | 2 | 3 | 4 | 5 | NUM/ | NUM* | NUM- | 6 | 7 | 8 | 9 | 0 | ` |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | Q | W | E | R | T | NUM7 | NUM8 | NUM9 | Y | U | I | O | P | BSPACE |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | LCTRL | A | S | D | F | G | NUM4 | NUM5 | NUM6 | H | J | K | L | ; | ENTER |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | NUM1 | NUM2 | NUM3 | N | M | < | > | / | RSHIFT |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LALT | RAISE | RAISE | LGUI | SPACE | SPACE | NUM+ | NUM0 | NUM. | SPACE | SPACE | RGUI | LOWER | LOWER | RALT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_QW] = LAYOUT_ortho_5x15( /* SPLIT QWERTY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_PSLS, KC_PAST, KC_PMNS, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_P7, KC_P8, KC_P9, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_P4, KC_P5, KC_P6, 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_P1, KC_P2, KC_P3, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
+ KC_LALT, MO(_RS), MO(_RS), KC_LGUI, KC_SPC, KC_SPC, KC_PPLS, KC_P0, KC_PDOT, KC_SPC, KC_SPC, KC_RGUI, MO(_LW), MO(_LW), KC_RALT
+ ),
+
+/* LOWERED
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F11 | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | | PREV | NEXT | VOLUP | | | RGBTOG | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | | PLAY | STOP | VOLDWN | | | RGBMOD | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | | | | MUTE | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | | | | | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_LW] = LAYOUT_ortho_5x15( /* LOWERED */
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F11, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_MPRV, KC_MNXT, KC_VOLU, _______, _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, KC_MPLY, KC_MSTP, KC_VOLD, _______, _______, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, KC_MUTE, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, MO(_RT), MO(_RT), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+/* RAISED
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | F12 | F6 | F7 | F8 | F9 | F10 | DELETE |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | | | | | | | | | PRTSCR | | [ | ] | - | = | \ |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | | | | | | | | | BACKL+ | | LEFT | DOWN | UP | RIGHT | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | | | | | | | | | BACKL- | | HOME | PGDN | PGUP | END | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | | | | | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_RS] = LAYOUT_ortho_5x15( /* RAISED */
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_F12, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
+ _______, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, _______, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_BSLS
+ _______, _______, _______, _______, _______, _______, _______, _______, BL_INC, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, BL_DEC, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, MO(_RT), MO(_RT), _______
+ ),
+
+/* RESET
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | | | | | | | | RESET | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | | | | | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_RT] = LAYOUT_ortho_5x15( /* RESET */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, RESET, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+
+};
diff --git a/keyboards/xiudi/xd75/keymaps/kim-kim/rules.mk b/keyboards/xiudi/xd75/keymaps/kim-kim/rules.mk
new file mode 100644
index 0000000000..4c894d7973
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/kim-kim/rules.mk
@@ -0,0 +1,22 @@
+# Copyright 2013 Jun Wako <wakojun@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+# QMK Build Options
+# change to "no" to disable the options, or define them in the Makefile in
+# the appropriate keymap folder that will get included automatically
+#
+BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality
+
diff --git a/keyboards/xiudi/xd75/keymaps/kloki/config.h b/keyboards/xiudi/xd75/keymaps/kloki/config.h
new file mode 100644
index 0000000000..e6975da8a2
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/kloki/config.h
@@ -0,0 +1,19 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+// place overrides here
diff --git a/keyboards/xiudi/xd75/keymaps/kloki/keymap.c b/keyboards/xiudi/xd75/keymaps/kloki/keymap.c
new file mode 100644
index 0000000000..a630019347
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/kloki/keymap.c
@@ -0,0 +1,148 @@
+/* Copyright 2017 Wunder
+ *
+ * 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
+
+// Layer shorthand
+#define _WO 0
+#define _QW 1
+#define _NUM 2
+#define _SYM 3
+#define _FUN 4
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+
+ [_WO] = LAYOUT_ortho_5x15( /* WORKMAN */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, MO(_FUN),TG(_NUM),TG(_QW),KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ KC_TAB, KC_Q, KC_D, KC_R, KC_W, KC_B, KC_GRV, KC_LGUI, KC_QUOT, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_BSLS,
+ CTL_T(KC_ESC),KC_A,KC_S, KC_H, KC_T, KC_G, KC_EQL, KC_UP, KC_MINS, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_ENT,
+ KC_LSFT, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_LEFT, KC_DOWN, KC_RGHT, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_MEH,KC_LGUI,KC_LALT,KC_LEFT,KC_RGHT,LT(_SYM,KC_SPC),LGUI_T(KC_ENT),KC_SPC,LT(_SYM,KC_TAB),KC_BSPC,KC_DOWN,KC_UP,KC_LBRC,KC_RBRC,MO(_SYM)
+ ),
+
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+ _______, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
+ _______, KC_Q, KC_W, KC_E, KC_R, KC_T, _______, _______, _______, KC_Y, KC_U, KC_I, KC_O, KC_P, _______,
+ _______, KC_A, KC_S, KC_D, KC_F, KC_G, _______, _______, _______, KC_H, KC_J, KC_K, KC_L, KC_SCLN, _______,
+ _______, KC_Z, KC_X, KC_C, KC_V, KC_B, _______, _______, _______, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, _______,
+ _______, _______, _______, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______
+ ),//
+
+ [_NUM] = LAYOUT_ortho_5x15( /* NUM */
+ _______, _______, _______, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______,
+ _______, _______, _______, _______, _______,_______,KC_7, KC_8, KC_9, _______,_______,_______, _______, _______, _______,
+ _______, _______, _______, _______, _______,_______,KC_4, KC_5, KC_6, _______,_______,_______, _______, _______, _______,
+ _______, _______, _______, _______, _______,_______,KC_1, KC_2, KC_3, _______,_______,_______, _______, _______, _______,
+ _______, _______, _______, _______, _______,_______,_______, KC_0, _______, _______,_______,_______, _______, _______, _______
+ ),
+ [_SYM] = LAYOUT_ortho_5x15( /* SYM */
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
+ _______, KC_EXLM, KC_AT, KC_LCBR, KC_RCBR,KC_ASTR,_______, KC_F11, KC_F12, KC_LABK,KC_HOME,KC_UP, KC_PGUP, KC_ASTR, _______,
+ _______, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN,KC_GRV, _______, _______, _______, KC_RABK,KC_LEFT,KC_DOWN, KC_RIGHT,KC_PLUS, _______,
+ _______, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC,KC_TILD,_______, _______, _______, KC_AMPR,KC_END, KC_DOWN, KC_PGDN, KC_BSLS, _______,
+ _______, _______, _______, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______
+ ),
+ [_FUN] = LAYOUT_ortho_5x15( /* FUN */
+ _______, RGB_RMOD,RGB_MOD, RGB_TOG, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, RESET,
+ _______, RGB_HUD, RGB_HUI, RGB_MODE_PLAIN, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______,
+ _______, RGB_SAD, RGB_SAI, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______,
+ _______, RGB_VAD, RGB_VAI, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______,
+ _______, _______, _______, _______, _______,_______,_______, _______, _______, _______,_______,_______, _______, _______, _______
+ )
+};
+
+bool CTRLDOWN = false;
+bool WINDOWN = false;
+bool SHIFTDOWN = false;
+void matrix_scan_user(void) {
+
+ uint8_t layer = biton32(layer_state);
+
+ switch (layer) {
+ case 0:
+ rgblight_setrgb(0,240, 255);
+ break;
+ case 1:
+ rgblight_setrgb(0,255, 100);
+ break;
+ case 2:
+ rgblight_setrgb(10,255, 0);
+ break;
+ case 3:
+ rgblight_setrgb(255,0, 85);
+ break;
+ case 4:
+ rgblight_setrgb(240,255, 0);
+ break;
+ default:
+ // none
+ break;
+ }
+ if ( SHIFTDOWN) {
+ rgblight_setrgb(255,255, 255);
+ }
+ if ( CTRLDOWN) {
+ rgblight_setrgb(240,255, 0);
+ }
+ if ( WINDOWN) {
+ rgblight_setrgb(255,255, 255);
+ }
+
+
+
+};
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case KC_LGUI:
+ if (record->event.pressed) {
+ WINDOWN = true;
+ } else {
+ WINDOWN = false;
+ }
+ return true;
+ case LGUI_T(KC_ENT):
+ if (record->event.pressed) {
+ WINDOWN = true;
+ } else {
+ WINDOWN = false;
+ }
+ return true;
+ case CTL_T(KC_ESC):
+ if (record->event.pressed) {
+ CTRLDOWN = true;
+ } else {
+ CTRLDOWN = false;
+ }
+ return true;
+ case KC_LSFT:
+ if (record->event.pressed) {
+ SHIFTDOWN = true;
+ } else {
+ SHIFTDOWN = false;
+ }
+ return true;
+ case KC_RSFT:
+ if (record->event.pressed) {
+ SHIFTDOWN = true;
+ } else {
+ SHIFTDOWN = false;
+ }
+ return true;
+ default:
+ return true; // Process all other keycodes normally
+ }
+};
diff --git a/keyboards/xiudi/xd75/keymaps/kloki/readme.md b/keyboards/xiudi/xd75/keymaps/kloki/readme.md
new file mode 100644
index 0000000000..1896b64456
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/kloki/readme.md
@@ -0,0 +1,7 @@
+# Kloki's xd75 layout
+
+-workman
+-qwerty layer
+-num layer
+-overloaded modifier
+-a lot of duplicated keys to make common shortcuts work \ No newline at end of file
diff --git a/keyboards/xiudi/xd75/keymaps/kloki/rules.mk b/keyboards/xiudi/xd75/keymaps/kloki/rules.mk
new file mode 100644
index 0000000000..52a8f38d45
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/kloki/rules.mk
@@ -0,0 +1,15 @@
+# Copyright 2013 Jun Wako <wakojun@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
diff --git a/keyboards/xiudi/xd75/keymaps/markus/config.h b/keyboards/xiudi/xd75/keymaps/markus/config.h
new file mode 100644
index 0000000000..a3e1631715
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/markus/config.h
@@ -0,0 +1,48 @@
+/* Copyright 2019 Markus Weimar
+ *
+ * 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
+
+// Mouse keys (accelerated)
+//#define MOUSEKEY_MOVE_DELTA 1
+//#define MOUSEKEY_WHEEL_DELTA 1
+//#define MOUSEKEY_DELAY 90
+//#define MOUSEKEY_INTERVAL 16
+//#define MOUSEKEY_MAX_SPEED 20
+//#define MOUSEKEY_TIME_TO_MAX 0
+//#define MOUSEKEY_WHEEL_MAX_SPEED 1
+//#define MOUSEKEY_WHEEL_TIME_TO_MAX 0
+// Mouse keys (constant)
+#define MK_3_SPEED
+#define MK_MOMENTARY_ACCEL
+#define MK_C_OFFSET_UNMOD 18
+#define MK_C_INTERVAL_UNMOD 16
+#define MK_C_OFFSET_0 2
+#define MK_C_INTERVAL_0 16
+#define MK_C_OFFSET_1 6
+#define MK_C_INTERVAL_1 16
+#define MK_C_OFFSET_2 36
+#define MK_C_INTERVAL_2 16
+#define MK_W_OFFSET_UNMOD 1
+#define MK_W_INTERVAL_UNMOD 40
+#define MK_W_OFFSET_0 1
+#define MK_W_INTERVAL_0 360
+#define MK_W_OFFSET_1 1
+#define MK_W_INTERVAL_1 120
+#define MK_W_OFFSET_2 1
+#define MK_W_INTERVAL_2 20
diff --git a/keyboards/xiudi/xd75/keymaps/markus/keymap.c b/keyboards/xiudi/xd75/keymaps/markus/keymap.c
new file mode 100644
index 0000000000..ddef0e59b8
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/markus/keymap.c
@@ -0,0 +1,215 @@
+/* Copyright 2019 Markus Weimar
+ *
+ * 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
+#include "keymap_german.h"
+
+#define ________ KC_TRNS
+#define ___xx___ KC_NO
+
+enum my_layers {
+ _QWZ,
+ _QWY,
+ _GAM,
+ _FN1,
+ _FN2,
+ _FN3,
+};
+
+enum my_keycodes {
+ QWERTZ = SAFE_RANGE,
+ QWERTY,
+ GAMING,
+ FN1,
+ FN2,
+ FN3
+};
+
+enum my_ucis {
+ UNI_LNX,
+ UNI_MAC,
+ UNI_WIN,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* QWERTZ
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | 1 ! | 2 " | 3 § | 4 $ | 5 % | 6 & | Mute | Vol- | Vol+ | 7 / | 8 ( | 9 ) | 0 = | ẞ ? | Ü |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | Esc | Q | W | E | R | T | Home | Play | End | Z | U | I | O | P | Ä |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | LShift | A | S | D | F | G | Pg Up | Up | Pg Dn | H | J | K | L | Ö | RShift |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | LCtrl | Y | X | C | V | B | Left | Down | Right | N | M | , ; | . : | - _ | RCtrl |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | Caps | Fn3 | LGUI | LAlt | Fn2 | Fn1 | Tab | Del | Enter | Space | Bksp | LAlt | LGUI | Fn3 | Ins |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+[_QWZ] = LAYOUT_ortho_5x15(
+DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, KC_MUTE, KC_VOLD, KC_VOLU, DE_7, DE_8, DE_9, DE_0, DE_SS, DE_UDIA,
+KC_ESC, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_HOME, KC_MPLY, KC_END, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_ADIA,
+KC_LSFT, DE_A, DE_S, DE_D, DE_F, DE_G, KC_PGUP, KC_UP, KC_PGDN, DE_H, DE_J, DE_K, DE_L, DE_ODIA, KC_RSFT,
+KC_LCTL, DE_Y, DE_X, DE_C, DE_V, DE_B, KC_LEFT, KC_DOWN, KC_RIGHT, DE_N, DE_M, DE_COMM, DE_DOT, DE_MINS, KC_RCTL,
+KC_CAPS, MO(_FN3), KC_LGUI, KC_LALT, MO(_FN2), MO(_FN1), KC_TAB, KC_DEL, KC_ENT, KC_SPC, KC_BSPC, KC_LALT, KC_LGUI, MO(_FN3), KC_INS
+),
+
+/* QWERTY
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | Y | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | Z | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+[_QWY] = LAYOUT_ortho_5x15(
+DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, KC_MUTE, KC_VOLD, KC_VOLU, DE_7, DE_8, DE_9, DE_0, DE_SS, DE_UDIA,
+KC_ESC, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_HOME, KC_MPLY, KC_END, DE_Y, DE_U, DE_I, DE_O, DE_P, DE_ADIA,
+KC_LSFT, DE_A, DE_S, DE_D, DE_F, DE_G, KC_PGUP, KC_UP, KC_PGDN, DE_H, DE_J, DE_K, DE_L, DE_ODIA, KC_RSFT,
+KC_LCTL, DE_Z, DE_X, DE_C, DE_V, DE_B, KC_LEFT, KC_DOWN, KC_RIGHT, DE_N, DE_M, DE_COMM, DE_DOT, DE_MINS, KC_RCTL,
+KC_CAPS, MO(_FN3), KC_LGUI, KC_LALT, MO(_FN2), MO(_FN1), KC_TAB, KC_DEL, KC_ENT, KC_SPC, KC_BSPC, KC_LALT, KC_LGUI, MO(_FN3), KC_INS
+),
+
+/* GAMING
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | Y | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | Z | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | Fn2 | | | | Space | | | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+[_GAM] = LAYOUT_ortho_5x15(
+DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, KC_MUTE, KC_VOLD, KC_VOLU, DE_7, DE_8, DE_9, DE_0, DE_SS, DE_UDIA,
+KC_ESC, DE_Q, DE_W, DE_E, DE_R, DE_T, KC_HOME, KC_MPLY, KC_END, DE_Y, DE_U, DE_I, DE_O, DE_P, DE_ADIA,
+KC_LSFT, DE_A, DE_S, DE_D, DE_F, DE_G, KC_PGUP, KC_UP, KC_PGDN, DE_H, DE_J, DE_K, DE_L, DE_ODIA, KC_RSFT,
+KC_LCTL, DE_Z, DE_X, DE_C, DE_V, DE_B, KC_LEFT, KC_DOWN, KC_RIGHT, DE_N, DE_M, DE_COMM, DE_DOT, DE_MINS, KC_RCTL,
+MO(_FN2), MO(_FN3), KC_LGUI, KC_LALT, KC_SPC, MO(_FN1), KC_TAB, KC_DEL, KC_ENT, KC_SPC, KC_BSPC, KC_LALT, KC_LGUI, MO(_FN3), KC_INS
+),
+
+/* FN1
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | F1 | F2 | F3 | F4 | F5 | F6 | Prev | Play | Next | F7 | F8 | F9 | F10 | F11 | F12 |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | @ | ~ | € | ´ | ` | | | | \ | { | } | + | * | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | " | ' | ‚ | ‘ | ’ | | | | | | [ | ] | ! | ? | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | ° | ^ | „ | “ | ” | | | | # | < | > | … | – EN | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+[_FN1] = LAYOUT_ortho_5x15(
+KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_MPRV, KC_MPLY, KC_MNXT, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+________, DE_AT, DE_TILD, DE_EURO, DE_ACUT, DE_GRV, ________, ___xx___, ________, DE_BSLS, DE_LCBR, DE_RCBR, DE_PLUS, DE_ASTR, ___xx___,
+________, DE_DQUO, DE_QUOT, UC(L'‚'), UC(L'‘'), UC(L'’'), ________, ________, ________, DE_PIPE, DE_LBRC, DE_RBRC, DE_EXLM, DE_QUES, ________,
+________, DE_DEG, DE_CIRC, UC(L'„'), UC(L'“'), UC(L'”'), ________, ________, ________, DE_HASH, DE_LABK, DE_RABK, UC(L'…'), UC(L'–'), ________,
+___xx___, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________, ________
+),
+
+/* FN2
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | | | | % | ( | ) | P/ | P* | P- | Print | Scroll | Pause | ẞ | − MNS |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | Mute | Vol- | Vol+ | Bspc | P7 | P8 | P9 | P+ | WH_U | MS_U | WH_D | × | ÷ |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | App | ACL2 | ACL1 | ACL0 | Space | P4 | P5 | P6 | WH_L | MS_L | MS_D | MS_R | WH_R | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | Prev | Play | Next | Tab | P1 | P2 | P3 | PEnter | BTN1 | BTN2 | BTN3 | — EM | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | Fn2 | | | | | PEnter | P0 | . : | P, | BTN1 | BTN2 | BTN3 | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+[_FN2] = LAYOUT_ortho_5x15(
+___xx___, ___xx___, ___xx___, ___xx___, DE_PERC, DE_LPRN, DE_RPRN, KC_PSLS, KC_PAST, KC_PMNS, KC_PSCR, KC_LSCR, KC_PAUS, UC(L'ẞ'), UC(L'−'),
+________, ___xx___, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSPC, KC_P7, KC_P8, KC_P9, KC_PPLS, KC_WH_U, KC_MS_U, KC_WH_D, UC(L'×'), UC(L'÷'),
+________, KC_APP, KC_ACL2, KC_ACL1, KC_ACL0, KC_SPC, KC_P4, KC_P5, KC_P6, KC_WH_L, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_R, ________,
+________, ___xx___, KC_MPRV, KC_MPLY, KC_MNXT, KC_TAB, KC_P1, KC_P2, KC_P3, KC_PENT, KC_BTN1, KC_BTN2, KC_BTN3, UC(L'—'), ________,
+MO(_FN2), ________, ________, ________, ________, KC_PENT, KC_P0, DE_DOT, KC_PDOT, KC_BTN1, KC_BTN2, KC_BTN3, ________, ________, ________
+),
+
+/* FN3
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | F13 | F14 | F15 | F16 | F17 | F18 | U LNX | U WIN | U MAC | F19 | F20 | F21 | F22 | F23 | F24 |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | QWERTZ | QWERTY | GAMING | | | L TOG | L MP | L MOD | | Pg Up | Up | Pg Dn | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | › | ‹ | | L HUI | L SAI | L VAI | Home | Left | Down | Right | End | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | » | « | | L HUD | L SAD | L VAD | NumSp | ThinSp | NaNbSp | NbSp | NbHyph | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | | Reset | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+[_FN3] = LAYOUT_ortho_5x15(
+KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, UNI_LNX, UNI_WIN, UNI_MAC, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24,
+________, QWERTZ, QWERTY, GAMING, ___xx___, ___xx___, RGB_TOG, RGB_M_P, RGB_MOD, ___xx___, KC_PGUP, KC_UP, KC_PGDN, ___xx___, ___xx___,
+________, ___xx___, ___xx___, UC(L'›'), UC(L'‹'), ___xx___, RGB_HUI, RGB_SAI, RGB_VAI, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, ________,
+________, ___xx___, ___xx___, UC(L'»'), UC(L'«'), ___xx___, RGB_HUD, RGB_SAD, RGB_VAD, UC(L' '), UC(L' '), UC(L' '), UC(L' '), UC(L'‑'), ________,
+___xx___, ________, ________, ________, ________, ________, ________, RESET, ________, ________, ________, ________, ________, ________, ________
+)
+
+};
+
+void matrix_init_user(){
+ set_unicode_input_mode(UC_LNX);
+}
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch(keycode) {
+ case QWERTZ:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWZ);
+ }
+ return false;
+ break;
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWY);
+ }
+ return false;
+ break;
+ case GAMING:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_GAM);
+ }
+ return false;
+ break;
+ case UNI_LNX:
+ set_unicode_input_mode(UC_LNX);
+ return false;
+ break;
+ case UNI_WIN:
+ set_unicode_input_mode(UC_WINC);
+ return false;
+ break;
+ case UNI_MAC:
+ set_unicode_input_mode(UC_OSX);
+ return false;
+ break;
+ }
+ return true;
+}
diff --git a/keyboards/xiudi/xd75/keymaps/markus/readme.md b/keyboards/xiudi/xd75/keymaps/markus/readme.md
new file mode 100644
index 0000000000..fc5959bcdc
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/markus/readme.md
@@ -0,0 +1,16 @@
+# XD75 keymap
+
+This keymap has three base layers (QWERTZ, QWERTY, Gaming) and three function layers (Fn1, Fn2, Fn3).
+
+QWERTY is identical to QWERTZ, except `z` and `y` are swapped.
+
+Gaming is a modified QWERTY layer for left-hand usage.
+
+The function layers contain:
+
+* Symbols
+* Unicode characters (e.g. dashes, figure space, non-breaking space and hyphen)
+* Unicode input mode switches
+* Numpad
+* Function keys
+* Media, mouse and LED controls
diff --git a/keyboards/xiudi/xd75/keymaps/markus/rules.mk b/keyboards/xiudi/xd75/keymaps/markus/rules.mk
new file mode 100644
index 0000000000..f2552d2fa8
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/markus/rules.mk
@@ -0,0 +1,13 @@
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes
+EXTRAKEY_ENABLE = yes
+CONSOLE_ENABLE = no
+COMMAND_ENABLE = no
+NKRO_ENABLE = yes
+BACKLIGHT_ENABLE = no
+MIDI_ENABLE = no
+AUDIO_ENABLE = no
+UNICODE_ENABLE = yes
+BLUETOOTH_ENABLE = no
+RGBLIGHT_ENABLE = yes
+SLEEP_LED_ENABLE = no
diff --git a/keyboards/xiudi/xd75/keymaps/msiu/config.h b/keyboards/xiudi/xd75/keymaps/msiu/config.h
new file mode 100644
index 0000000000..4fbd59becc
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/msiu/config.h
@@ -0,0 +1,18 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+// place overrides here
diff --git a/keyboards/xiudi/xd75/keymaps/msiu/keymap.c b/keyboards/xiudi/xd75/keymaps/msiu/keymap.c
new file mode 100644
index 0000000000..d1a4154ec1
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/msiu/keymap.c
@@ -0,0 +1,120 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+
+/* What this layout is: QWERTY layout with the standard 40% layers. For easy
+ * switching between my xd75 and contra
+ */
+
+#include QMK_KEYBOARD_H
+
+// Layer shorthand
+#define _QW 0
+#define _DV 1
+#define _LW 2
+#define _RS 3
+#define _FN 4
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* QWERTY
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ` | 1 | 2 | 3 | 4 | 5 | - | = | \ | 6 | 7 | 8 | 9 | 0 | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | TAB | Q | W | E | R | T | 7 | 8 | 9 | Y | U | I | O | P | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | ESC | A | S | D | F | G | 4 | 5 | 6 | H | J | K | L | ; | ' |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | LSHIFT | Z | X | C | V | B | 1 | 2 | 3 | N | M | , | . | / | ENTER |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LCTRL | HYPER | LALT | LGUI | LOWER | FN | 0 | | . | SPACE | RAISE | LEFT | DOWN | UP | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_PLUS, KC_MINS, KC_ASTR, 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_7, KC_8, KC_9 , KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL,
+ LCTL_T(KC_ESC), KC_A, KC_S, KC_D, KC_F, KC_G, KC_4, KC_5, KC_6 , 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_1, KC_2, KC_3 , KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ENT,
+ KC_LCTL, KC_HYPR, KC_LALT, KC_LGUI, MO(_LW), MO(_FN), KC_0, _______, KC_DOT , KC_SPC, MO(_RS), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ ),
+
+ /* Dvorak */
+
+ [_DV] = LAYOUT_ortho_5x15( /* Dvorak */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, 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, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+
+/* LOWERED
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | DEL |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | ~ | ! | @ | # | $ | % | | VOLU | | ^ | & | * | ( | ) | DEL |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | F1 | F2 | F3 | F4 | F5 | PREV | PLAY | NEXT | F6 | _ | + | { | } | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | F7 | F8 | F9 | F10 | F11 | | VOLD | | F12 | PAGEDW | PAGEUP | HOME | END | MUTE |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | | | | | MUTE | | PLAY | | PREV | VOLD | VOLU | NEXT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_LW] = LAYOUT_ortho_5x15( /* LOWERED */
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, KC_VOLU, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_DEL,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MPRV, KC_MPLY, KC_MNXT, KC_F6, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_VOLD, _______, KC_F12, KC_PGDN, KC_PGUP, KC_HOME, KC_END , KC_MUTE,
+ _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, KC_MPLY, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
+ ),
+
+/* RAISED
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | F7 | F8 | F9 | F10 | DEL |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | ` | 1 | 2 | 3 | 4 | 5 | | VOLU | | 6 | 7 | 8 | 9 | 0 | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | F1 | F2 | F3 | F4 | F5 | PREV | PLAY | NEXT | F6 | - | = | [ | ] | \ |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | F7 | F8 | F9 | F10 | F11 | | VOLD | | F12 | PAGEUP | PAGEDW | HOME | END | MUTE |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | | MUTE | | PLAY | | PREV | VOLD | VOLU | NEXT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_RS] = LAYOUT_ortho_5x15( /* RAISED */
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL,
+ KC_GRV , KC_1, KC_2, KC_3, KC_4, KC_5, _______, KC_VOLU, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_MPRV, KC_MPLY, KC_MNXT, KC_F6, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, KC_VOLD, _______, KC_F12, KC_PGDN, KC_PGUP, KC_HOME, KC_END , KC_MUTE,
+ _______, _______, _______, _______, _______, _______, _______, KC_MUTE, _______, KC_MPLY, _______, KC_MPRV, KC_VOLD, KC_VOLU, KC_MNXT
+ ),
+
+/* FUNCTION */
+
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+ RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, BL_TOGG, BL_INC, BL_DEC, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP , _______, KC_PSCR, _______,
+ _______, _______, _______, TO(_DV), TO(_QW), _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ RESET , _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
+
+
diff --git a/keyboards/xiudi/xd75/keymaps/msiu/readme.md b/keyboards/xiudi/xd75/keymaps/msiu/readme.md
new file mode 100644
index 0000000000..f37eee41a3
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/msiu/readme.md
@@ -0,0 +1,3 @@
+# msiu's keymap for xd75
+
+QWERTY keymap for xd75 with centered numpad and standard 40% layers for easy switching between xd75 and contra/planck.
diff --git a/keyboards/xiudi/xd75/keymaps/mtdjr/config.h b/keyboards/xiudi/xd75/keymaps/mtdjr/config.h
new file mode 100644
index 0000000000..3c8b17df1f
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/mtdjr/config.h
@@ -0,0 +1,22 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+// place overrides here
+#undef MANUFACTURER
+#define MANUFACTURER mtdjr
+#define PRODUCT XD75
diff --git a/keyboards/xiudi/xd75/keymaps/mtdjr/keymap.c b/keyboards/xiudi/xd75/keymaps/mtdjr/keymap.c
new file mode 100644
index 0000000000..98e21cf32f
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/mtdjr/keymap.c
@@ -0,0 +1,37 @@
+#include QMK_KEYBOARD_H
+#include "mtdjr.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QWERTY] = LAYOUT_ortho_5x15(
+ KC_EXC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_PGUP, KC_MPNT, KC_PGDN, 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_INS, KC_HOME, KC_DEL, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_QUOT,
+ KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_EQL, KC_ELCK, KC_MINS, 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_LBRC, KC_BSLS, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_ELCK,
+ KC_LOWR, KC_LCTL, KC_LALT, KC_LGUI, XXXXXXX, KC_SPC, KC_LOWR, KC_RASE, XXXXXXX, KC_SPC, KC_APP, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT
+ ),
+
+ [_LOWER] = LAYOUT_ortho_5x15(
+ XXXXXXX, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL,
+ XXXXXXX, KC_ROOT, KC_PPLY, KC_PSEF, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_CALC, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MUTE,
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, KC_MPLY, XXXXXXX, KC_MNXT, KC_VOLD, KC_VOLU, KC_MNXT
+ ),
+
+ [_RAISE] = LAYOUT_ortho_5x15(
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_RST, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
+ KC_CAPS, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BLI, XXXXXXX, KC_BLD, XXXXXXX, XXXXXXX, XXXXXXX, KC_XLCK, XXXXXXX, XXXXXXX,
+ KC_RGB, KC_RHUI, KC_RHUD, KC_RSAI, KC_RSAD, KC_RVAI, KC_RVAD, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_BTN1, KC_MS_U, KC_BTN2,
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MS_L, KC_MS_D, KC_MS_R
+ )
+};
+
+bool led_update_user(led_t led_state) {
+ if (led_state.caps_lock) {
+ capslock_led_on();
+ } else {
+ capslock_led_off();
+ }
+ return false;
+}
diff --git a/keyboards/xiudi/xd75/keymaps/mtdjr/readme.md b/keyboards/xiudi/xd75/keymaps/mtdjr/readme.md
new file mode 100644
index 0000000000..d53c0f34a8
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/mtdjr/readme.md
@@ -0,0 +1 @@
+# The default keymap for xd75
diff --git a/keyboards/xiudi/xd75/keymaps/mtdjr/rules.mk b/keyboards/xiudi/xd75/keymaps/mtdjr/rules.mk
new file mode 100644
index 0000000000..6b7d69d4f2
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/mtdjr/rules.mk
@@ -0,0 +1,19 @@
+# Copyright 2013 Jun Wako <wakojun@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+BACKLIGHT_ENABLE = yes
+TAP_DANCE_ENABLE = yes
+RGBLIGHT_ENABLE = yes
+
diff --git a/keyboards/xiudi/xd75/keymaps/neothefox/keymap.c b/keyboards/xiudi/xd75/keymaps/neothefox/keymap.c
new file mode 100644
index 0000000000..7fa04b2c63
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/neothefox/keymap.c
@@ -0,0 +1,127 @@
+/* Copyright 2017 Wunder
+ *
+ * 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
+
+// Layer shorthand
+#define LOWER MO(_LOWER)
+#define RAISE MO(_RAISE)
+#define SYSTEM MO(_SYSTEM)
+#define MPASTE LSFT(KC_INSERT)
+
+enum xd75_layers {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _SYSTEM
+};
+
+
+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 | INSERT | HOME | PG UP | H | J | K | L | ; | ENTER |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | DEL | END | PG DN | N | M | , | . | / | RSHIFT |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LCTRL | GUI | MENU | ALT | LOWER | SPACE | SPACE | SPACE | SPACE | SPACE | RAISE | LEFT | DOWN | UP | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_QWERTY] = 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_INS, 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_DEL, KC_END, KC_PGDN, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+ KC_LCTL, KC_LGUI, KC_MENU, KC_LALT, LOWER, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT
+ ),
+
+/* SYSTEM
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | RESET | DEBUG | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | |RGB_TOG |RGB_VAI |RGB VAD | | | PASTE | PR SCR | SCR LK | PAUSE |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | |RGB_MOD |RGB_SAI |RGB_HUI | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | |RGB_SAD |RGB_HUD | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_SYSTEM] = LAYOUT_ortho_5x15( /* FUNCTION */
+ RESET, DEBUG, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, RGB_TOG, RGB_VAI, RGB_VAD, _______, _______, MPASTE, KC_PSCR, KC_SLCK, KC_PAUSE,
+ _______, _______, _______, _______, _______, _______, RGB_MOD, RGB_SAI, RGB_HUI, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, RGB_SAD, RGB_HUD, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+/* LOWER
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | ~ | ! | @ | # | $ | % | | | | ^ | & | * | ( | ) | ' |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | DELETE | F1 | F2 | F3 | F4 | F5 | | | | F6 | _ | + | { | } | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | | F7 | F8 | F9 | F10 | F11 | | | | F12 | ISO ~ | ISO | | Home | End | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | | | | | | | | | Next | Vol- | Vol+ | Play |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_LOWER] = LAYOUT_ortho_5x15( /* LOWER */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, _______, _______, _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_BSPC,
+ 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,S(KC_NUHS),S(KC_NUBS),KC_HOME,KC_END, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+ ),
+
+/* RAISE
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | ` | 1 | 2 | 3 | 4 | 5 | | | | 6 | 7 | 8 | 9 | 0 | ' |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | | F1 | F2 | F3 | F4 | F5 | | | | F6 | - | = | [ | ] | \ |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | | F7 | F8 | F9 | F10 | F11 | | | | F12 | ISO # | ISO / | Pg Up | Pg Dn | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | | | | | | | | | Next | Vol- | Vol+ | Play |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_RAISE] = LAYOUT_ortho_5x15( /* QWERTY */
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, _______, _______, _______, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC,
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, _______, _______, _______, KC_F6, KC_MINUS,KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, _______, _______, _______, KC_F12, KC_NUHS, KC_NUBS, KC_PGUP, KC_PGDN, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, KC_VOLD, KC_VOLU, KC_MPLY
+ )
+};
+
+// SYSTEM layer toggle
+layer_state_t layer_state_set_user(layer_state_t state) {
+ return update_tri_layer_state(state, _LOWER, _RAISE, _SYSTEM);
+}
+
diff --git a/keyboards/xiudi/xd75/keymaps/neothefox/readme.md b/keyboards/xiudi/xd75/keymaps/neothefox/readme.md
new file mode 100644
index 0000000000..117ecafb79
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/neothefox/readme.md
@@ -0,0 +1 @@
+# A OLKB-like layout for XD75
diff --git a/keyboards/xiudi/xd75/keymaps/odyssey/config.h b/keyboards/xiudi/xd75/keymaps/odyssey/config.h
new file mode 100644
index 0000000000..63eee4ea1d
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/odyssey/config.h
@@ -0,0 +1,17 @@
+#pragma once
+#define MK_3_SPEED
+#define TAPPING_TERM 20
+#define MOUSEKEY_DELAY 100
+#define MOUSEKEY_INTERVAL 20
+#define MOUSEKEY_MAX_SPEED 4
+#define MOUSEKEY_TIME_TO_MAX 10
+#define MOUSEKEY_WHEEL_MAX_SPEED 4
+#define MOUSEKEY_WHEEL_TIME_TO_MAX 10
+#define MK_C_OFFSET_0 4
+#define MK_C_INTERVAL_0 30
+#define MK_C_OFFSET_1 8
+#define MK_C_INTERVAL_1 20
+#define MK_C_OFFSET_2 16
+#define MK_C_INTERVAL_2 20
+#define MK_C_OFFSET_UNMOD 3
+#define MK_C_INTERVAL_UNMOD 25
diff --git a/keyboards/xiudi/xd75/keymaps/odyssey/keymap.c b/keyboards/xiudi/xd75/keymaps/odyssey/keymap.c
new file mode 100644
index 0000000000..35510379c7
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/odyssey/keymap.c
@@ -0,0 +1,241 @@
+#include QMK_KEYBOARD_H
+
+// Layer shorthand
+#define _QW 0
+#define _CM 1
+#define _FN 2
+
+typedef enum {
+ NONE_NONE,
+ SINGLE_TAP,
+ SINGLE_HOLD,
+ DOUBLE_SINGLE_TAP
+} td_state_t;
+
+static td_state_t td_state = NONE_NONE;
+int cur_dance (qk_tap_dance_state_t *state);
+void altlp_finished (qk_tap_dance_state_t *state, void *user_data);
+void altlp_reset (qk_tap_dance_state_t *state, void *user_data);
+
+// Four differend underglow states for 2 language layouts x 2 states of colemak layer
+enum layer_states {
+ S_ENGLISH,
+ S_COLEMAK,
+ S_CRUSSIAN,
+ S_QRUSSIAN
+} l_state = S_ENGLISH;
+
+// CLMK to toggle colemak (active only with english qwerty, saves intent in russian but does nothing untill switched back to english)
+// RNBW - rainbow underglow
+// PING - ping pong underglow
+// SP_UP/DW - underglow speed controls
+enum custom_keycodes {
+ STUB = SAFE_RANGE,
+ CLMK,
+ RNBW,
+ PING,
+ SP_UP,
+ SP_DW
+};
+
+// Escape if taped, FN layer mod if held
+enum tapdance_codes {
+ LESC
+};
+
+bool sstate = false;
+int rgb = 0;
+int speed = 300;
+
+void set_colors(int r, int g, int b) {
+ for(int i = 0; i<6; i++) {
+ sethsv(r, g, b, (LED_TYPE *)&led[i]);
+ }
+ rgblight_set();
+}
+
+void update_led_state_c(void) {
+ if (rgb>0) return;
+ if (td_state == SINGLE_HOLD) set_colors(HSV_BLUE);
+ else {
+ if (l_state == S_ENGLISH) set_colors(HSV_RED);
+ if (l_state == S_QRUSSIAN) set_colors(HSV_GREEN);
+ if (l_state == S_COLEMAK) set_colors(HSV_YELLOW);
+ if (l_state == S_CRUSSIAN) set_colors(85, 100, 100);
+ }
+}
+
+int cur_dance (qk_tap_dance_state_t *state) {
+ if (state->count == 1) {
+ if (state->interrupted && state->pressed) { return SINGLE_HOLD; }
+ else if (!state->pressed) { return SINGLE_TAP; }
+ else { return SINGLE_HOLD; }
+ }
+ if (state->count == 2) { return DOUBLE_SINGLE_TAP; }
+ else { return 3; }
+}
+
+// Tapdance code stolen long time ago from one of the forum answers i found related to my problem, sadly can't provide link for the credits
+void lesc_finished (qk_tap_dance_state_t *state, void *user_data) {
+ td_state = cur_dance(state);
+ switch (td_state) {
+ case SINGLE_TAP:
+ register_code16(KC_ESC);
+ break;
+ case SINGLE_HOLD:
+ layer_on(_FN);
+ update_led_state_c();
+ sstate = false;
+ break;
+ case DOUBLE_SINGLE_TAP:
+ break;
+ case NONE_NONE:
+ break;
+ }
+}
+
+void lesc_reset (qk_tap_dance_state_t *state, void *user_data) {
+ switch (td_state) {
+ case SINGLE_TAP:
+ unregister_code16(KC_ESC);
+ break;
+ case SINGLE_HOLD:
+ layer_off(_FN);
+ if (sstate == false) {
+ register_code16(KC_ESC);
+ unregister_code16(KC_ESC);
+ }
+ break;
+ case DOUBLE_SINGLE_TAP:
+ break;
+ case NONE_NONE:
+ break;
+ }
+ td_state = NONE_NONE;
+ update_led_state_c();
+}
+
+qk_tap_dance_action_t tap_dance_actions[] = {
+ [LESC] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, lesc_finished, lesc_reset)
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ [_QW] = LAYOUT_ortho_5x15( /* QWERTY */
+KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_MINS, RNBW, 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, CLMK, KC_DEL, SP_UP, 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_UP, SP_DW, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
+KC_LCTL, LSFT(KC_9), KC_LALT, KC_LGUI, TD(LESC),KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_ENT, TD(LESC),KC_RGUI, KC_RALT, RSFT(KC_0),KC_RCTL
+ ),
+ [_CM] = LAYOUT_ortho_5x15( /* COLEMAK */
+_______, _______, _______, _______, _______, _______, _______, PING, _______, _______, _______, _______, _______, _______, _______,
+_______, KC_Q, KC_W, KC_F, KC_P, KC_Z, _______, _______, _______, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_SLSH,
+_______, KC_A, KC_R, KC_S, KC_T, KC_G, _______, _______, _______, KC_M, KC_N, KC_E, KC_I, KC_O, _______,
+_______, KC_X, KC_V, KC_C, KC_D, KC_B, _______, _______, _______, KC_K, KC_H, KC_DOT, KC_COMM, KC_QUOT, _______,
+_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+ [_FN] = LAYOUT_ortho_5x15( /* FUNCTION */
+KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_P7, KC_P8, KC_P9, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+RESET, KC_BTN1, KC_MS_U, KC_BTN2, KC_BTN3, KC_WH_U, KC_P4, KC_P5, KC_P6, _______, _______, _______, RSFT(KC_MINS), LSFT(KC_MINS), _______,
+_______, KC_MS_L, KC_MS_D, KC_MS_R, KC_MINS, KC_WH_D, KC_P1, KC_P2, KC_P3, _______, KC_PPLS, KC_ACL0, KC_ACL1, KC_ACL2, _______,
+_______, KC_ACL0, KC_ACL1, KC_ACL2, KC_WH_L, KC_WH_R, KC_NLCK, KC_PGUP, KC_P0, _______, _______, _______, _______, _______, _______,
+RGB_TOG, _______, _______, _______, KC_BSPC, KC_BSPC, KC_HOME, KC_PGDN, KC_END, KC_BSPC, KC_BSPC, _______, _______, _______, _______
+ )
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if(keycode != TD(LESC))
+ sstate = true;
+ switch (keycode) {
+ case SP_UP:
+ if (speed>25)
+ speed -= 25;
+ break;
+ case SP_DW:
+ if (speed < 1000)
+ speed += 25;
+ break;
+ case RNBW:
+ if(record->event.pressed) {
+ rgb = rgb == 0 ? 1 : 0;
+ update_led_state_c();
+ }
+ break;
+ case PING:
+ if(record->event.pressed) {
+ rgb = rgb == 0 ? 2 : 0;
+ update_led_state_c();
+ }
+ break;
+ case CLMK:
+ if(record->event.pressed) {
+ if (l_state == S_COLEMAK) {
+ layer_off(_CM);
+ l_state = S_ENGLISH;
+ }
+ else if (l_state == S_ENGLISH) {
+ layer_on(_CM);
+ l_state = S_COLEMAK;
+ }
+ else if (l_state == S_CRUSSIAN) { l_state = S_QRUSSIAN; }
+ else if (l_state == S_QRUSSIAN) { l_state = S_CRUSSIAN; }
+ }
+ update_led_state_c();
+ break;
+ case KC_CAPS:
+ if(record->event.pressed) {
+ if (l_state == S_ENGLISH) l_state = S_QRUSSIAN;
+ else if (l_state == S_QRUSSIAN) l_state = S_ENGLISH;
+ else if (l_state == S_COLEMAK) {
+ layer_off(_CM);
+ l_state = S_CRUSSIAN;
+ }
+ else if (l_state == S_CRUSSIAN) {
+ layer_on(_CM);
+ l_state = S_COLEMAK;
+ }
+ update_led_state_c();
+ }
+ break;
+ }
+ return true;
+}
+
+void matrix_init_user(void) { }
+
+// Rainbow globals
+int t = 0;
+int rc = 0;
+int col = 0;
+bool right = false;
+
+void matrix_scan_user(void) {
+ if (rgb==0) return; // Do nothing each tick right away if neither of animations enabled
+ if (rgb==1) {
+ if (rc == 0) {
+ rc = speed;
+ for(int i = 0; i<6; i++) {
+ sethsv(42*((t+i)%6), 255, 255, (LED_TYPE *)&led[i]);
+ }
+ rgblight_set();
+ t++; t = t % 6;
+ }
+ } else if (rgb==2) {
+ if (rc == 0) {
+ rc = speed;
+ col = (col + 1) % 36;
+ for (int i = 0; i<6; i++) {
+ if (i==t)
+ sethsv(42*(((col-1)/6)%6), 255, 255, (LED_TYPE *)&led[(right ? t : 5-t)]);
+ else
+ sethsv(0, 0, 0, (LED_TYPE *)&led[right ? i : 5-i]);
+ }
+ rgblight_set();
+ t++; t = t % 6;
+ if (t == 0) right = !right;
+ }
+ }
+ rc--;
+}
+
+void led_set_user(uint8_t usb_led) { }
diff --git a/keyboards/xiudi/xd75/keymaps/odyssey/readme.md b/keyboards/xiudi/xd75/keymaps/odyssey/readme.md
new file mode 100644
index 0000000000..668c2bf23d
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/odyssey/readme.md
@@ -0,0 +1,2 @@
+Personal keymap of flutterlice
+Called Odyssey because it took me what feels like ten year to come up with perfect keymap that satisfied all my needs.
diff --git a/keyboards/xiudi/xd75/keymaps/odyssey/rules.mk b/keyboards/xiudi/xd75/keymaps/odyssey/rules.mk
new file mode 100644
index 0000000000..5d80f20041
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/odyssey/rules.mk
@@ -0,0 +1,3 @@
+TAP_DANCE_ENABLE=yes
+MOUSEKEY_ENABLE=yes
+COMMAND_ENABLE=no
diff --git a/keyboards/xiudi/xd75/keymaps/pitty/config.h b/keyboards/xiudi/xd75/keymaps/pitty/config.h
new file mode 100644
index 0000000000..e6975da8a2
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/pitty/config.h
@@ -0,0 +1,19 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+// place overrides here
diff --git a/keyboards/xiudi/xd75/keymaps/pitty/keymap.c b/keyboards/xiudi/xd75/keymaps/pitty/keymap.c
new file mode 100644
index 0000000000..ff812d6791
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/pitty/keymap.c
@@ -0,0 +1,148 @@
+/* Copyright 2017 Wunder
+ *
+ * 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
+#include "keymap_hungarian.h"
+
+enum XD75_layers {
+ _QWERTY,
+ _GAME,
+ _LOWER,
+ _RAISE
+};
+
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ GAME,
+ LOWER,
+ RAISE,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+
+/* Qwerty
+ * ,--------------------------------------------------------------------------------------------------------.
+ * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Ö | Ü | Ó | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | TAB | Q | W | E | R | T | Z | U | I | O | P | Ő | Ú | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | É | Á | Ű | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------+------+------+------|
+ * | Shift| Y | X | C | V | B | N | M | , | . | - | Shift| | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | GUI | ALt |Lower | Space | Enter| Bksp |AltGr | Raise| | | | | |
+ * `--------------------------------------------------------------------------------------------------------'
+ */
+[_QWERTY] = LAYOUT_ortho_5x15( \
+ HU_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, HU_ODIA, HU_UDIA, HU_OACU, KC_INS, KC_PGUP, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, HU_Z, KC_U, KC_I, KC_O, KC_P, HU_ODAC, HU_UACU, KC_DEL, KC_PGDN, \
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, HU_EACU, HU_AACU, HU_UDAC, _______, KC_HOME, \
+ MT(MOD_LSFT, KC_NUBS), HU_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, HU_COMM, HU_DOT, HU_MINS, KC_RSFT, HU_EQL, KC_UP, KC_END, \
+ KC_LCTL, KC_LGUI, KC_LALT, TT(_LOWER), KC_SPC, _______, KC_ENT, KC_BSPC, KC_RALT, TT(_RAISE), _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT \
+),
+
+
+/* Game
+ * ,--------------------------------------------------------------------------------------------------------.
+ * | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Ö | Ü | Ó | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | TAB | Q | W | E | R | T | Z | U | I | O | P | Ő | Ú | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------+------+------+------|
+ * | Esc | A | S | D | F | G | H | J | K | L | É | Á | Ű | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------+------+------+------|
+ * | Shift| Y | X | C | V | B | N | M | , | . | - | Shift| | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | Ctrl | GUI | ALt |Raise | Space | Enter| Bksp |AltGr | Lower| | | | | |
+ * `--------------------------------------------------------------------------------------------------------'
+ */
+[_GAME] = LAYOUT_ortho_5x15( \
+ HU_0, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, HU_ODIA, HU_UDIA, HU_OACU, KC_INS, KC_PGUP, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, HU_Z, KC_U, KC_I, KC_O, KC_P, HU_ODAC, HU_UACU, KC_DEL, KC_PGDN, \
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, HU_EACU, HU_AACU, HU_UDAC, _______, KC_HOME, \
+ KC_LSFT, HU_Y, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, HU_COMM, HU_DOT, HU_MINS, KC_RSFT, HU_EQL, KC_UP, KC_END, \
+ KC_LCTL, KC_LGUI, KC_LALT, TT(_RAISE), KC_SPC, _______, KC_ENT, KC_BSPC, KC_RALT, TT(_LOWER), _______, _______, KC_LEFT, KC_DOWN, KC_RIGHT \
+),
+
+
+/* Lower
+ * ,--------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | 7 | 8 | 9 | + | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | Up | | | | | 4 | 5 | 6 | - | | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------+------+------+------|
+ * | | Left | Down | Right| | | | 1 | 2 | 3 | * | | | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------+------+------+------|
+ * | | | |Lnxcpy|Lnxpst| | | 0 | | | / | = | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Home |PageDn|PageUp| End | | | |
+ * `--------------------------------------------------------------------------------------------------------'
+ */
+[_LOWER] = LAYOUT_ortho_5x15( \
+ _______, _______, _______, _______, _______, _______, _______, HU_7, HU_8, HU_9, HU_PLUS, _______, _______, _______, _______, \
+ _______, _______, KC_UP, _______, _______, _______, _______, HU_4, HU_5, HU_6, HU_MINS, _______, _______, _______, _______, \
+ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, HU_1, HU_2, HU_3, HU_ASTR, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, HU_0, _______, _______, HU_SLSH, HU_EQL, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(_GAME), TO(_QWERTY), _______, _______, _______ \
+),
+
+/* Raise
+ * ,--------------------------------------------------------------------------------------------------------.
+ * | F12 | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | Up | | | | | | | | | | | | |
+ * |------+------+------+------+------+-------------+------+------+------+------+------+------+------+------|
+ * | | Left | Down | Right| | | | | | | | | | | |
+ * |------+------+------+------+------+------|------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | | | | | | | | |
+ * |------+------+------+------+------+------+------+------+------+------+------+------+------+------+------|
+ * | | | | | | | | Home |PageDn|PageUp| End | | | |
+ * `--------------------------------------------------------------------------------------------------------'
+ */
+[_RAISE] = LAYOUT_ortho_5x15( \
+ _______, 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_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TO(_GAME), TO(_QWERTY), _______, _______, _______ \
+),
+
+
+
+};
+
+
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ switch (get_highest_layer(state)) {
+ case _RAISE:
+ rgblight_setrgb (0xC3, 0xFF, 0xFF);
+ rgblight_mode(5);
+ break;
+ case _LOWER:
+ rgblight_setrgb (0xFF, 0xFF, 0xFF);
+ rgblight_mode(5);
+ break;
+ case _GAME:
+ rgblight_mode(8);
+ break;
+ default: // for any other layers, or the default layer
+ rgblight_mode(14);
+ break;
+ }
+ return state;
+}
diff --git a/keyboards/xiudi/xd75/keymaps/pitty/readme.md b/keyboards/xiudi/xd75/keymaps/pitty/readme.md
new file mode 100644
index 0000000000..b0cc429978
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/pitty/readme.md
@@ -0,0 +1,3 @@
+My keymap for the XD75
+
+Including Hungarian characters and layer reactive underglow. \ No newline at end of file
diff --git a/keyboards/xiudi/xd75/keymaps/pitty/rules.mk b/keyboards/xiudi/xd75/keymaps/pitty/rules.mk
new file mode 100644
index 0000000000..52a8f38d45
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/pitty/rules.mk
@@ -0,0 +1,15 @@
+# Copyright 2013 Jun Wako <wakojun@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
diff --git a/keyboards/xiudi/xd75/keymaps/revok75/config.h b/keyboards/xiudi/xd75/keymaps/revok75/config.h
new file mode 100644
index 0000000000..a5484876ef
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/revok75/config.h
@@ -0,0 +1,20 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+// place overrides here
+#undef BACKLIGHT_BREATHING
diff --git a/keyboards/xiudi/xd75/keymaps/revok75/keymap.c b/keyboards/xiudi/xd75/keymaps/revok75/keymap.c
new file mode 100644
index 0000000000..44e2c52033
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/revok75/keymap.c
@@ -0,0 +1,90 @@
+/* Copyright 2017 Wunder
+ *
+ * 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
+
+// Layer shorthand
+#define _QW_M 0
+#define _QW_W 1
+#define _FN 2
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* QWERTY-Mac
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | 1 | 2 | 3 | 4 | % | 6 | 7 | 8 | 9 | 0 | - | = | Cut | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | Q | W | E | R | T | Y | U | I | O | P | { | } | Copy | Paste |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | CAP LK | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | ENTER | REF |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | \ | RSHIFT| UP | SAVE |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LALT | LGUI | LALT | FIND | CMD T | SPACE | SPACE | ALFRED | FN-MO | RALT | RGUI | RCTRL | LEFT | DOWN | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_QW_M] = LAYOUT_ortho_5x15( /* QWERTY MAC*/
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, LGUI(KC_X), KC_BSPC, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LCBR, KC_RCBR, LGUI(KC_C), LGUI(KC_V), \
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, LGUI(KC_R), KC_NO, KC_ENT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS, KC_RSFT, KC_UP, LGUI(KC_S), \
+ KC_LCTL, KC_LALT, KC_LGUI, LGUI(KC_F), LGUI(KC_T), KC_SPC, KC_NO, LALT(KC_SPACE), MO(_FN), KC_RGUI, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \
+ ),
+
+ /* QWERTY-Win
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | 1 | 2 | 3 | 4 | % | 6 | 7 | 8 | 9 | 0 | - | = | Cut | BACKSP |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | Q | W | E | R | T | Y | U | I | O | P | { | } | Copy | Paste |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | CAP LK | A | S | D | F | G | H | J | K | L | ; | ' | ENTER | ENTER | REF |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | \ | RSHIFT | UP | SAVE |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LALT | LGUI | LALT | FIND | CMD T | SPACE | SPACE | START | FN-MO | RALT | RGUI | RCTRL | LEFT | DOWN | RIGHT |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_QW_W] = LAYOUT_ortho_5x15( /* QWERTY WIN*/
+ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, LCTL(KC_X), KC_BSPC, \
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LCBR, KC_RCBR, LCTL(KC_C), LCTL(KC_V), \
+ KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, LCTL(KC_R), KC_NO, KC_ENT, \
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_BSLS, KC_RSFT, KC_UP, LCTL(KC_S), \
+ KC_LCTL, KC_LALT, KC_LGUI, LCTL(KC_F), LCTL(KC_T), KC_SPC, KC_NO, LCTL(KC_GESC), MO(_FN), KC_RGUI, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT \
+ ),
+
+/* FUNCTION
+* .--------------------------------------------------------------------------------------------------------------------------------------.
+* | ESC | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | VOLDN | VOLUP | MUTE | DEL |
+* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+* | TAB | - | WIN | - | - | RGB_TOG| - | - | OPTION | RESET | - | [ | ] | - | - |
+* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+* | CAP LK | MAC | RAINBOW| PLAIN | - | - | - | - | - | - | ; | ' | ENTER | ENTER | REF |
+* |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+* | LSHIFT | INC | DEC | HUE I | HUE D | SAT I | SAT D | - | - | . | / | \ | RSHIFT| HOME | SAVE |
+* |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+* | LALT | LGUI | LALT | FIND | CMD T | SPACE | SPACE | ALFRED | FN-MO | RALT | RGUI | RCTRL | PGUP | END | PGDN |
+* '--------------------------------------------------------------------------------------------------------------------------------------'
+*/
+
+ [_FN] = LAYOUT_ortho_5x15( /* OSLAYOUT + NUMPAD + MEDIA + LIGHTING */
+ KC_TRNS, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_VOLD, KC_VOLU, KC_MUTE, KC_DEL, \
+ KC_TRNS, KC_NO, DF(_QW_W), KC_NO, KC_NO, RGB_TOG, KC_NO, KC_NO, KC_RALT, RESET, KC_NO, KC_LBRC, KC_RBRC, KC_TRNS, KC_TRNS, \
+ KC_TRNS, DF(_QW_M), RGB_MODE_RAINBOW, RGB_MODE_PLAIN, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, \
+ KC_TRNS, RGB_VAI, RGB_VAD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, KC_NO, KC_NO, KC_DOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_TRNS, \
+ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_END, KC_PGDN \
+ )
+};
diff --git a/keyboards/xiudi/xd75/keymaps/revok75/readme.md b/keyboards/xiudi/xd75/keymaps/revok75/readme.md
new file mode 100644
index 0000000000..ecec8c9629
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/revok75/readme.md
@@ -0,0 +1 @@
+# The default keymap for Revok 75
diff --git a/keyboards/xiudi/xd75/keymaps/revok75/rules.mk b/keyboards/xiudi/xd75/keymaps/revok75/rules.mk
new file mode 100644
index 0000000000..8011987843
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/revok75/rules.mk
@@ -0,0 +1,18 @@
+# Copyright 2013 Jun Wako <wakojun@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
+BACKLIGHT_ENABLE = yes
+RGBLIGHT_ENABLE = yes
diff --git a/keyboards/xiudi/xd75/keymaps/scheiklp/config.h b/keyboards/xiudi/xd75/keymaps/scheiklp/config.h
new file mode 100644
index 0000000000..68f5a3ee11
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/scheiklp/config.h
@@ -0,0 +1,41 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+// place overrides here
+#define AUTO_SHIFT_TIMEOUT 175
+#define NO_AUTO_SHIFT_SPECIAL
+
+// Mouse control
+// constant mode (velocity)
+#define MK_3_SPEED
+// KC_ACL0 < KC_ACL1 < unmodified < KC_ACL2
+// Cursor offset per movement (unmodified)
+#define MK_C_OFFSET_UNMOD 16
+// Time between cursor movements (unmodified)
+#define MK_C_INTERVAL_UNMOD 16
+// Cursor offset per movement (KC_ACL0)
+#define MK_C_OFFSET_0 1
+// Time between cursor movements (KC_ACL0)
+#define MK_C_INTERVAL_0 32
+// Cursor offset per movement (KC_ACL1)
+#define MK_C_OFFSET_1 4
+// Time between cursor movements (KC_ACL1)
+#define MK_C_INTERVAL_1 16
+// Cursor offset per movement (KC_ACL2)
+#define MK_C_OFFSET_2 32
+// Time between cursor movements (KC_ACL2)
+#define MK_C_INTERVAL_2 16
diff --git a/keyboards/xiudi/xd75/keymaps/scheiklp/keymap.c b/keyboards/xiudi/xd75/keymaps/scheiklp/keymap.c
new file mode 100644
index 0000000000..a757c2e49c
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/scheiklp/keymap.c
@@ -0,0 +1,112 @@
+/* Copyright 2017 Wunder
+ *
+ * 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
+#include "koy_keys_on_quertz_de_latin1.h"
+// Layer shorthand
+#define _1 0
+#define _3 1
+#define _4 2
+#define _7 3
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Layer 1
+ * .---------------------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | 1 | 2 | 3 | 4 | 5 | Record 1 | Play 1 | 6 | 7 | 8 | 9 | 0 | DEL | BACKSP |
+ * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | TAB | K | . | O | , | Y | Record 2 | Play 2P | V | G | C | L | ẞ | Z | |
+ * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | Layer 3 | H | A | E | I | U | Undo | Stop Rec. | D | T | R | N | S | F | Layer 3 |
+ * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | LSHIFT | X | Q | Ä | Ü | Ö | Copy | Cut | B | P | W | M | J | RSHIFT | RSHIFT |
+ * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | LCTRL | Layer 4 | | LGUI | LALT | SPACE | Paste | SPACE | SPACE | Layer 4 | RCTRL | | | KEYLOCK | Layer 7 |
+ * '---------------------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_1] = LAYOUT_ortho_5x15( /* KOY */
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, DM_REC1, DM_PLY1, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, KC_BSPC,
+ KC_TAB, KC_K, KC_DOT, KC_O, KC_COMM, N_Y, DM_REC2, DM_PLY2, KC_V, KC_G, KC_C, KC_L, N_SS, N_Z, KC_TRNS,
+ MO(_3), KC_H, KC_A, KC_E, KC_I, KC_U, N_UNDO, DM_RSTP, KC_D, KC_T, KC_R, KC_N, KC_S, KC_F, MO(_3),
+ KC_LSFT, KC_X, KC_Q, N_AE, N_UE, N_OE, N_COPY, N_CUT, KC_B, KC_P, KC_W, KC_M, KC_J, KC_RSFT, KC_RSFT,
+ KC_LCTL, MO(_4), KC_TRNS, KC_LGUI, KC_LALT, KC_SPC, N_PASTE, KC_SPC, KC_SPC, MO(_4), KC_RCTL, KC_TRNS, KC_TRNS,KC_LOCK, MO(_7)
+ ),
+
+/* Layer 3
+ * .---------------------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | F1 | F2 | F3 | F4 | F5 | | | F6 | F7 | F8 | F9 | F0 | DEL | BACKSP |
+ * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | TAB | … | _ | [ | ] | ^ | | | ! | < | > | = | & | | |
+ * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | Layer 5 | \ | / | { | } | * | | | ? | ( | ) | - | : | @ | Layer 5 |
+ * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | LSHIFT | # | $ | | | ~ | ` | | | + | % | " | ' | ; | RSHIFT | RSHIFT |
+ * |---------+---------+--------+--------+--------+--------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | LCTRL | | | | LALT | | | | | | | | | | |
+ * '---------------------------------------------------------------------------------------------------------------------------------------------------'
+ */
+ [_3] = LAYOUT_ortho_5x15( /* Layer 3 */
+ KC_ESC, KC_F1, KC_F3, KC_F4, KC_F5, KC_F6, KC_TRNS, KC_TRNS, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS,
+ KC_TAB, N_DOTS, N_USC, N_LSQBR, N_RSQBR, N_CIRC, KC_TRNS, KC_TRNS, N_EXKL, N_LT, N_GT, N_EQ, N_AMP, KC_TRNS, KC_TRNS,
+ KC_TRNS, N_BSLS, N_SLSH, N_LCUBR, N_RCUBR, N_ASTR, KC_TRNS, KC_TRNS, N_QUES, N_LPARN, N_RPARN, N_MINS, N_COLN, N_AT, KC_TRNS,
+ KC_LSFT, N_HASH, N_DLR, N_PIPE, N_TILD, N_GRAVE, KC_TRNS, KC_TRNS, N_PLUS, N_PERC, N_QUOT, N_SING, N_SEMI, KC_RSFT, KC_RSFT,
+ KC_LCTL, KC_TRNS, KC_TRNS, KC_LALT, KC_TRNS, KC_SPC, KC_TRNS, KC_SPC, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+/* Layer 4
+ * .------------------------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | | | | | | | | | | | | | | |
+ * |---------+---------+--------+--------+--------+-----------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | TAB | Page up | BACKSP | Up | DEL | Page down | | | / | 7 | 8 | 9 | − | | |
+ * |---------+---------+--------+--------+--------+-----------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | | Home | Left | Down | Right | End | | | * | 4 | 5 | 6 | . | | |
+ * |---------+---------+--------+--------+--------+-----------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | LSHIFT | ESC | TAB | Insert | Enter | Undo | | | Enter | 1 | 2 | 3 | ; | RSHIFT | RSHIFT |
+ * |---------+---------+--------+--------+--------+-----------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | LCTRL | | | LALT | | 0 | | 0 | 0 | | | | | | |
+ * '------------------------------------------------------------------------------------------------------------------------------------------------------'
+ */
+ [_4] = LAYOUT_ortho_5x15( /* Layer 4 */
+ KC_ESC, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TAB, KC_PGUP, KC_BSPC, KC_UP, KC_DEL, KC_PGDN, KC_TRNS, KC_TRNS, KC_KP_SLASH, KC_7, KC_8, KC_9, KC_KP_MINUS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_HOME, KC_LEFT, KC_DOWN, KC_RIGHT, KC_END, KC_TRNS, KC_TRNS, KC_KP_ASTERISK, KC_4, KC_5, KC_6, KC_KP_PLUS, KC_TRNS, KC_TRNS,
+ KC_LSFT, KC_ESC, KC_TAB, KC_INS, KC_ENTER, N_UNDO, KC_TRNS, KC_TRNS, KC_KP_ENTER, KC_1, KC_2, KC_3, KC_KP_DOT, KC_RSFT, KC_RSFT,
+ KC_LCTL, KC_TRNS, KC_TRNS, KC_LALT, KC_TRNS, KC_0, KC_TRNS, KC_0, KC_0, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+/* Layer 7
+ * .--------------------------------------------------------------------------------------------------------------------------------------------------------------.
+ * | ESC | | | Button 3 | | | | | | | | | | | RESET |
+ * |---------+----------+----------+----------+----------+------------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | TAB | Wheel up | Button 2 | Up | Button 1 | Wheel down | | | | | | | | | |
+ * |---------+----------+----------+----------+----------+------------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | | Veloc 0 | Left | Down | Right | | | | | | | | | | |
+ * |---------+----------+----------+----------+----------+------------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | LSHIFT | Veloc 1 | | | | | | | | | | | | | |
+ * |---------+----------+----------+----------+----------+------------+-----------+-----------+--------+---------+--------+--------+--------+-----------+---------|
+ * | LCTRL | Veloc 2 | | LALT | | | | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------------------------------'
+ */
+ [_7] = LAYOUT_ortho_5x15( /* Layer 7 */
+ KC_ESC, KC_TRNS, KC_TRNS, KC_MS_BTN3, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET,
+ KC_TAB, KC_MS_WH_UP, KC_MS_BTN2, KC_MS_UP, KC_MS_BTN1, KC_MS_WH_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_MS_ACCEL0, KC_MS_LEFT, KC_MS_DOWN, KC_MS_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_LSFT, KC_MS_ACCEL1, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
+ KC_LCTL, KC_MS_ACCEL2, KC_TRNS, KC_LALT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
+ )
+
+};
+
diff --git a/keyboards/xiudi/xd75/keymaps/scheiklp/readme.md b/keyboards/xiudi/xd75/keymaps/scheiklp/readme.md
new file mode 100644
index 0000000000..58c65f0884
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/scheiklp/readme.md
@@ -0,0 +1,9 @@
+# KOY Layout for the xd75 pcb board
+Compile the layout
+```bash
+qmk compile -kb xd75 -km scheiklp
+```
+and flash it to the board
+```bash
+qmk flash -kb xd75 -km scheiklp
+```
diff --git a/keyboards/xiudi/xd75/keymaps/scheiklp/rules.mk b/keyboards/xiudi/xd75/keymaps/scheiklp/rules.mk
new file mode 100644
index 0000000000..2cbbe08d7a
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/scheiklp/rules.mk
@@ -0,0 +1,6 @@
+BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite
+COMMAND_ENABLE = no
+RGBLIGHT_ENABLE = no
+DYNAMIC_MACRO_ENABLE = yes
+AUTO_SHIFT_ENABLE = yes
+KEY_LOCK_ENABLE = yes
diff --git a/keyboards/xiudi/xd75/keymaps/skewwhiffy/keymap.c b/keyboards/xiudi/xd75/keymaps/skewwhiffy/keymap.c
new file mode 100644
index 0000000000..3db29a3636
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/skewwhiffy/keymap.c
@@ -0,0 +1,233 @@
+/* Copyright 2017 Kenny Hung
+ *
+ * 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
+#include "keymap_uk.h"
+
+// Layer shorthand
+enum Layers {
+ cm, // colemak
+ dv, // dvorak
+ qw, // qwerty
+ nbl, // numbers left
+ nbr, // numbers right
+ syl, // symbols left
+ syr, // symbols right
+ nal, // navigation left
+ nar // navigation right
+};
+
+// Layer buttons
+#define _Z_SFT SFT_T(UK_Z)
+#define _SCLSH SFT_T(UK_SCLN)
+#define _SLSH SFT_T(UK_SLSH)
+
+#define _X_NB LT(nbl, UK_X)
+#define _Q_NB LT(nbl, UK_Q)
+#define _DOT_NB LT(nbr, UK_DOT)
+#define _V_NB LT(nbr, UK_V)
+#define __NBL LT(nbl, _______)
+#define __NBR LT(nbr, _______)
+
+#define _C_SY LT(syl, UK_C)
+#define _J_SY LT(syl, UK_J)
+#define _W_SY LT(syr, UK_W)
+#define _COM_SY LT(syr, UK_COMM)
+#define __SYL LT(syl, _______)
+#define __SYR LT(syr, _______)
+
+#define _V_NAL LT(nal, UK_V)
+#define _K_NAL LT(nal, UK_K)
+#define _M_NAR LT(nar, UK_M)
+#define __NAL LT(nal, _______)
+#define __NAR LT(nar, _______)
+
+// Custom hotkeys
+#define _TERM LCTL(UK_QUOT) // Hotkey for terminal
+#define _S_TAB S(KC_TAB)
+#define _C_LEFT LCTL(KC_LEFT)
+#define _C_RGHT LCTL(KC_RGHT)
+#define _A_LEFT LALT(KC_LEFT)
+#define _A_RGHT LALT(KC_RGHT)
+
+enum custom_keycodes {
+ IJ_OMN = SAFE_RANGE // IntelliJ Omnibox
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* Colemak
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------------------------------------------------------------------------------------------------------------------------------------|
+ * | Q | W | F | P | G | | | | | | J | L | U | Y | ; |
+ * |--------------------------------------------------------------------------------------------------------------------------------------|
+ * | A | R | S | T | D | | | | | | H | N | E | I | O |
+ * |--------------------------------------------------------------------------------------------------------------------------------------|
+ * | Z | X | C | V | B | | | UP | | | K | M | , | . | / |
+ * | SHIFT | NUMBER | SYMBOL | NAV | | | | | | | | NAV | SYMBOL | FUNC | SHIFT |
+ * |--------------------------------------------------------------------------------------------------------------------------------------|
+ * | LSHIFT | LCTRL | LALT | LGUI | SPACE | ENT | LEFT | DOWN | RIGHT | DEL | BKSPC | RGUI | RALT | RCTRL | RSHIFT |
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ */
+ [cm] = LAYOUT_ortho_5x15( \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ UK_Q, UK_W, UK_F, UK_P, UK_G, _______, _______, _______, _______, _______, UK_J, UK_L, UK_U, UK_Y, UK_SCLN, \
+ UK_A, UK_R, UK_S, UK_T, UK_D, _______, _______, _______, _______, _______, UK_H, UK_N, UK_E, UK_I, UK_O , \
+ _Z_SFT, _X_NB, _C_SY, _V_NAL, UK_B, _______, _______, KC_UP, _______, _______, UK_K, _M_NAR, _COM_SY, _DOT_NB, _SLSH , \
+ KC_LSFT, KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_ENT, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_BSPC, KC_RGUI, KC_RALT, KC_RCTL, KC_RSFT \
+ ),
+
+/* Dvorak
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------------------------------------------------------------------------------------------------------------------------------------|
+ * | ' | , | . | P | Y | | | | | | F | G | C | R | L |
+ * |--------------------------------------------------------------------------------------------------------------------------------------|
+ * | A | O | E | U | I | | | | | | D | H | T | N | S |
+ * |--------------------------------------------------------------------------------------------------------------------------------------|
+ * | ; | Q | J | K | X | | | | | | B | M | W | V | Z |
+ * | SHIFT | NUMBER | SYMBOL | NAV | | | | | | | | NAV | SYMBOL | FUNC | SHIFT |
+ * |--------------------------------------------------------------------------------------------------------------------------------------|
+ * | | | | | | | | | | | | | | | |
+ * |--------------------------------------------------------------------------------------------------------------------------------------|
+ */
+ [dv] = LAYOUT_ortho_5x15( \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ UK_QUOT, UK_COMM, UK_DOT, UK_P, UK_Y, _______, _______, _______, _______, _______, UK_F, UK_G, UK_C, UK_R, UK_L , \
+ UK_A, UK_O, UK_E, UK_U, UK_I, _______, _______, _______, _______, _______, UK_D, UK_H, UK_T, UK_N, UK_S , \
+ _SCLSH, _Q_NB, _J_SY, _K_NAL, UK_X, _______, _______, _______, _______, _______, UK_B, _M_NAR, _W_SY, _V_NB, _Z_SFT , \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ ),
+
+/* QWERTY _QW
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------------------------------------------------------------------------------------------------------------------------------------|
+ * | Q | W | E | R | T | | | | | | Y | U | I | O | P |
+ * |--------------------------------------------------------------------------------------------------------------------------------------|
+ * | A | S | D | F | G | | | | | | H | J | K | L | ; |
+ * |--------------------------------------------------------------------------------------------------------------------------------------|
+ * | Z | X | C | V | B | | | | | | N | M | , | . | / |
+ * | SHIFT | NUMBER | SYMBOL | NAV | | | | | | | | NAV | SYMBOL | FUNC | SHIFT |
+ * |--------------------------------------------------------------------------------------------------------------------------------------|
+ * | | | | | | | | | | | | | | | |
+ * |--------------------------------------------------------------------------------------------------------------------------------------|
+ * | LSHIFT | LCTRL | LALT | LGUI | SPACE | ENT | | | | DEL | BKSPC | RGUI | RALT | RCTRL | RSHIFT |
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ */
+ [qw] = LAYOUT_ortho_5x15( \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ UK_Q, UK_W, UK_E, UK_R, UK_T, _______, _______, _______, _______, _______, UK_Y, UK_U, UK_I, UK_O, UK_P , \
+ UK_A, UK_S, UK_D, UK_F, UK_G, _______, _______, _______, _______, _______, UK_H, UK_J, UK_K, UK_L, UK_SCLN, \
+ _Z_SFT, _X_NB, _C_SY, _V_NAL, UK_B, _______, _______, _______, _______, _______, UK_N, _M_NAR, _COM_SY, _DOT_NB, _SLSH , \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ ),
+
+/* Numbers _NB
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |-----------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | | F7 | F8 | F9 | F10 | | | | | | | 7 | 8 | 9 | |
+ * |-----------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | F4 | F5 | F6 | F11 | | | | | | | 4 | 5 | 6 | |
+ * |-----------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | | F1 | F2 | F3 | F12 | | | | | | 0 | 1 | 2 | 3 | . |
+ * |-----------------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | | | | | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+ [nbl] = LAYOUT_ortho_5x15( \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, _______, _______, UK_7, UK_8, UK_9, _______, \
+ _______, KC_F4, KC_F5, KC_F6, KC_F11, _______, _______, _______, _______, _______, _______, UK_4, UK_5, UK_6, _______, \
+ _______, __NBL, KC_F2, KC_F3, KC_F12, _______, _______, _______, _______, _______, UK_0, UK_1, UK_2, UK_3, UK_DOT, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ ),
+ [nbr] = LAYOUT_ortho_5x15( \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, KC_F7, KC_F8, KC_F9, KC_F10, _______, _______, _______, _______, _______, _______, UK_7, UK_8, UK_9, _______, \
+ _______, KC_F4, KC_F5, KC_F6, KC_F11, _______, _______, _______, _______, _______, _______, UK_4, UK_5, UK_6, _______, \
+ _______, KC_F1, KC_F2, KC_F3, KC_F12, _______, _______, _______, _______, _______, UK_0, UK_1, UK_2, __NBR, UK_DOT , \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ ),
+
+ /* Symbols _SY
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | ! | £ | _ | - | ~ | | | | | | \ | { | } | / | # |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | $ | % | + | = | | | | | | | " | ( | ) | ' | @ |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | ^ | & | * | | | | | | | | | < | [ | ] | > | ` |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | | | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+ [syl] = LAYOUT_ortho_5x15( \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ UK_EXLM, UK_PND, UK_UNDS, UK_MINS, UK_TILD, _______, _______, _______, _______, _______, UK_BSLS, UK_LCBR, UK_RCBR, UK_SLSH, UK_HASH, \
+ UK_DLR, UK_PERC, UK_PLUS, UK_EQL, _______, _______, _______, _______, _______, _______, UK_DQUO, UK_LPRN, UK_RPRN, UK_QUOT, UK_AT , \
+ UK_CIRC, UK_AMPR, __SYL, UK_PIPE, _______, _______, _______, _______, _______, _______, UK_LABK, UK_LBRC, UK_RBRC, UK_RABK, UK_GRV , \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ ),
+ [syr] = LAYOUT_ortho_5x15( \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ UK_EXLM, UK_PND, UK_UNDS, UK_MINS, UK_TILD, _______, _______, _______, _______, _______, UK_BSLS, UK_LCBR, UK_RCBR, UK_SLSH, UK_HASH, \
+ UK_DLR, UK_PERC, UK_PLUS, UK_EQL, _______, _______, _______, _______, _______, _______, UK_DQUO, UK_LPRN, UK_RPRN, UK_QUOT, UK_AT , \
+ UK_CIRC, UK_AMPR, UK_ASTR, UK_PIPE, _______, _______, _______, _______, _______, _______, UK_LABK, UK_LBRC, __SYR, UK_RABK, UK_GRV , \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ \
+ ),
+/*
+ * Navigation _NA
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | RESET | COLEMA | DVORAK | QWERTY | | RGB_TG | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | Esc | Ctrl L | Up | Ctrl R | | RGB HD | RGB HI | | | | | PtSn | ScLk | Pause | |
+ * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | Tab | Left | Down | Right | | RGB SD | RGB SI | | | | | Insert | Home | PgUp | Term |
+ * +--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | ShTab | Alt L | Shift | Alt R | | RGB VD | RGB VI | | | | | ScLk | End | PgDn | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | | RGB RMD| RGB MD | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+ [nal] = LAYOUT_ortho_5x15( \
+ RESET, DF(cm), DF(dv), DF(qw), _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ KC_ESC, _C_LEFT, KC_UP , _C_RGHT, _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, \
+ KC_TAB, KC_LEFT, KC_DOWN, KC_RGHT, _______, RGB_SAD, RGB_SAI, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _TERM , \
+ _S_TAB, _A_LEFT, IJ_OMN, __NAL, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, KC_SLCK, KC_END, KC_PGDN, _______, \
+ _______, _______, _______, _______, _______, RGB_RMOD,RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______ \
+ ),
+ [nar] = LAYOUT_ortho_5x15( \
+ RESET, DF(cm), DF(dv), DF(qw), _______, RGB_TOG, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ KC_ESC, _C_LEFT, KC_UP , _C_RGHT, _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, _______, \
+ KC_TAB, KC_LEFT, KC_DOWN, KC_RGHT, _______, RGB_SAD, RGB_SAI, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _TERM , \
+ _S_TAB, _A_LEFT, IJ_OMN, _A_RGHT, _______, RGB_VAD, RGB_VAI, _______, _______, _______, _______, __NAR, KC_END, KC_PGDN, _______, \
+ _______, _______, _______, _______, _______, RGB_RMOD,RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______ \
+ )
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ switch(keycode) {
+ case IJ_OMN:
+ SEND_STRING(SS_TAP(X_LSHIFT)SS_TAP(X_LSHIFT));
+ return false;
+ }
+ }
+ return true;
+}
diff --git a/keyboards/xiudi/xd75/keymaps/skewwhiffy/readme.md b/keyboards/xiudi/xd75/keymaps/skewwhiffy/readme.md
new file mode 100644
index 0000000000..33ae541297
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/skewwhiffy/readme.md
@@ -0,0 +1,5 @@
+# Kenny Hung's custom keyboard
+
+Contact me at kennysubs+github@outlook.com
+
+Copied from my Diverge 3 layout with a few minor changes. See skewwhiffy repo setup for further deets.
diff --git a/keyboards/xiudi/xd75/keymaps/skewwhiffy/rules.mk b/keyboards/xiudi/xd75/keymaps/skewwhiffy/rules.mk
new file mode 100644
index 0000000000..52a8f38d45
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/skewwhiffy/rules.mk
@@ -0,0 +1,15 @@
+# Copyright 2013 Jun Wako <wakojun@gmail.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
diff --git a/keyboards/xiudi/xd75/keymaps/tdl-jturner/config.h b/keyboards/xiudi/xd75/keymaps/tdl-jturner/config.h
new file mode 100644
index 0000000000..596aaff665
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/tdl-jturner/config.h
@@ -0,0 +1,34 @@
+/* Copyright 2018 Josh Turner (/u/tdl-jturner)
+ *
+ * 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/>.
+ */
+
+ // additional config optoinsa vailable at https://docs.qmk.fm/reference/config-options#the-config.h-file
+
+#pragma once
+
+// place overrides here
+
+// place overrides here
+//#define TAPPING_TERM 200
+#define TAPPING_TOGGLE 2
+//#define PERMISSIVE_HOLD
+//#define QMK_KEYS_PER_SCAN 4
+#define FORCE_NKRO
+
+#define MOUSEKEY_INTERVAL 16
+#define MOUSEKEY_DELAY 0
+#define MOUSEKEY_TIME_TO_MAX 60
+#define MOUSEKEY_MAX_SPEED 7
+#define MOUSEKEY_WHEEL_DELAY 0
diff --git a/keyboards/xiudi/xd75/keymaps/tdl-jturner/keymap.c b/keyboards/xiudi/xd75/keymaps/tdl-jturner/keymap.c
new file mode 100644
index 0000000000..b7b98cd4c5
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/tdl-jturner/keymap.c
@@ -0,0 +1,312 @@
+/* Copyright 2018 Josh Turner (/u/tdl-jturner)
+ *
+ * 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 xd75_layers {
+ _QWERTY,
+ _COLEMAK,
+ _LYMD,
+ _LYFK,
+ _LYMED,
+ _LYNUM,
+ _LYNAV,
+ _LYMOS,
+ _LYSYS,
+ _LYLT
+};
+
+enum xd75_keycodes {
+ HELP = SAFE_RANGE,
+ KC_BSDEL,
+ KC_FBSLH,
+ KC_DOTQ,
+ KC_CPIPE,
+ COLEMAK,
+ QWERTY,
+ KC_LYDEF
+};
+
+//Tap Dance Declarations
+enum {
+ TD_LOCK_SLEEP,
+ TD_ABK,
+ TD_BRC,
+ TD_CBR,
+};
+
+//Tap Dance Definitions
+qk_tap_dance_action_t tap_dance_actions[] = {
+ //Tap once for Esc, twice for Caps Lock
+ [TD_LOCK_SLEEP] = ACTION_TAP_DANCE_DOUBLE(LGUI(KC_L), KC_SLEP),
+ [TD_ABK] = ACTION_TAP_DANCE_DOUBLE(KC_LABK,KC_RABK),
+ [TD_BRC] = ACTION_TAP_DANCE_DOUBLE(KC_LBRC,KC_RBRC),
+ [TD_CBR] = ACTION_TAP_DANCE_DOUBLE(KC_LCBR,KC_RCBR)
+// Other declarations would go here, separated by commas, if you have them
+};
+
+//remaps for pretty layouts
+#define ________ KC_TRNS
+#define ___XX___ KC_NO
+
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ //QWERY - Base Layer
+ [_QWERTY] = LAYOUT_ortho_5x15(
+ KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 ,________ ,________,________, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_MINUS,
+ KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T ,________ ,________,________, KC_Y , KC_U , KC_I , KC_O , KC_P ,KC_BSDEL, //Custom shift Codes. Backspace ^ Delete
+LT(_LYMD,KC_ESC), KC_A , KC_S , KC_D , KC_F , KC_G ,________ ,________,________, KC_H , KC_J , KC_K , KC_L ,KC_SCLN ,KC_QUOT,
+ KC_LSPO, KC_Z , KC_X , KC_C , KC_V , KC_B ,________ ,________,________, KC_N , KC_M ,KC_CPIPE,KC_DOTQ ,KC_FBSLH,KC_RSPC, // Custom Shift Codes. ,^| .^? /^|
+ KC_MEH ,KC_LCTL ,KC_LGUI ,KC_LALT ,MO(_LYNUM), KC_SPC ,________ ,________,________, KC_ENT ,MO(_LYNAV),TD(TD_CBR) ,TD(TD_BRC),TD(TD_ABK),TD(TD_LOCK_SLEEP)
+
+ ),
+
+ //_COLEMAK - Colemak Layout - Identical to qwerty layer except for the layout changes
+ [_COLEMAK] = LAYOUT_ortho_5x15(
+ KC_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 ,________ ,________,________, KC_6 , KC_7 , KC_8 , KC_9 , KC_0 ,KC_MINUS,
+ KC_TAB , KC_Q , KC_W , KC_F , KC_P , KC_G ,________ ,________,________, KC_J , KC_L , KC_U , KC_Y ,KC_SCLN ,KC_BSDEL, //Custom shift Codes. Backspace ^ Delete
+LT(_LYMD,KC_ESC), KC_A , KC_R , KC_S , KC_T , KC_D ,________ ,________,________, KC_H , KC_N , KC_E , KC_I , KC_O ,KC_QUOT,
+ KC_LSPO, KC_Z , KC_X , KC_C , KC_V , KC_B ,________ ,________,________, KC_K , KC_M ,KC_CPIPE,KC_DOTQ ,KC_FBSLH,KC_RSPC, // Custom Shift Codes. ,^| .^? /^|
+ KC_MEH ,KC_LCTL ,KC_LGUI ,KC_LALT ,MO(_LYNUM), KC_SPC ,________ ,________,________, KC_ENT ,MO(_LYNAV),TD(TD_CBR) ,TD(TD_BRC),TD(TD_ABK),TD(TD_LOCK_SLEEP)
+
+ ),
+
+ // Decision Layer
+ [_LYMD] =
+ LAYOUT_ortho_5x15(
+ ________,________ ,________ ,________ ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
+ ________,MO(_LYFK) ,MO(_LYMED),________ ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,________,
+ ________,MO(_LYNUM),MO(_LYNAV),________ ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
+ ________,MO(_LYMOS),MO(_LYSYS),MO(_LYLT) ,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
+ ________,________ ,________ ,________ ,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___
+ ),
+
+ //F Keys
+ [_LYFK] =
+ LAYOUT_ortho_5x15(
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
+ KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_F7 ,KC_F8 ,KC_F9 ,KC_F12 ,________,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_F4 ,KC_F5 ,KC_F6 ,KC_F11 ,___XX___,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_F1 ,KC_F2 ,KC_F3 ,KC_F10 ,___XX___,
+ ________,________,________,________,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___
+ ),
+//Media Keys
+[_LYMED] =
+ LAYOUT_ortho_5x15(
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
+ KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_VOLU ,___XX___,___XX___,________,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_MPRV ,KC_MUTE ,KC_MNXT ,___XX___,___XX___,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_VOLD ,___XX___,KC_MSTP ,___XX___,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_MPLY ,___XX___,___XX___,___XX___,___XX___
+ ),
+//Num Keys
+[_LYNUM] =
+ LAYOUT_ortho_5x15(
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_PEQL ,KC_PSLS ,KC_PAST ,KC_PMNS ,___XX___,
+ KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_7 ,KC_8 ,KC_9 ,KC_MINUS,________,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_4 ,KC_5 ,KC_6 ,KC_PPLS ,KC_PSLS,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_1 ,KC_2 ,KC_3 ,KC_PENT ,KC_PAST,
+ ________,________,________,________,________,________,________,________,________,________,KC_0 ,KC_0 ,KC_PDOT ,KC_PEQL ,___XX___
+ ),
+//Navigation Keys
+[_LYNAV] =
+ LAYOUT_ortho_5x15(
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
+ KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_HOME ,KC_UP ,KC_PGUP ,KC_PSCR ,________,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_LEFT ,KC_F5 ,KC_RIGHT,KC_SLCK ,___XX___,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_END ,KC_DOWN ,KC_PGDN ,KC_PAUS ,___XX___,
+ ________,________,________,________,________,________,________,________,________,________,________,KC_INS ,KC_DEL ,___XX___,___XX___
+ ),
+ //Mouse Keys
+ [_LYMOS] =
+ LAYOUT_ortho_5x15(
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
+ KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_MS_U ,KC_WH_U ,KC_ACL2 ,________,
+ _______,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,KC_MS_L ,KC_ACL0 ,KC_MS_R ,KC_ACL1 ,___XX___,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,KC_MS_D ,KC_WH_D ,KC_BTN2 ,___XX___,
+ ________,________,________,________,________,________,________,________,________,________,KC_BTN1 ,KC_BTN3 ,KC_BTN4 ,___XX___,___XX___
+ ),
+ //Systen Keys
+ [_LYSYS] =
+ LAYOUT_ortho_5x15(
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
+ KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,________,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,QWERTY ,COLEMAK ,___XX___,RESET,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
+ ________,________,________,________,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___
+ ),
+
+// Light Control
+[_LYLT] =
+ LAYOUT_ortho_5x15(
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,___XX___,
+ KC_LYDEF,________,________,________,________,________,___XX___,___XX___,___XX___,RGB_HUD ,RGB_HUI ,RGB_SAD ,RGB_SAI ,RGB_VAD ,RGB_VAI,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,RGB_TOG ,RGB_RMOD,RGB_MOD ,___XX___,___XX___,___XX___,
+ ________,________,________,________,________,________,___XX___,___XX___,___XX___,BL_TOGG ,BL_DEC ,BL_INC ,BL_BRTG ,___XX___,___XX___,
+ ________,________,________,________,________,________,________,________,________,________,___XX___,___XX___,___XX___,___XX___,___XX___
+ )
+};
+
+//Define layer colors
+#define rgblight_setrgb_user_base() rgblight_sethsv(325,255,255)
+#define rgblight_setrgb_user_LYFK() rgblight_sethsv_red()
+#define rgblight_setrgb_user_LYMED() rgblight_sethsv_blue()
+#define rgblight_setrgb_user_LYNUM() rgblight_sethsv_purple()
+#define rgblight_setrgb_user_LYNAV() rgblight_sethsv_cyan()
+#define rgblight_setrgb_user_LYMOS() rgblight_sethsv_orange()
+#define rgblight_setrgb_user_LYSYS() rgblight_sethsv_green()
+#define rgblight_setrgb_user_LYLT() rgblight_sethsv_yellow()
+#define rgblight_setrgb_user_LYMD() rgblight_sethsv_white()
+
+//initialize rgb
+void matrix_init_user(void) {
+ rgblight_enable();
+ rgblight_mode(1);
+ rgblight_setrgb_user_base();
+}
+
+//Set a color based on the layer
+layer_state_t layer_state_set_user(layer_state_t state) {
+ switch(biton32(state)) {
+ case _LYFK:
+ rgblight_setrgb_user_LYFK();
+ break;
+ case _LYMED:
+ rgblight_setrgb_user_LYMED();
+ break;
+ case _LYNUM:
+ rgblight_setrgb_user_LYNUM();
+ break;
+ case _LYNAV:
+ rgblight_setrgb_user_LYNAV();
+ break;
+ case _LYMOS:
+ rgblight_setrgb_user_LYMOS();
+ break;
+ case _LYSYS:
+ rgblight_setrgb_user_LYSYS();
+ break;
+ case _LYLT:
+ rgblight_setrgb_user_LYLT();
+ break;
+ case _LYMD:
+ rgblight_setrgb_user_LYMD();
+ break;
+ default:
+ rgblight_setrgb_user_base();
+ break;
+ }
+ return state;
+}
+
+
+//Const for shift
+const uint8_t shift = MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT);
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+
+ switch(keycode) {
+ case KC_LYDEF:
+ layer_clear();
+ return false;
+ break;
+ case QWERTY:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_QWERTY);
+ }
+ return false;
+ break;
+ case COLEMAK:
+ if (record->event.pressed) {
+ set_single_persistent_default_layer(_COLEMAK);
+ }
+ return false;
+ break;
+ case KC_BSDEL:
+ if (record->event.pressed) {
+ if (keyboard_report->mods & shift) {
+ if (keyboard_report->mods & MOD_BIT(KC_LSFT)) {
+ unregister_code(KC_LSHIFT);
+ }
+ else {
+ unregister_code(KC_RSHIFT);
+ }
+ register_code(KC_DEL);
+ }
+ else {
+ register_code(KC_BSPC);
+ }
+ }
+ else {
+ unregister_code(KC_DEL);
+ unregister_code (KC_BSPC);
+ }
+ return false;
+ break;
+ case KC_FBSLH:
+ if (record->event.pressed) {
+ if (keyboard_report->mods & shift) {
+ if (keyboard_report->mods & MOD_BIT(KC_LSFT)) {
+ unregister_code(KC_LSHIFT);
+ }
+ else {
+ unregister_code(KC_RSHIFT);
+ }
+ register_code(KC_BSLASH);
+ }
+ else {
+ register_code(KC_SLSH);
+ }
+ }
+ else {
+ unregister_code(KC_BSLASH);
+ unregister_code (KC_SLSH);
+ }
+ return false;
+ break;
+ case KC_DOTQ:
+ if (record->event.pressed) {
+ if (keyboard_report->mods & shift) {
+ register_code(KC_SLSH); // shifted slash = ?
+ }
+ else {
+ register_code(KC_DOT);
+ }
+ }
+ else {
+ unregister_code(KC_SLSH); // shifted slash = ?
+ unregister_code (KC_DOT);
+ }
+ return false;
+ break;
+ case KC_CPIPE:
+ if (record->event.pressed) {
+ if (keyboard_report->mods & shift) {
+ register_code(KC_BSLS);
+ }
+ else {
+ register_code(KC_COMM);
+ }
+ }
+ else {
+ unregister_code(KC_BSLS);
+ unregister_code (KC_COMM);
+ }
+ return false;
+ break;
+ }
+ return true;
+};
diff --git a/keyboards/xiudi/xd75/keymaps/tdl-jturner/readme.md b/keyboards/xiudi/xd75/keymaps/tdl-jturner/readme.md
new file mode 100644
index 0000000000..835ef09fb2
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/tdl-jturner/readme.md
@@ -0,0 +1,12 @@
+/u/tdl-jturner - XD75 Layout
+===
+
+Keyboard Layout Editor: [Link](http://www.keyboard-layout-editor.com/#/gists/b2b23097ef70fd9170e266e4cbc06c02)
+
+Make Command: make xd75:tdl-jturner
+
+Notes:
+* Based on Qwerty
+* Tweaks for DBA & Programming including tap dance braces on lower right, custom shift codes, and F5 access on Nav layer
+* Layers are all based on layer control on the left and the right is a 10 key pattern
+* Layers include Functions, Media, Numpad, Navigation, Mouse, System, and Lighting
diff --git a/keyboards/xiudi/xd75/keymaps/tdl-jturner/rules.mk b/keyboards/xiudi/xd75/keymaps/tdl-jturner/rules.mk
new file mode 100644
index 0000000000..996d77045e
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/tdl-jturner/rules.mk
@@ -0,0 +1,20 @@
+# Copyright 2018 Josh Turner (/u/tdl-jturner)
+#
+# 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/>.
+
+TAP_DANCE_ENABLE = yes
+MOUSEKEY_ENABLE = yes
+BACKLIGHT_ENABLE = yes
+RGBLIGHT_ENABLE = yes
+
diff --git a/keyboards/xiudi/xd75/keymaps/tomswartz07/keymap.c b/keyboards/xiudi/xd75/keymaps/tomswartz07/keymap.c
new file mode 100644
index 0000000000..175ddb53b2
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/tomswartz07/keymap.c
@@ -0,0 +1,125 @@
+/* Copyright 2017 Wunder
+ *
+ * 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 preonic_layers {
+ _QWERTY,
+ _LOWER,
+ _RAISE,
+ _ADJUST
+};
+
+// Defines the keycodes used by our macros in process_record_user
+enum custom_keycodes {
+ QWERTY = SAFE_RANGE,
+ LOWER,
+ RAISE
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+/* QWERTY
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | `~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | BKSP | - | = | \ |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | TAB | Q | W | E | R | T | Y | U | I | O | P | Del | [ | ] | HOME |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | ESC | A | S | D | F | G | H | J | K | L | ; | ENTER | | | END |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | LSHIFT | Z | X | C | V | B | N | M | , | . | / | ' | | | PG UP |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | LCTRL | LGUI | LALT | LOWER | BKSP | ENTER | SPACE | RAISE | LEFT | DOWN | UP | RIGHT | | | PG DN |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_QWERTY] = LAYOUT_ortho_5x15( /* QWERTY */
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_MINS, KC_EQL, KC_BSLS,
+ KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_DEL, KC_LBRC, KC_RBRC, KC_HOME,
+ KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, KC_NO, KC_NO, KC_END,
+ KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_QUOT, KC_NO, KC_NO, KC_PGUP,
+ KC_LCTL, KC_LGUI, KC_LALT, LOWER, KC_BSPC, KC_ENT, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,KC_RALT, KC_NO, KC_PGDN
+ ),
+
+/* LOWER
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | ~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | BKSP | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | ~ | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | DEL | | | | | | | _ | + | { | } | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | | | | | | | | | | Home | End | | | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | | | | | | | Vol - | VOL + | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_LOWER] = LAYOUT_ortho_5x15( /* LOWER */
+ KC_TILD, 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_TILD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_HOME, KC_END, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, _______, _______, _______, _______
+ ),
+
+/* RAISE
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | `~ | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | BKSP | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------|
+ * | `~ | | | | | | | | | | | Del | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+-----------------+--------|
+ * | DEL | | | | | | | - | = | [ | ] | \ | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------------------------+--------|
+ * | | | | | | | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+-----------------+--------+--------+--------+--------+-----------------+--------+--------|
+ * | | | | | | | | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_RAISE] = LAYOUT_ortho_5x15( /* RAISE */
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, KC_MINS, KC_EQL, KC_BSLS,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+/* ADJUST
+ * .--------------------------------------------------------------------------------------------------------------------------------------.
+ * | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | | | | | RGB HD | RGB HI | | | | | | | PR SCR | SCR LK | INSERT |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | PREV | PLAY | NEXT | | RGB SD | RGB SI | LEFT | DOWN | UP | RIGHT | | RESET | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | VOL- | MUTE | VOL+ |RGB RMD | RGB VD | RGB VI | | | | | | | | | |
+ * |--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------|
+ * | RGB TG | RGB MD | | | | | | | | | | | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+
+ [_ADJUST] = LAYOUT_ortho_5x15( /* ADJUST */
+ _______, 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_NLCK, KC_SLSH,
+ _______, RESET, _______, _______, RGB_HUD, RGB_HUI, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_INS,
+ KC_MPRV, KC_MPLY, KC_MNXT, _______, RGB_SAD, RGB_SAI, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT,_______, RESET, _______, _______, _______,
+ KC_VOLD, KC_MUTE, KC_VOLU, RGB_RMOD,RGB_VAD, RGB_VAI, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ RGB_TOG, RGB_MOD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST);
+}
diff --git a/keyboards/xiudi/xd75/keymaps/via/keymap.c b/keyboards/xiudi/xd75/keymaps/via/keymap.c
new file mode 100644
index 0000000000..a868222671
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/via/keymap.c
@@ -0,0 +1,77 @@
+/* Copyright 2017 Wunder
+ *
+ * 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
+
+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 |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+ [0] = LAYOUT_ortho_5x15(
+ 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(1), KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, KC_SPC, MO(1), 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 | | | |
+ * '--------------------------------------------------------------------------------------------------------------------------------------'
+ */
+ [1] = LAYOUT_ortho_5x15(
+ 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, _______, RGB_RMOD,RGB_MOD, KC_P0, _______, KC_PDOT, KC_PENT, KC_PENT, _______, _______, _______, _______
+ ),
+
+ [2] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ ),
+
+ [3] = LAYOUT_ortho_5x15(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
+ )
+};
diff --git a/keyboards/xiudi/xd75/keymaps/via/readme.md b/keyboards/xiudi/xd75/keymaps/via/readme.md
new file mode 100644
index 0000000000..27cb965eba
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/via/readme.md
@@ -0,0 +1 @@
+# The VIA default layout
diff --git a/keyboards/xiudi/xd75/keymaps/via/rules.mk b/keyboards/xiudi/xd75/keymaps/via/rules.mk
new file mode 100644
index 0000000000..1e5b99807c
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/via/rules.mk
@@ -0,0 +1 @@
+VIA_ENABLE = yes
diff --git a/keyboards/xiudi/xd75/keymaps/xo/config.h b/keyboards/xiudi/xd75/keymaps/xo/config.h
new file mode 100644
index 0000000000..31cdef2578
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/xo/config.h
@@ -0,0 +1,19 @@
+/* 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 3 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 <https://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#define TAPPING_TOGGLE 2
+#define PERMISSIVE_HOLD
+#define TAPPING_TERM 150
diff --git a/keyboards/xiudi/xd75/keymaps/xo/keymap.c b/keyboards/xiudi/xd75/keymaps/xo/keymap.c
new file mode 100644
index 0000000000..6fe547e87a
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/xo/keymap.c
@@ -0,0 +1,72 @@
+/* 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 3 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 <https://www.gnu.org/licenses/>.
+ */
+#include QMK_KEYBOARD_H
+
+// You might want to alter this to something that matches the keycap LED colors
+// you installed.
+#define BASE_COLOR RGB_ORANGE
+
+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_MINS, KC_GRV, KC_EQL, KC_6, KC_7, KC_8, KC_9, KC_0, KC_RBRC,
+ 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_LBRC,
+ KC_BSPC, 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_QUOT,
+ KC_LSFT, LCTL_T(KC_Z), LALT_T(KC_X), KC_C, KC_V, KC_B, KC_END, KC_UP, KC_PGDN, KC_N, KC_M, KC_COMM, RALT_T(KC_DOT), RCTL_T(KC_SLSH), KC_RSFT,
+ TT(1), KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_SPC, KC_LEFT, KC_DOWN, KC_RGHT, KC_SPC, KC_ENT, KC_RGUI, KC_RALT, KC_RCTL, TT(1)),
+ [1] = LAYOUT_ortho_5x15(
+ KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_P7, KC_P8, KC_P9, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
+ LCTL(KC_GRV), KC_CALC, KC_MYCM, KC_MAIL, RGB_HUD, RGB_HUI, KC_P4, KC_P5, KC_P6, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18,
+ KC_CAPSLOCK, KC_TRNS, KC_TRNS, KC_MSTP, RGB_SAD, RGB_SAI, KC_P1, KC_P2, KC_P3, KC_PLUS, KC_TRNS, RESET, KC_MUTE, KC_VOLD, KC_VOLU,
+ MO(2), KC_PSCR, KC_PAUS, KC_APP, RGB_VAD, RGB_VAI, KC_P0, KC_SLSH, KC_PDOT, KC_PENT, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT,
+ TG(1), KC_TRNS, RGB_TOG, KC_SLCK, RGB_RMOD, RGB_MOD, KC_NLCK, KC_TRNS, KC_ASTR, KC_PENT, KC_PENT, MO(1), KC_TRNS, KC_TRNS, TG(1)),
+ [2] = 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, 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_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, BL_DEC, BL_INC, BL_TOGG,
+ KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, RGB_HUD, RGB_HUI, RGB_VAD, RGB_VAI, RGB_TOG)
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ backlight_level(4);
+ } else {
+ backlight_level(6);
+ }
+
+ if (IS_MOD(keycode)) {
+ if (record->event.pressed) {
+ rgblight_setrgb(RGB_RED);
+ } else {
+ rgblight_setrgb(BASE_COLOR);
+ }
+ }
+
+ return true;
+}
+
+layer_state_t layer_state_set_user(layer_state_t state) {
+ switch (get_highest_layer(state)) {
+ case 0:
+ rgblight_setrgb(BASE_COLOR);
+ break;
+ case 1:
+ rgblight_setrgb(RGB_AZURE);
+ break;
+ case 2:
+ rgblight_setrgb(RGB_PURPLE);
+ break;
+ }
+ return state;
+}
diff --git a/keyboards/xiudi/xd75/keymaps/xo/readme.md b/keyboards/xiudi/xd75/keymaps/xo/readme.md
new file mode 100644
index 0000000000..d8ecb1c2a3
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/xo/readme.md
@@ -0,0 +1,6 @@
+# xster's keymap
+
+My layout preferences. Done on a xd75 that had keycap LEDs.
+
+It has reactive keypress keycap light dimming. Layers and modifiers have
+RGB underlit colors.
diff --git a/keyboards/xiudi/xd75/keymaps/xo/rules.mk b/keyboards/xiudi/xd75/keymaps/xo/rules.mk
new file mode 100644
index 0000000000..baa653f780
--- /dev/null
+++ b/keyboards/xiudi/xd75/keymaps/xo/rules.mk
@@ -0,0 +1,14 @@
+# 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 3 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 <https://www.gnu.org/licenses/>.
+
+BACKLIGHT_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/xiudi/xd75/readme.md b/keyboards/xiudi/xd75/readme.md
new file mode 100644
index 0000000000..65da5cc02a
--- /dev/null
+++ b/keyboards/xiudi/xd75/readme.md
@@ -0,0 +1,57 @@
+# XD75
+
+![XD75](https://cdn.shopify.com/s/files/1/2711/4238/products/HTB1MzOISXXXXXXgXpXXq6xXFXXXO_1024x1024.jpg)
+
+The XD75 is a 15x5 full-grid ortholinear keyboard manufactured by XIUDI. Available in two different versions: XD75Re with hot swap switch sockets and XD75Am with Alps+MX Stem support that needs soldering.
+
+This port of the QMK firmware is my first shot at using QMK, so if you see any features done wrong (or just plain missing), feel free to fix them and put in a pull request!
+
+* Keyboard Maintainer: [The QMK Community](https://github.com/qmk)
+* Hardware Supported: XD75Re, XD75Am
+* Hardware Availability: [KPrepublic](https://kprepublic.com/products/xd75re-xd75am-xd75-xiudi-60-custom-keyboard-pcb), [AliExpress](https://www.aliexpress.com/item/xd75re-Custom-Mechanical-Keyboard-75-keys-TKG-TOOLS-Underglow-RGB-PCB-GH60-60-programmed-gh60-kle/32818745981.html)
+
+Make example for this keyboard (after setting up your build environment):
+
+ make xd75:default
+
+Flashing example for this keyboard:
+
+ make xd75:default:flash
+
+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).
+
+## LED Control
+
+There are 3 individual LEDs that can be turned on and off. The functions are named according to how they're labeled on the PCB.
+
+TODO: it would be nice to have PWM support on these LEDs for fade-in/fade-out effects.
+
+```c
+capslock_led_on();
+gp100_led_on();
+gp103_led_on();
+
+bool led_update_user(led_t led_state) {
+ if (led_state.caps_lock) {
+ capslock_led_on();
+ } else {
+ capslock_led_off();
+ }
+
+ if (some_custom_state) {
+ gp100_led_on();
+ } else {
+ gp100_led_off();
+ }
+
+ return false;
+}
+```
+
+For the curious:
+
+```
+CAPSLOCK_LED B2
+GP103_LED F4
+GP100_LED F7
+```
diff --git a/keyboards/xiudi/xd75/rules.mk b/keyboards/xiudi/xd75/rules.mk
new file mode 100644
index 0000000000..e032cb874e
--- /dev/null
+++ b/keyboards/xiudi/xd75/rules.mk
@@ -0,0 +1,24 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = lite # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # Mouse keys
+EXTRAKEY_ENABLE = yes # Audio control and System control
+CONSOLE_ENABLE = no # 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 = yes # Enable keyboard RGB underglow
+BLUETOOTH_ENABLE = no # Enable Bluetooth
+AUDIO_ENABLE = no # Audio output
+
+LAYOUTS = ortho_5x15
diff --git a/keyboards/xiudi/xd75/xd75.c b/keyboards/xiudi/xd75/xd75.c
new file mode 100644
index 0000000000..b016643572
--- /dev/null
+++ b/keyboards/xiudi/xd75/xd75.c
@@ -0,0 +1,68 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+
+#include "xd75.h"
+
+#define XD75_CAPSLOCK_LED B2
+#define XD75_GP103_LED F4
+#define XD75_GP100_LED F7
+
+void matrix_init_kb(void) {
+ capslock_led_init();
+ gp100_led_init();
+ gp103_led_init();
+
+ matrix_init_user();
+}
+
+void capslock_led_init(void) {
+ setPinOutput(XD75_CAPSLOCK_LED);
+ capslock_led_off();
+}
+
+void capslock_led_off(void) {
+ writePinHigh(XD75_CAPSLOCK_LED);
+}
+
+void capslock_led_on(void) {
+ writePinLow(XD75_CAPSLOCK_LED);
+}
+
+void gp100_led_init(void) {
+ setPinOutput(XD75_GP100_LED);
+ gp100_led_off();
+}
+
+void gp100_led_off(void) {
+ writePinHigh(XD75_GP100_LED);
+}
+
+void gp100_led_on(void) {
+ writePinLow(XD75_GP100_LED);
+}
+
+void gp103_led_init(void) {
+ setPinOutput(XD75_GP103_LED);
+ gp103_led_off();
+}
+
+void gp103_led_off(void) {
+ writePinLow(XD75_GP103_LED);
+}
+
+void gp103_led_on(void) {
+ writePinHigh(XD75_GP103_LED);
+}
diff --git a/keyboards/xiudi/xd75/xd75.h b/keyboards/xiudi/xd75/xd75.h
new file mode 100644
index 0000000000..33f2ec92a5
--- /dev/null
+++ b/keyboards/xiudi/xd75/xd75.h
@@ -0,0 +1,55 @@
+/* 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 <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include "quantum.h"
+
+void capslock_led_init(void);
+void capslock_led_off(void);
+void capslock_led_on(void);
+
+void gp100_led_init(void);
+void gp100_led_off(void);
+void gp100_led_on(void);
+
+void gp103_led_init(void);
+void gp103_led_off(void);
+void gp103_led_on(void);
+
+/* This is 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 } \
+}
+
+#define LAYOUT LAYOUT_ortho_5x15