~ruther/qmk_firmware

75b7140cbd8148199e6c3c38a18f2ed68a1eb804 — Wycer 2 years ago 28c11ed
[Keyboard] Add dymium65 (#20257)

Co-authored-by: Less/Rikki <86894501+lesshonor@users.noreply.github.com>
Co-authored-by: Wycer <wycers@gmail.com>
Co-authored-by: Drashna Jaelre <drashna@live.com>
Co-authored-by: linyer-qwq <990842844@qq.com>
Co-authored-by: Linyer-qwq <32816392+Linyer-qwq@users.noreply.github.com>
A keyboards/dotmod/dymium65/config.h => keyboards/dotmod/dymium65/config.h +36 -0
@@ 0,0 1,36 @@
/* Copyright 2023 Finalkey
 * Copyright 2023 LiWenLiu <https://github.com/LiuLiuQMK>
 *
 * 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

/* 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

#define FORCE_NKRO

// The pin connected to the data pin of the LEDs
#define RGB_DI_PIN D7
// The number of LEDs connected
#define RGB_MATRIX_LED_COUNT 66
#define RGB_MATRIX_KEYPRESSES
#define RGB_MATRIX_KEYRELEASES
#define RGB_MATRIX_FRAMEBUFFER_EFFECTS
#define RGB_DISABLE_AFTER_TIMEOUT 0
#define RGB_MATRIX_LED_FLUSH_LIMIT 16
#define RGB_MATRIX_MAXIMUM_BRIGHTNESS 200

A keyboards/dotmod/dymium65/dymium65.c => keyboards/dotmod/dymium65/dymium65.c +54 -0
@@ 0,0 1,54 @@
/* Copyright 2023 Finalkey
 * Copyright 2023 LiWenLiu <https://github.com/LiuLiuQMK>
 *
 * 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 "quantum.h"

#ifdef RGB_MATRIX_ENABLE
led_config_t g_led_config = {
    {
        {0,      NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED},
        {NO_LED, 1,      2,      3,      4,      5,      6,      7,      8,      9,      10,     11,     12,     13,     NO_LED, NO_LED},
        {28,     27,     26,     25,     24,     23,     22,     21,     20,     19,     18,     17,     16,     15,     NO_LED, NO_LED},
        {29,     30,     31,     32,     33,     34,     35,     36,     37,     38,     39,     40,     NO_LED, 41,     14,         42},
        {55,     NO_LED, 54,     53,     52,     51,     50,     49,     48,     47,     46,     45,     NO_LED, 44,     43,     NO_LED},
        {56,     57,     58,     NO_LED, NO_LED, NO_LED, 59,     NO_LED, NO_LED, 60,     61,     NO_LED, 62,     63,     64,         65}
    }, {
        {14,  0}, {28,  0}, {42,  0}, {56,  0}, {70,  0}, {84,  0}, {98,  0}, {112,  0}, {126,  0}, {140,  0}, {154,  0}, {168,  0}, {182,  0},{196,  0},
        {224, 16},{196, 16},{182, 16},{168, 16},{154, 16},{140, 16},{126, 16},{112, 16}, {98, 16},  {84, 16},  {70, 16},  {56, 16},  {42, 16} ,{28, 16},  {14, 16},
        {14, 32}, {28, 32}, {42, 32}, {56, 32}, {70, 32}, {84, 32}, {98, 32}, {112, 32}, {126, 32}, {140, 32}, {154, 32}, {168, 32},           {196, 32}, {224, 32},
        {224, 48},          {196, 48},{168, 48},{154, 48},{140, 48},{126, 48},{112, 48}, {98, 48},  {84, 48},  {70, 48},  {56, 48},            {42, 48},  {14, 48},
        {14, 64}, {28, 64}, {42, 64},                               {98, 64},                       {140, 64}, {154, 64}, {168, 64}, {182, 64},{196, 64}, {224, 64}
    }, {
        4,
                       4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
        4,             4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 
        4, 12, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    4, 4, 4, 
        4,                4, 4, 4, 4, 4, 4, 4, 4, 4, 4,    4, 4, 
        4,             4, 4,          4,       4, 4,    4, 4, 4, 4
    }
};

bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {
    if (!rgb_matrix_indicators_advanced_user(led_min, led_max)) {
        return false;
    }
    if (host_keyboard_led_state().caps_lock) {
        RGB_MATRIX_INDICATOR_SET_COLOR(29, 255, 255, 255);
    }
    return true;
}
#endif

A keyboards/dotmod/dymium65/info.json => keyboards/dotmod/dymium65/info.json +137 -0
@@ 0,0 1,137 @@
{
    "keyboard_name": "DYMIUM65",
    "manufacturer": "RDR",
    "url": "https://github.com/LiuLiuQMK",
    "maintainer": "LiWenLiu",
    "usb": {
        "vid": "0x5678",
        "pid": "0x5058",
        "device_version": "0.0.1"
    },
    "diode_direction": "ROW2COL",
    "matrix_pins": {
        "cols": ["E6", "B0", "B1", "B2", "B3", "B7", "D2", "D3", "D5", "D4", "D6", "C6", "B4", "B5", "B6","E2"],
        "rows": ["F7", "F6", "F5", "F4", "F1","F0"]
    },
    "processor": "atmega32u4",
    "bootloader": "atmel-dfu",
    "features": {
		"bootmagic": true,
		"extrakey": true,
		"console": false,
		"command": false,
		"nkro": true,
		"mousekey": true,
		"rgb_matrix": true
    },
    "build": {
        "lto": true
    },
    "encoder": {
        "enabled": true,
        "rotary": [
            {"pin_a": "C7", "pin_b": "D1"}
        ]
    },
    "rgb_matrix": {
        "driver": "WS2812",
        "animations": {
            "breathing": true,
            "band_val": true,
            "band_pinwheel_sat": true,
            "band_pinwheel_val": true,
            "cycle_all": true,
            "cycle_left_right": true,
            "cycle_up_down": true,
            "rainbow_moving_chevron": true,
            "cycle_out_in_dual": true,
            "cycle_spiral": true,
            "rainbow_beacon": true,
            "rainbow_pinwheels": true,
            "raindrops": true,
            "pixel_flow": true,
            "solid_reactive": true,
            "solid_reactive_multiwide": true,
            "solid_reactive_cross": true,
            "solid_reactive_nexus": true,
            "splash": true
        }
	},
    "layouts": {
        "LAYOUT": {
            "layout": [
                {"matrix": [0, 0 ], "x": 0, "y": 0},
                {"matrix": [1, 1 ], "x": 1, "y": 0},
                {"matrix": [1, 2 ], "x": 2, "y": 0},
                {"matrix": [1, 3 ], "x": 3, "y": 0},
                {"matrix": [1, 4 ], "x": 4, "y": 0},
                {"matrix": [1, 5 ], "x": 5, "y": 0},
                {"matrix": [1, 6 ], "x": 6, "y": 0},
                {"matrix": [1, 7 ], "x": 7, "y": 0},
                {"matrix": [1, 8 ], "x": 8, "y": 0},
                {"matrix": [1, 9 ], "x": 9, "y": 0},
                {"matrix": [1, 10], "x": 10, "y": 0},
                {"matrix": [1, 11], "x": 11, "y": 0},
                {"matrix": [1, 12], "x": 12, "y": 0},
                {"matrix": [1, 13], "w": 2, "x": 13, "y": 0},
                {"matrix": [4, 15], "x": 16, "y": 0},

                {"matrix": [2, 0 ], "w": 1.5, "x": 0, "y": 1},
                {"matrix": [2, 1 ], "x": 1.5, "y": 1},
                {"matrix": [2, 2 ], "x": 2.5, "y": 1},
                {"matrix": [2, 3 ], "x": 3.5, "y": 1},
                {"matrix": [2, 4 ], "x": 4.5, "y": 1},
                {"matrix": [2, 5 ], "x": 5.5, "y": 1},
                {"matrix": [2, 6 ], "x": 6.5, "y": 1},
                {"matrix": [2, 7 ], "x": 7.5, "y": 1},
                {"matrix": [2, 8 ], "x": 8.5, "y": 1},
                {"matrix": [2, 9 ], "x": 9.5, "y": 1},
                {"matrix": [2, 10], "x": 10.5, "y": 1},
                {"matrix": [2, 11], "x": 11.5, "y": 1},
                {"matrix": [2, 12], "x": 12.5, "y": 1},
                {"matrix": [2, 13], "w": 1.5, "x": 13.5, "y": 1},
                {"matrix": [3, 14], "x": 16, "y": 1},

                {"matrix": [3, 0 ], "w": 1.75, "x": 0, "y": 2},
                {"matrix": [3, 1 ], "x": 1.75, "y": 2},
                {"matrix": [3, 2 ], "x": 2.75, "y": 2},
                {"matrix": [3, 3 ], "x": 3.75, "y": 2},
                {"matrix": [3, 4 ], "x": 4.75, "y": 2},
                {"matrix": [3, 5 ], "x": 5.75, "y": 2},
                {"matrix": [3, 6 ], "x": 6.75, "y": 2},
                {"matrix": [3, 7 ], "x": 7.75, "y": 2},
                {"matrix": [3, 8 ], "x": 8.75, "y": 2},
                {"matrix": [3, 9 ], "x": 9.75, "y": 2},
                {"matrix": [3, 10], "x": 10.75, "y": 2},
                {"matrix": [3, 11], "x": 11.75, "y": 2},
                {"matrix": [3, 13], "w": 2.25, "x": 12.75, "y": 2},
                {"matrix": [3, 15], "x": 16, "y": 2},

                {"matrix": [4, 0 ], "w": 2.25, "x": 0, "y": 3},
                {"matrix": [4, 2 ], "x": 2.25, "y": 3},
                {"matrix": [4, 3 ], "x": 3.25, "y": 3},
                {"matrix": [4, 4 ], "x": 4.25, "y": 3},
                {"matrix": [4, 5 ], "x": 5.25, "y": 3},
                {"matrix": [4, 6 ], "x": 6.25, "y": 3},
                {"matrix": [4, 7 ], "x": 7.25, "y": 3},
                {"matrix": [4, 8 ], "x": 8.25, "y": 3},
                {"matrix": [4, 9 ], "x": 9.25, "y": 3},
                {"matrix": [4, 10], "x": 10.25, "y": 3},
                {"matrix": [4, 11], "x": 11.25, "y": 3},
                {"matrix": [4, 13], "w": 1.75, "x": 12.25, "y": 3},
                {"matrix": [4, 14], "x": 15.25, "y": 3},

                {"matrix": [5, 0 ], "w": 1.25, "x": 0, "y": 4},
                {"matrix": [5, 1 ], "w": 1.25, "x": 1.25, "y": 4},
                {"matrix": [5, 2 ], "w": 1.25, "x": 2.5, "y": 4},
                {"matrix": [5, 6 ], "w": 6.25, "x": 3.75, "y": 4},
                {"matrix": [5, 9 ], "x": 10, "y": 4},
                {"matrix": [5, 10], "x": 11, "y": 4},
                {"matrix": [5, 12], "x": 12, "y": 4},
                {"matrix": [5, 13], "x": 14.25, "y": 4},
                {"matrix": [5, 14], "x": 15.25, "y": 4},
                {"matrix": [5, 15], "x": 16.25, "y": 4}
            ]
        }
    }
}

A keyboards/dotmod/dymium65/keymaps/default/keymap.c => keyboards/dotmod/dymium65/keymaps/default/keymap.c +71 -0
@@ 0,0 1,71 @@
/* Copyright 2023 Finalkey
 * Copyright 2023 LiWenLiu <https://github.com/LiuLiuQMK>
 *
 * 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 names
enum ats_layers{
  // - Base layer:
  _BASE,
  // - Symbols, numbers, and functions:
  _FN,
  // - Alternate Function layer:
  _LN,
  // - Alternate Function layer:
  _MT
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [_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_MINUS,        KC_EQUAL,         KC_BACKSPACE,   KC_AUDIO_MUTE,
    KC_TAB,        KC_Q,        KC_W,        KC_E,  KC_R,  KC_T,  KC_Y,      KC_U,  KC_I,  KC_O,         KC_P,         KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_BACKSLASH,   KC_PAGE_UP,
    KC_CAPS_LOCK,  KC_A,        KC_S,        KC_D,  KC_F,  KC_G,  KC_H,      KC_J,  KC_K,  KC_L,         KC_SEMICOLON, KC_QUOTE,                          KC_ENTER,       KC_PAGE_DOWN,
    KC_LEFT_SHIFT,              KC_Z,        KC_X,  KC_C,  KC_V,  KC_B,      KC_N,  KC_M,  KC_COMMA,     KC_DOT,       KC_SLASH,                          KC_RIGHT_SHIFT, KC_UP,
    KC_LEFT_CTRL,  KC_LEFT_GUI, KC_LEFT_ALT,                      KC_SPACE,                KC_RIGHT_ALT, MO(_FN),                       KC_RIGHT_CTRL,    KC_LEFT,        KC_DOWN,        KC_RIGHT
    ),
    [_FN] = LAYOUT(
    KC_GRAVE,      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_BACKSPACE,   KC_TRNS,
    RGB_TOG,       KC_Q,        KC_W,        KC_E,  KC_R,  KC_T,  KC_Y,      KC_U,  KC_I,  KC_O,         KC_P,         RGB_HUI,         RGB_HUD,          KC_BACKSLASH,   KC_TRNS,
    KC_CAPS_LOCK,  KC_A,        KC_S,        KC_D,  KC_F,  KC_G,  KC_H,      KC_J,  KC_K,  KC_L,         RGB_SAD,      RGB_SAI,                           KC_ENTER,       KC_TRNS,
    KC_LEFT_SHIFT,              KC_Z,        KC_X,  KC_C,  KC_V,  KC_B,      KC_N,  KC_M,  KC_COMMA,     MO(_LN),      KC_SLASH,                          KC_RIGHT_SHIFT, RGB_VAI,
    KC_LEFT_CTRL,  KC_LEFT_GUI, KC_LEFT_ALT,                      KC_SPACE,                RGB_MOD,      _______,                       KC_RIGHT_CTRL,    RGB_SPD,        RGB_VAD,        RGB_SPI
    ),
    [_LN] = LAYOUT(
    KC_ESC,        KC_1,        KC_2,        KC_3,  KC_4,  KC_5,  KC_6,      KC_7,  KC_8,  KC_9,         KC_0,         KC_MINUS,        KC_EQUAL,         KC_BACKSPACE,   KC_TRNS,
    KC_TAB,        KC_Q,        KC_W,        KC_E,  KC_R,  KC_T,  KC_Y,      KC_U,  KC_I,  KC_O,         KC_P,         KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_BACKSLASH,   KC_TRNS,
    KC_CAPS_LOCK,  KC_A,        KC_S,        KC_D,  KC_F,  KC_G,  KC_H,      KC_J,  KC_K,  KC_L,         KC_SEMICOLON, KC_QUOTE,                          KC_ENTER,       KC_TRNS,
    KC_LEFT_SHIFT,              KC_Z,        KC_X,  KC_C,  KC_V,  KC_B,      KC_N,  KC_M,  MO(_MT),      _______,      KC_SLASH,                          KC_RIGHT_SHIFT, KC_UP,
    KC_LEFT_CTRL,  KC_LEFT_GUI, KC_LEFT_ALT,                      KC_SPACE,                KC_RIGHT_ALT, _______,                       KC_RIGHT_CTRL,    KC_LEFT,        KC_DOWN,        KC_RIGHT
    ),
    [_MT] = LAYOUT(
    KC_ESC,        KC_1,        KC_2,        KC_3,  KC_4,  KC_5,  KC_6,      KC_7,  KC_8,  KC_9,         KC_0,         KC_MINUS,        KC_EQUAL,         KC_BACKSPACE,   KC_TRNS,
    KC_TAB,        KC_Q,        KC_W,        KC_E,  KC_R,  KC_T,  KC_Y,      KC_U,  KC_I,  KC_O,         KC_P,         KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_BACKSLASH,   KC_TRNS,
    KC_CAPS_LOCK,  KC_A,        KC_S,        KC_D,  KC_F,  KC_G,  KC_H,      KC_J,  KC_K,  KC_L,         KC_SEMICOLON, KC_QUOTE,                          KC_ENTER,       KC_TRNS,
    KC_LEFT_SHIFT,              KC_Z,        KC_X,  KC_C,  KC_V,  KC_B,      KC_N,  KC_M,  _______,      _______,      KC_SLASH,                          KC_RIGHT_SHIFT, KC_UP,
    KC_LEFT_CTRL,  KC_LEFT_GUI, KC_LEFT_ALT,                      KC_SPACE,                KC_RIGHT_ALT, _______,                       KC_RIGHT_CTRL,    KC_LEFT,        KC_DOWN,        KC_RIGHT
    )
};


#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
    [_BASE] =   { ENCODER_CCW_CW(KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP) },
    [_FN] =     { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) },
    [_LN] =     { ENCODER_CCW_CW(RGB_SAD, RGB_SAI) },
    [_MT] =     { ENCODER_CCW_CW(RGB_SPD, RGB_SPI) },
};
#endif

A keyboards/dotmod/dymium65/keymaps/default/rules.mk => keyboards/dotmod/dymium65/keymaps/default/rules.mk +1 -0
@@ 0,0 1,1 @@
ENCODER_MAP_ENABLE = yes
\ No newline at end of file

A keyboards/dotmod/dymium65/keymaps/via/keymap.c => keyboards/dotmod/dymium65/keymaps/via/keymap.c +71 -0
@@ 0,0 1,71 @@
/* Copyright 2023 Finalkey
 * Copyright 2023 LiWenLiu <https://github.com/LiuLiuQMK>
 *
 * 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 names
enum ats_layers{
  // - Base layer:
  _BASE,
  // - Symbols, numbers, and functions:
  _FN,
  // - Alternate Function layer:
  _LN,
  // - Alternate Function layer:
  _MT
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    [_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_MINUS,        KC_EQUAL,         KC_BACKSPACE,   KC_AUDIO_MUTE,
    KC_TAB,        KC_Q,        KC_W,        KC_E,  KC_R,  KC_T,  KC_Y,      KC_U,  KC_I,  KC_O,         KC_P,         KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_BACKSLASH,   KC_PAGE_UP,
    KC_CAPS_LOCK,  KC_A,        KC_S,        KC_D,  KC_F,  KC_G,  KC_H,      KC_J,  KC_K,  KC_L,         KC_SEMICOLON, KC_QUOTE,                          KC_ENTER,       KC_PAGE_DOWN,
    KC_LEFT_SHIFT,              KC_Z,        KC_X,  KC_C,  KC_V,  KC_B,      KC_N,  KC_M,  KC_COMMA,     KC_DOT,       KC_SLASH,                          KC_RIGHT_SHIFT, KC_UP,
    KC_LEFT_CTRL,  KC_LEFT_GUI, KC_LEFT_ALT,                      KC_SPACE,                KC_RIGHT_ALT, MO(_FN),                       KC_RIGHT_CTRL,    KC_LEFT,        KC_DOWN,        KC_RIGHT
    ),
    [_FN] = LAYOUT(
    KC_GRAVE,      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_BACKSPACE,   KC_TRNS,
    RGB_TOG,       KC_Q,        KC_W,        KC_E,  KC_R,  KC_T,  KC_Y,      KC_U,  KC_I,  KC_O,         KC_P,         RGB_HUI,         RGB_HUD,          KC_BACKSLASH,   KC_TRNS,
    KC_CAPS_LOCK,  KC_A,        KC_S,        KC_D,  KC_F,  KC_G,  KC_H,      KC_J,  KC_K,  KC_L,         RGB_SAD,      RGB_SAI,                           KC_ENTER,       KC_TRNS,
    KC_LEFT_SHIFT,              KC_Z,        KC_X,  KC_C,  KC_V,  KC_B,      KC_N,  KC_M,  KC_COMMA,     MO(_LN),      KC_SLASH,                          KC_RIGHT_SHIFT, RGB_VAI,
    KC_LEFT_CTRL,  KC_LEFT_GUI, KC_LEFT_ALT,                      KC_SPACE,                RGB_MOD,      _______,                       KC_RIGHT_CTRL,    RGB_SPD,        RGB_VAD,        RGB_SPI
    ),
    [_LN] = LAYOUT(
    KC_ESC,        KC_1,        KC_2,        KC_3,  KC_4,  KC_5,  KC_6,      KC_7,  KC_8,  KC_9,         KC_0,         KC_MINUS,        KC_EQUAL,         KC_BACKSPACE,   KC_TRNS,
    KC_TAB,        KC_Q,        KC_W,        KC_E,  KC_R,  KC_T,  KC_Y,      KC_U,  KC_I,  KC_O,         KC_P,         KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_BACKSLASH,   KC_TRNS,
    KC_CAPS_LOCK,  KC_A,        KC_S,        KC_D,  KC_F,  KC_G,  KC_H,      KC_J,  KC_K,  KC_L,         KC_SEMICOLON, KC_QUOTE,                          KC_ENTER,       KC_TRNS,
    KC_LEFT_SHIFT,              KC_Z,        KC_X,  KC_C,  KC_V,  KC_B,      KC_N,  KC_M,  MO(_MT),      _______,      KC_SLASH,                          KC_RIGHT_SHIFT, KC_UP,
    KC_LEFT_CTRL,  KC_LEFT_GUI, KC_LEFT_ALT,                      KC_SPACE,                KC_RIGHT_ALT, _______,                       KC_RIGHT_CTRL,    KC_LEFT,        KC_DOWN,        KC_RIGHT
    ),
    [_MT] = LAYOUT(
    KC_ESC,        KC_1,        KC_2,        KC_3,  KC_4,  KC_5,  KC_6,      KC_7,  KC_8,  KC_9,         KC_0,         KC_MINUS,        KC_EQUAL,         KC_BACKSPACE,   KC_TRNS,
    KC_TAB,        KC_Q,        KC_W,        KC_E,  KC_R,  KC_T,  KC_Y,      KC_U,  KC_I,  KC_O,         KC_P,         KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_BACKSLASH,   KC_TRNS,
    KC_CAPS_LOCK,  KC_A,        KC_S,        KC_D,  KC_F,  KC_G,  KC_H,      KC_J,  KC_K,  KC_L,         KC_SEMICOLON, KC_QUOTE,                          KC_ENTER,       KC_TRNS,
    KC_LEFT_SHIFT,              KC_Z,        KC_X,  KC_C,  KC_V,  KC_B,      KC_N,  KC_M,  _______,      _______,      KC_SLASH,                          KC_RIGHT_SHIFT, KC_UP,
    KC_LEFT_CTRL,  KC_LEFT_GUI, KC_LEFT_ALT,                      KC_SPACE,                KC_RIGHT_ALT, _______,                       KC_RIGHT_CTRL,    KC_LEFT,        KC_DOWN,        KC_RIGHT
    )
};


#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
    [_BASE] =   { ENCODER_CCW_CW(KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP) },
    [_FN] =     { ENCODER_CCW_CW(RGB_VAD, RGB_VAI) },
    [_LN] =     { ENCODER_CCW_CW(RGB_SAD, RGB_SAI) },
    [_MT] =     { ENCODER_CCW_CW(RGB_SPD, RGB_SPI) },
};
#endif

A keyboards/dotmod/dymium65/keymaps/via/rules.mk => keyboards/dotmod/dymium65/keymaps/via/rules.mk +2 -0
@@ 0,0 1,2 @@
VIA_ENABLE = yes
ENCODER_MAP_ENABLE = yes
\ No newline at end of file

A keyboards/dotmod/dymium65/readme.md => keyboards/dotmod/dymium65/readme.md +27 -0
@@ 0,0 1,27 @@
# dymium65

A customizable 65% encoder keyboard.

![dymium65](https://i.imgur.com/5qAl7hgh.png)

* Keyboard Maintainer: [LiWenLiu](https://github.com/LiuLiuQMK)
* Hardware Supported: dymium65 PCB with atmega32u4 microcontroller
* Hardware Availability: Coming soon

Make example for this keyboard (after setting up your build environment):

    make dotmod/dymium65:default

Flashing example for this keyboard:

    make dotmod/dymium65: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).

## Bootloader

Enter the bootloader in 3 ways:

* **Bootmagic reset**: Hold down the top left key and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB
* **Keycode in layout**: There is no key mapped to `QK_BOOT` in the pre-created keymaps, but you may assign this key in any keymaps you create.

A keyboards/dotmod/dymium65/rules.mk => keyboards/dotmod/dymium65/rules.mk +1 -0
@@ 0,0 1,1 @@
# This file intentionally left blank
\ No newline at end of file