From 5447b075f946dcf8fb931e49083f5098042a7261 Mon Sep 17 00:00:00 2001
From: peepeetee <43021794+peepeetee@users.noreply.github.com>
Date: Thu, 8 Dec 2022 10:47:38 -0600
Subject: [PATCH] [Keyboard] Add momokai tap duo (#19042)
---
keyboards/momokai/tap_duo/config.h | 132 ++++++++++++++++++
keyboards/momokai/tap_duo/info.json | 23 +++
.../momokai/tap_duo/keymaps/default/keymap.c | 27 ++++
.../momokai/tap_duo/keymaps/via/keymap.c | 42 ++++++
.../momokai/tap_duo/keymaps/via/rules.mk | 2 +
keyboards/momokai/tap_duo/readme.md | 12 ++
keyboards/momokai/tap_duo/rules.mk | 20 +++
keyboards/momokai/tap_duo/tap_duo.c | 31 ++++
keyboards/momokai/tap_duo/tap_duo.h | 26 ++++
9 files changed, 315 insertions(+)
create mode 100644 keyboards/momokai/tap_duo/config.h
create mode 100644 keyboards/momokai/tap_duo/info.json
create mode 100644 keyboards/momokai/tap_duo/keymaps/default/keymap.c
create mode 100644 keyboards/momokai/tap_duo/keymaps/via/keymap.c
create mode 100644 keyboards/momokai/tap_duo/keymaps/via/rules.mk
create mode 100644 keyboards/momokai/tap_duo/readme.md
create mode 100644 keyboards/momokai/tap_duo/rules.mk
create mode 100644 keyboards/momokai/tap_duo/tap_duo.c
create mode 100644 keyboards/momokai/tap_duo/tap_duo.h
diff --git a/keyboards/momokai/tap_duo/config.h b/keyboards/momokai/tap_duo/config.h
new file mode 100644
index 0000000000..b470cfb6e5
--- /dev/null
+++ b/keyboards/momokai/tap_duo/config.h
@@ -0,0 +1,132 @@
+/* Copyright 2022 Momokai
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#pragma once
+
+#include "config_common.h"
+
+#define MATRIX_ROWS 1
+#define MATRIX_COLS 5
+
+#define MATRIX_ROW_PINS { E0 }
+#define MATRIX_COL_PINS { E6, B2, D1, D2, D3 }
+
+#define DIODE_DIRECTION COL2ROW
+
+
+// Tweak how the mouse cursor moves. https://docs.qmk.fm/#/feature_mouse_keys
+// Accelerated mode (default).
+#define MOUSEKEY_DELAY 10
+#define MOUSEKEY_INTERVAL 20
+#define MOUSEKEY_MOVE_DELTA 8
+#define MOUSEKEY_MAX_SPEED 10
+#define MOUSEKEY_TIME_TO_MAX 30
+#define MOUSEKEY_WHEEL_DELAY 10
+#define MOUSEKEY_WHEEL_INTERVAL 80
+#define MOUSEKEY_WHEEL_MAX_SPEED 8
+#define MOUSEKEY_WHEEL_TIME_TO_MAX 40
+
+
+//TODO: implement RGB Matrix
+#define RGB_DI_PIN F0
+#define RGBLED_NUM 4
+#define RGBLIGHT_HUE_STEP 8
+#define RGBLIGHT_SAT_STEP 8
+#define RGBLIGHT_VAL_STEP 8
+
+#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL
+
+
+/*== 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
+
+
+// #ifdef RGB_DI_PIN
+// #define DRIVER_LED_TOTAL 5
+
+// #define RGB_MATRIX_KEYPRESSES // reacts to keypresses
+// // # define RGBLIGHT_LIMIT_VAL 180 // Limit to vendor-recommended value
+// #endif
+// #ifdef RGB_MATRIX_ENABLE
+// // # define RGB_MATRIX_MAXIMUM_BRIGHTNESS 180 // Limit to vendor-recommended value
+// // RGB Matrix Animation modes. Explicitly enabled
+// // For full list of effects, see:
+// // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects
+// #define ENABLE_RGB_MATRIX_SOLID_COLOR
+// #define ENABLE_RGB_MATRIX_ALPHAS_MODS
+// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN
+// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
+// #define ENABLE_RGB_MATRIX_BREATHING
+// // #define ENABLE_RGB_MATRIX_BAND_SAT
+// // #define ENABLE_RGB_MATRIX_BAND_VAL
+// // #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
+// // #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
+// // #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT
+// // #define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL
+// #define ENABLE_RGB_MATRIX_CYCLE_ALL
+// #define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT
+// #define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN
+// // #define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON
+// #define ENABLE_RGB_MATRIX_CYCLE_OUT_IN
+// // #define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL
+// #define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL
+// #define ENABLE_RGB_MATRIX_CYCLE_SPIRAL
+// // #define ENABLE_RGB_MATRIX_DUAL_BEACON
+// #define ENABLE_RGB_MATRIX_RAINBOW_BEACON
+// // #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS
+// #define ENABLE_RGB_MATRIX_RAINDROPS
+// #define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
+// #define ENABLE_RGB_MATRIX_HUE_BREATHING
+// #define ENABLE_RGB_MATRIX_HUE_PENDULUM
+// #define ENABLE_RGB_MATRIX_HUE_WAVE
+// #define ENABLE_RGB_MATRIX_PIXEL_RAIN
+// #define ENABLE_RGB_MATRIX_PIXEL_FLOW
+// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL
+
+// // enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined
+// // #define ENABLE_RGB_MATRIX_TYPING_HEATMAP
+// // #define ENABLE_RGB_MATRIX_DIGITAL_RAIN
+
+// // enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined
+// // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
+// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE
+// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE
+// #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE
+// // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS
+// // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS
+// // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS
+// // #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS
+// #define ENABLE_RGB_MATRIX_SPLASH
+// // #define ENABLE_RGB_MATRIX_MULTISPLASH
+// #define ENABLE_RGB_MATRIX_SOLID_SPLASH
+// // #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH
+// #endif
diff --git a/keyboards/momokai/tap_duo/info.json b/keyboards/momokai/tap_duo/info.json
new file mode 100644
index 0000000000..d24aeaace5
--- /dev/null
+++ b/keyboards/momokai/tap_duo/info.json
@@ -0,0 +1,23 @@
+{
+ "keyboard_name": "Tap Duo",
+ "manufacturer": "Momokai",
+ "url": "",
+ "maintainer": "qmk",
+ "usb": {
+ "vid": "0x69F9",
+ "pid": "0x0005",
+ "device_version": "0.0.1"
+ },
+ "layouts": {
+ "LAYOUT": {
+ "layout": [
+ { "label": "K00 (E0,E6)", "x": 0.25, "y": 0 },
+ { "label": "K01 (E0,B2)", "x": 1.25, "y": 0 },
+ { "label": "K02 (E0,D1)", "x": 0.75, "y": 1.25, "w": 0.5, "h": 0.5 },
+ { "label": "K03 (E0,D2)", "x": 1.25, "y": 1.25, "w": 0.5, "h": 0.5 },
+ { "label": "K04 (E0,D3)", "x": 1.75, "y": 1.25, "w": 0.5, "h": 0.5 }
+ ]
+ }
+ }
+ ,"meta": "https://noroadsleft.github.io/kbf_qmk_converter/"
+}
diff --git a/keyboards/momokai/tap_duo/keymaps/default/keymap.c b/keyboards/momokai/tap_duo/keymaps/default/keymap.c
new file mode 100644
index 0000000000..0b40a81a21
--- /dev/null
+++ b/keyboards/momokai/tap_duo/keymaps/default/keymap.c
@@ -0,0 +1,27 @@
+/* Copyright 2022 Momokai
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT(
+ KC_Z, KC_X,
+ KC_GRV, KC_ESC, KC_F2
+ ),
+
+
+};
diff --git a/keyboards/momokai/tap_duo/keymaps/via/keymap.c b/keyboards/momokai/tap_duo/keymaps/via/keymap.c
new file mode 100644
index 0000000000..4f4cd82c58
--- /dev/null
+++ b/keyboards/momokai/tap_duo/keymaps/via/keymap.c
@@ -0,0 +1,42 @@
+/* Copyright 2022 Momokai
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include QMK_KEYBOARD_H
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+
+ [0] = LAYOUT(
+ KC_Z, KC_X,
+ KC_GRV, KC_ESC, KC_F2
+ ),
+
+ [1] = LAYOUT(
+ KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ [2] = LAYOUT(
+ KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+ [3] = LAYOUT(
+ KC_TRNS, KC_TRNS,
+ KC_TRNS, KC_TRNS, KC_TRNS
+ ),
+
+
+};
diff --git a/keyboards/momokai/tap_duo/keymaps/via/rules.mk b/keyboards/momokai/tap_duo/keymaps/via/rules.mk
new file mode 100644
index 0000000000..36b7ba9cbc
--- /dev/null
+++ b/keyboards/momokai/tap_duo/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
+VIA_ENABLE = yes
+LTO_ENABLE = yes
diff --git a/keyboards/momokai/tap_duo/readme.md b/keyboards/momokai/tap_duo/readme.md
new file mode 100644
index 0000000000..8027955ba2
--- /dev/null
+++ b/keyboards/momokai/tap_duo/readme.md
@@ -0,0 +1,12 @@
+# Momokai tap trio
+
+
+* Keyboard Maintainer: [peepeetee](https://github.com/peepeetee)
+
+
+Make example for this keyboard (after setting up your build environment):
+
+ make momokai/tap_trio:default
+
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/momokai/tap_duo/rules.mk b/keyboards/momokai/tap_duo/rules.mk
new file mode 100644
index 0000000000..59e0e1381f
--- /dev/null
+++ b/keyboards/momokai/tap_duo/rules.mk
@@ -0,0 +1,20 @@
+# MCU name
+MCU = atmega32u4
+
+# Bootloader selection
+BOOTLOADER = atmel-dfu
+
+# Build Options
+# change yes to no to disable
+#
+BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
+MOUSEKEY_ENABLE = yes # 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 = no # Enable N-Key Rollover
+BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
+RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
+AUDIO_ENABLE = no # Audio output
+
+LTO_ENABLE = yes
diff --git a/keyboards/momokai/tap_duo/tap_duo.c b/keyboards/momokai/tap_duo/tap_duo.c
new file mode 100644
index 0000000000..2216c37f43
--- /dev/null
+++ b/keyboards/momokai/tap_duo/tap_duo.c
@@ -0,0 +1,31 @@
+/* Copyright 2022 Momokai
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include "tap_duo.h"
+
+// #ifdef RGB_MATRIX_ENABLE
+// led_config_t g_led_config = { {
+// // Key Matrix to LED Index
+// { 0, 1, 2, NO_LED, NO_LED, NO_LED}
+// }, {
+// // LED Index to Physical Position
+// { 56, 0}, { 112, 0}, { 168, 0}, { 0, 64}, { 224, 64}
+// }, {
+// // LED Index to Flag
+// 4,4,4,2,2
+// } };
+
+// #endif
diff --git a/keyboards/momokai/tap_duo/tap_duo.h b/keyboards/momokai/tap_duo/tap_duo.h
new file mode 100644
index 0000000000..74b87dab62
--- /dev/null
+++ b/keyboards/momokai/tap_duo/tap_duo.h
@@ -0,0 +1,26 @@
+/* Copyright 2022 Momokai
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+#pragma once
+
+#include "quantum.h"
+
+#define LAYOUT( \
+ K00, K01, \
+ K02, K03, K04 \
+) { \
+ { K00, K01, K02, K03, K04} \
+}
+