summaryrefslogtreecommitdiffstats
path: root/keyboards/kbdfans/kbd67
diff options
context:
space:
mode:
authorlokher <lokher@gmail.com>2022-12-06 17:04:10 +0800
committerlokher <lokher@gmail.com>2022-12-06 17:04:10 +0800
commit27fc28fd2ff52e079a5bc58d6aaea4c752420615 (patch)
tree7ac943fb1ba4f430a7220efd18f66f6a77205c30 /keyboards/kbdfans/kbd67
parente736133392fe6427cfb995da0787337189828272 (diff)
parent2709b6ed616f8012ff4cfd3ee69a822a8d188351 (diff)
Merge upstream master
Diffstat (limited to 'keyboards/kbdfans/kbd67')
-rw-r--r--keyboards/kbdfans/kbd67/hotswap/config.h131
-rw-r--r--keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/keymap.c102
-rw-r--r--keyboards/kbdfans/kbd67/hotswap/keymaps/madhatter/config.h20
-rw-r--r--keyboards/kbdfans/kbd67/hotswap/keymaps/stevanmilic/keymap.c79
-rw-r--r--keyboards/kbdfans/kbd67/hotswap/keymaps/zunger/keymap.c176
-rw-r--r--keyboards/kbdfans/kbd67/mkii_soldered/keymaps/adamdehaven/keymap.c71
-rw-r--r--keyboards/kbdfans/kbd67/mkii_soldered/keymaps/ai03/keymap.c41
-rw-r--r--keyboards/kbdfans/kbd67/mkii_soldered/keymaps/ansi/keymap.c33
-rw-r--r--keyboards/kbdfans/kbd67/mkii_soldered/keymaps/ansi_split_bs/keymap.c33
-rw-r--r--keyboards/kbdfans/kbd67/mkii_soldered/keymaps/default/keymap.c33
-rw-r--r--keyboards/kbdfans/kbd67/mkii_soldered/keymaps/iso/keymap.c32
-rw-r--r--keyboards/kbdfans/kbd67/mkii_soldered/keymaps/via/keymap.c50
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/codecoffeecode/keymap.c41
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/cykedev/keymap.c110
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/default/keymap.c17
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/dnsnrk/keymap.c96
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/config.h39
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/jonavin/keymap.c124
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/kemmeldev/import-for-qmk-configurator/kemmeldev-4-layered-layout.json1
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/kemmeldev/keymap.c8
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/kemmeldev/layers.json1
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/mikefightsbears/keymap.c19
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/pascalpfeil/keymap.c48
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/spx01/config.h41
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/spx01/keymap.c158
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/keymaps/via/keymap.c29
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/v1/config.h71
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c108
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/v2/config.h71
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c125
-rwxr-xr-xkeyboards/kbdfans/kbd67/mkiirgb/v3/config.h93
-rwxr-xr-xkeyboards/kbdfans/kbd67/mkiirgb/v3/v3.c158
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/v4/config.h105
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb/v4/v4.c52
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb_iso/config.h94
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/default/keymap.c34
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb_iso/keymaps/via/keymap.c48
-rw-r--r--keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c51
-rw-r--r--keyboards/kbdfans/kbd67/rev1/config.h128
-rw-r--r--keyboards/kbdfans/kbd67/rev1/keymaps/default/keymap.c87
-rw-r--r--keyboards/kbdfans/kbd67/rev1/keymaps/koba/keymap.c61
-rw-r--r--keyboards/kbdfans/kbd67/rev1/keymaps/martinffx/keymap.c99
-rw-r--r--keyboards/kbdfans/kbd67/rev1/keymaps/via/keymap.c75
-rw-r--r--keyboards/kbdfans/kbd67/rev2/config.h64
-rw-r--r--keyboards/kbdfans/kbd67/rev2/keymaps/adi/keymap.c18
-rw-r--r--keyboards/kbdfans/kbd67/rev2/keymaps/ansi_blocker/keymap.c33
-rw-r--r--keyboards/kbdfans/kbd67/rev2/keymaps/ansi_blocker_splitbs/keymap.c32
-rw-r--r--keyboards/kbdfans/kbd67/rev2/keymaps/ansi_split_space/keymap.c59
-rw-r--r--keyboards/kbdfans/kbd67/rev2/keymaps/brandonschlack/keymap.c102
-rw-r--r--keyboards/kbdfans/kbd67/rev2/keymaps/default/keymap.c87
-rw-r--r--keyboards/kbdfans/kbd67/rev2/keymaps/droxx/config.h30
-rw-r--r--keyboards/kbdfans/kbd67/rev2/keymaps/droxx/keymap.c71
-rw-r--r--keyboards/kbdfans/kbd67/rev2/keymaps/iso/keymap.c62
-rw-r--r--keyboards/kbdfans/kbd67/rev2/keymaps/jscatena88/keymap.c58
-rw-r--r--keyboards/kbdfans/kbd67/rev2/keymaps/koba/keymap.c61
-rw-r--r--keyboards/kbdfans/kbd67/rev2/keymaps/rouge8/keymap.c60
-rw-r--r--keyboards/kbdfans/kbd67/rev2/keymaps/tucznak/config.h16
-rw-r--r--keyboards/kbdfans/kbd67/rev2/keymaps/tucznak/keymap.c90
-rw-r--r--keyboards/kbdfans/kbd67/rev2/keymaps/via/keymap.c77
59 files changed, 3913 insertions, 0 deletions
diff --git a/keyboards/kbdfans/kbd67/hotswap/config.h b/keyboards/kbdfans/kbd67/hotswap/config.h
new file mode 100644
index 0000000000..f73e04b70c
--- /dev/null
+++ b/keyboards/kbdfans/kbd67/hotswap/config.h
@@ -0,0 +1,131 @@
+/*
+Copyright 2019 MechMerlin
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program. If not, see <http://www.gnu.org/licenses/>.
+*/
+
+#pragma once
+
+#include "config_common.h"
+
+/* 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 { B3, B2, B1, B0, D4 }
+#define MATRIX_COL_PINS { C7, F7, F6, F5, F4, F1, E6, D1, D0, D2, D3, D5, D6, D7, C6 }
+
+/* COL2ROW, ROW2COL*/
+#define DIODE_DIRECTION COL2ROW
+
+/*
+ * Split Keyboard specific options, make sure you have 'SPLIT_KEYBOARD = yes' in your rules.mk, and define SOFT_SERIAL_PIN.
+ */
+#define SOFT_SERIAL_PIN D0 // or D1, D2, D3, E6
+
+#define BACKLIGHT_PIN B7
+#ifdef BACKLIGHT_PIN
+#define BACKLIGHT_BREATHING
+#define BACKLIGHT_LEVELS 3
+#endif
+#define RGB_DI_PIN B4
+#ifdef RGB_DI_PIN
+ #define RGBLED_NUM 8
+ #define RGBLIGHT_HUE_STEP 8
+ #define RGBLIGHT_SAT_STEP 8
+ #define RGBLIGHT_VAL_STEP 8
+ #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_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
+#define RGBLIGHT_EFFECT_TWINKLE
+ #define RGBLIGHT_SLEEP
+#endif
+
+/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
+#define DEBOUNCE 5
+
+/* define if matrix has ghost (lacks anti-ghosting diodes) */
+//#define MATRIX_HAS_GHOST
+
+/* number of backlight levels */
+
+/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
+#define LOCKING_SUPPORT_ENABLE
+/* Locking resynchronize hack */
+#define LOCKING_RESYNC_ENABLE
+
+/* If defined, GRAVE_ESC will always act as ESC when CTRL is held.
+ * This is userful for the Windows task manager shortcut (ctrl+shift+esc).
+ */
+// #define GRAVE_ESC_CTRL_OVERRIDE
+
+/*
+ * Force NKRO
+ *
+ * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved
+ * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the
+ * makefile for this to work.)
+ *
+ * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N)
+ * until the next keyboard reset.
+ *
+ * NKRO may prevent your keystrokes from being detected in the BIOS, but it is
+ * fully operational during normal computer usage.
+ *
+ * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N)
+ * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by
+ * bootmagic, NKRO mode will always be enabled until it is toggled again during a
+ * power-up.
+ *
+ */
+//#define FORCE_NKRO
+
+/*
+ * Feature disable options
+ * These options are also useful to firmware size reduction.
+ */
+
+/* disable debug print */
+//#define NO_DEBUG
+
+/* disable print */
+//#define NO_PRINT
+
+/* disable action features */
+//#define NO_ACTION_LAYER
+//#define NO_ACTION_TAPPING
+//#define NO_ACTION_ONESHOT
+
+/* Bootmagic Lite key configuration */
+// #define BOOTMAGIC_LITE_ROW 0
+// #define BOOTMAGIC_LITE_COLUMN 0
diff --git a/keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/keymap.c b/keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/keymap.c
new file mode 100644
index 0000000000..1066882321
--- /dev/null
+++ b/keyboards/kbdfans/kbd67/hotswap/keymaps/brandonschlack/keymap.c
@@ -0,0 +1,102 @@
+/* Copyright 2019 Brandon Schlack
+ *
+ * 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 "brandonschlack.h"
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+/* Base Layer
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │Esc│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│| \│~ `│Hom│
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
+ * │Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│ Bspc│PgU│
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
+ * │Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter│PgD│
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
+ * │Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift│ Up│End│
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
+ * │Ctrl│ Opt│ Cmd│ Space │Cmd │FnPy│ │Lef│Dow│Rig│
+ * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
+ */
+[_BASE] = LAYOUT(
+ KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_HOME, \
+ 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_PGUP, \
+ HY_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_PGDN, \
+ 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_END, \
+ KC_LCTL, KC_LOPT, KC_LCMD, KC_SPC, KC_RCMD, PLY_FN1, KC_LEFT, KC_DOWN, KC_RGHT),
+
+/* Function Layer
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │MKE│ F1│ F2│ F3│ F4│ F5│ F6│ F7│ F8│ F9│F10│F11│F12│LHP│MSN│SLP│
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
+ * │ │ │ │ │RST│ │ │ │ │ │F13│F14│F15│ Del│VlU│
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
+ * │ │ │ │ │ │ │ │ │KMP│ │ │ │ Adjust │VlD│
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
+ * │ │ │ │ │VRN│ │ │ │Prv│Nxt│Ply│ │PgU│Mut│
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
+ * │ │ │ │ │ │ │ │Hom│PgD│End│
+ * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
+ */
+[_FN1] = LAYOUT(
+ QM_MAKE, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, MC_LHPD, MC_MSSN, MC_SLPD, \
+ _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, KC_F13, KC_F14, KC_F15, KC_DEL, KC_VOLU, \
+ _______, _______, _______, _______, _______, _______, _______, _______, QM_KYMP, _______, _______, _______, TG_ADJT, KC_VOLD, \
+ _______, _______, _______, _______, QM_VRSN, _______, _______, _______, KC_MPRV, KC_MNXT, KC_MPLY, _______, KC_PGUP, KC_MUTE, \
+ _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ),
+
+/* Adjust Layer Layer
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
+ * │ │ │ │EEP│RST│ │ │ │ │ │ │ │ │ │ │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ Adjust │ │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
+ * │ │ │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
+ */
+[_ADJUST] = LAYOUT(
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
+ XXXXXXX, XXXXXXX, XXXXXXX, EE_CLR, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, \
+ XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, TG_ADJT, XXXXXXX, \
+ _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, XXXXXXX, XXXXXXX, \
+ _______, _______, _______, XXXXXXX, _______, _______, XXXXXXX, XXXXXXX, XXXXXXX),
+};
+
+/* Blank Template
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
+ * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
+ * │ │ │ │ │ │ │ │ │ │ │
+ * └────┴────┴────┴────────────────────────┴────┴────┴─┴───┴───┴───┘
+ */
+/*
+[_BLANK] = LAYOUT(
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, \
+ _______, _______, _______, _______, _______, _______, _______, _______, _______),
+};
+*/
diff --git a/keyboards/kbdfans/kbd67/hotswap/keymaps/madhatter/config.h b/keyboards/kbdfans/kbd67/hotswap/keymaps/madhatter/config.h
new file mode 100644
index 0000000000..798dd7b297
--- /dev/null
+++ b/keyboards/kbdfans/kbd67/hotswap/keymaps/madhatter/config.h
@@ -0,0 +1,20 @@
+/* Copyright 2021 Khader Syed
+ *
+ * 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
+
+#undef PRODUCT
+#define PRODUCT "MadHatter's Hotswap Kbd67 rev1"
diff --git a/keyboards/kbdfans/kbd67/hotswap/keymaps/stevanmilic/keymap.c b/keyboards/kbdfans/kbd67/hotswap/keymaps/stevanmilic/keymap.c
new file mode 100644
index 0000000000..1b5a6586f4
--- /dev/null
+++ b/keyboards/kbdfans/kbd67/hotswap/keymaps/stevanmilic/keymap.c
@@ -0,0 +1,79 @@
+#include QMK_KEYBOARD_H
+
+#define FN MO(L_FN)
+#define FN_CAPS LT(L_FN, KC_CAPS)
+#define FN_ESC LT(L_FN, KC_ESC)
+#define FN_FNLK TT(L_FN)
+
+#define MV_UP LCTL(KC_UP)
+#define MV_DOWN LCTL(KC_DOWN)
+#define MV_LEFT LCTL(KC_LEFT)
+#define MV_RGHT LCTL(KC_RGHT)
+#define TOP LCTL(KC_HOME)
+#define BOTTOM LCTL(KC_END)
+
+enum keycodes {
+ CLEAR = SAFE_RANGE,
+};
+
+enum layers {
+ L_BASE,
+ L_FN,
+};
+
+bool process_record_user(uint16_t keycode, keyrecord_t *record) {
+ switch (keycode) {
+ case CLEAR:
+ if (record->event.pressed) {
+ SEND_STRING(SS_LCTL("a") SS_TAP(X_DELETE));
+ }
+ return false;
+
+ default:
+ return true;
+ }
+}
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+ /* Base layer
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ \ │ ` │PSc│
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
+ * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bspc │Del│
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
+ * │FnEsc │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgU│
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
+ * │ LShift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │RShift│ ↑ │PgD│
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
+ * │LCtl│LGui│LAlt│ Space │RAlt│FnLk│ │ ← │ ↓ │ → │
+ * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
+ */
+ [L_BASE] = LAYOUT(
+ KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV, KC_PSCR, \
+ 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_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_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_RALT, FN_FNLK, KC_LEFT, KC_DOWN, KC_RGHT \
+ ),
+
+ /* Function layer
+ * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
+ * │ │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│NLk│SLk│Pau│
+ * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤
+ * │ │M2 │M↑ │M1 │M3 │ │ │ │ │Stp│Ply│Prv│Nxt│Clear│Ins│
+ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤
+ * │ │M← │M↓ │M→ │MW↑│ │ │Mv←│ ↓ │ ↑ │Mv→│ │ │Top│
+ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
+ * │ │MA0│MA2│MW←│MW→│ │ │App│Vo-│Vo+│Mut│ │PgU│Btm│
+ * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
+ * │ │DtPR│DtNA│ MW↓ │ │ │ │Hom│PgD│End│
+ * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
+ */
+ [L_FN] = LAYOUT(
+ _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_NUM, KC_SCRL, KC_PAUS, \
+ _______, KC_BTN2, KC_MS_U, KC_BTN1, KC_BTN3, _______, _______, _______, _______,