diff --git a/keyboards/redragon/k582/README.md b/keyboards/redragon/k582/README.md new file mode 100644 index 000000000000..5391c29645c3 --- /dev/null +++ b/keyboards/redragon/k582/README.md @@ -0,0 +1,20 @@ +# Redragon K582 Surara +[![Redragon K582 Surara](https://i.rtings.com/assets/products/eYjOTm39/redragon-k582-surara-rgb/backlight-large.jpg?format=auto "Redragon K582 SURARA RGB Review - RTINGS.com")](https://www.rtings.com/keyboard/reviews/redragon/k582-surara-rgb) + +* Keyboard Maintainer: [Robert S.](https://github.com/Wallvon) +* Based on Redragon K556 by: [Alexandre Oliveira](https://github.com/Xinayder) +* Hardware Supported: SN32F248BF + +Build example: + + qmk compile -kb redragon/k582 -km default + +[VIA](https://caniusevia.com) support: + + qmk compile -kb redragon/k582 -km via + +Use a definition file (preferably the v3 one) in the `via_definitions` folder to use VIA. + +**Reset key**: Hold down fn and grave while plugging in the keyboard. + +**Bootloader key**: Hold down fn and esc while plugging in the keyboard. diff --git a/keyboards/redragon/k582/config.h b/keyboards/redragon/k582/config.h new file mode 100644 index 000000000000..376753b58516 --- /dev/null +++ b/keyboards/redragon/k582/config.h @@ -0,0 +1,31 @@ +/* Copyright 2020 Adam Honse + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +#define MATRIX_UNSELECT_DRIVE_HIGH + +/* key matrix size */ +#define RGB_MATRIX_LED_COUNT 104 + +#define SN32_RGB_MATRIX_ROW_PINS { C0, C1, C3, C4, C5, C6, C7, C8, C9, C10, C11, C12, B6, B7, B8, B9, B10, B11 } + +/* Configure the effects: */ +#define RGB_MATRIX_TYPING_HEATMAP_DECREASE_DELAY_MS 50 + +/* Configure transistor logic for RGB matrix */ +#define SN32_PWM_OUTPUT_ACTIVE_LEVEL SN32_PWM_OUTPUT_ACTIVE_HIGH +#define SN32_RGB_OUTPUT_ACTIVE_LEVEL SN32_RGB_OUTPUT_ACTIVE_LOW diff --git a/keyboards/redragon/k582/keyboard.json b/keyboards/redragon/k582/keyboard.json new file mode 100644 index 000000000000..414b7bf9a59a --- /dev/null +++ b/keyboards/redragon/k582/keyboard.json @@ -0,0 +1,314 @@ +{ + "keyboard_name": "K582 Surara", + "manufacturer": "Redragon", + "url": "https://redragonshop.com/products/surara-k582", + "maintainer": "Wallvon", + "processor": "SN32F248BF", + "bootloader": "sn32-dfu", + "usb": { + "vid": "0x0C45", + "pid": "0x5004", + "device_version": "1.0.0" + }, + "features": { + "audio": false, + "backlight": false, + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": false, + "nkro": true, + "rgb_matrix": true + }, + "debounce": 10, + "diode_direction": "ROW2COL", + "matrix_pins": { + "cols": ["A0","A1","A2","A3","A4","A5","A6","A7","A8","A9","A10","A11","A12","A13","A14","B0","B1","B2","B3","B4","B5"], + "rows": ["C15","D11","D10","D9","D8","D7"] + }, + "indicators": { + "num_lock": "B13", + "caps_lock": "B14", + "scroll_lock": "B15", + "on_state": 0 + }, + "rgb_matrix": { + "animations": { + "breathing": true, + "band_spiral_val": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_up_down": true, + "rainbow_moving_chevron": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_spiral": true, + "dual_beacon": true, + "rainbow_beacon": true, + "jellybean_raindrops": true, + "pixel_rain": true, + "typing_heatmap": true, + "solid_reactive_multiwide": true, + "solid_reactive_multinexus": true, + "splash": true, + "solid_splash": true, + "riverflow": true + }, + "driver": "sn32f24xb", + "layout": [ + {"matrix": [0, 0], "flags": 4, "x": 0, "y": 0}, + + {"matrix": [0, 1], "flags": 4, "x": 21, "y": 0}, + {"matrix": [0, 2], "flags": 4, "x": 31, "y": 0}, + {"matrix": [0, 3], "flags": 4, "x": 42, "y": 0}, + {"matrix": [0, 4], "flags": 4, "x": 52, "y": 0}, + + {"matrix": [0, 5],"flags": 4,"x": 68,"y": 0}, + {"matrix": [0, 6],"flags": 4,"x": 78,"y": 0}, + {"matrix": [0, 7],"flags": 4,"x": 89,"y": 0}, + {"matrix": [0, 8],"flags": 4,"x": 99,"y": 0}, + + {"matrix": [0, 9],"flags": 4,"x": 115,"y": 0}, + {"matrix": [0, 10],"flags": 4,"x": 125,"y": 0}, + {"matrix": [0, 11],"flags": 4,"x": 135,"y": 0}, + {"matrix": [0, 12],"flags": 4,"x": 146,"y": 0}, + + {"matrix": [0, 13],"flags": 4,"x": 159,"y": 0}, + {"matrix": [0, 14],"flags": 4,"x": 169,"y": 0}, + {"matrix": [0, 15],"flags": 4,"x": 180,"y": 0}, + + {"matrix": [1, 0],"flags": 4,"x": 0,"y": 17}, + {"matrix": [1, 1],"flags": 4,"x": 10,"y": 17}, + {"matrix": [1, 2],"flags": 4,"x": 21,"y": 17}, + {"matrix": [1, 3],"flags": 4,"x": 31,"y": 17}, + {"matrix": [1, 4],"flags": 4,"x": 42,"y": 17}, + {"matrix": [1, 5],"flags": 4,"x": 52,"y": 17}, + {"matrix": [1, 6],"flags": 4,"x": 63,"y": 17}, + {"matrix": [1, 7],"flags": 4,"x": 73,"y": 17}, + {"matrix": [1, 8],"flags": 4,"x": 83,"y": 17}, + {"matrix": [1, 9],"flags": 4,"x": 94,"y": 17}, + {"matrix": [1, 10],"flags": 4,"x": 104,"y": 17}, + {"matrix": [1, 11],"flags": 4,"x": 115,"y": 17}, + {"matrix": [1, 12],"flags": 4,"x": 125,"y": 17}, + {"matrix": [1, 13],"flags": 1,"x": 141,"y": 17}, + + {"matrix": [1, 14],"flags": 4,"x": 159,"y": 17}, + {"matrix": [1, 15],"flags": 4,"x": 169,"y": 17}, + {"matrix": [1, 16],"flags": 4,"x": 180,"y": 17}, + + {"matrix": [1, 17],"flags": 4,"x": 193,"y": 17}, + {"matrix": [1, 18],"flags": 4,"x": 203,"y": 17}, + {"matrix": [1, 19],"flags": 4,"x": 214,"y": 17}, + {"matrix": [1, 20],"flags": 4,"x": 224,"y": 17}, + + {"matrix": [2, 0],"flags": 1,"x": 3,"y": 29}, + {"matrix": [2, 1],"flags": 4,"x": 16,"y": 29}, + {"matrix": [2, 2],"flags": 4,"x": 26,"y": 29}, + {"matrix": [2, 3],"flags": 4,"x": 36,"y": 29}, + {"matrix": [2, 4],"flags": 4,"x": 47,"y": 29}, + {"matrix": [2, 5],"flags": 4,"x": 57,"y": 29}, + {"matrix": [2, 6],"flags": 4,"x": 68,"y": 29}, + {"matrix": [2, 7],"flags": 4,"x": 78,"y": 29}, + {"matrix": [2, 8],"flags": 4,"x": 89,"y": 29}, + {"matrix": [2, 9],"flags": 4,"x": 99,"y": 29}, + {"matrix": [2, 10],"flags": 4,"x": 109,"y": 29}, + {"matrix": [2, 11],"flags": 4,"x": 120,"y": 29}, + {"matrix": [2, 12],"flags": 4,"x": 130,"y": 29}, + {"matrix": [2, 13],"flags": 4,"x": 143,"y": 29}, + + {"matrix": [2, 14],"flags": 4,"x": 159,"y": 29}, + {"matrix": [2, 15],"flags": 4,"x": 169,"y": 29}, + {"matrix": [2, 16],"flags": 4,"x": 180,"y": 29}, + + {"matrix": [2, 17],"flags": 4,"x": 193,"y": 29}, + {"matrix": [2, 18],"flags": 4,"x": 203,"y": 29}, + {"matrix": [2, 19],"flags": 4,"x": 214,"y": 29}, + {"matrix": [2, 20],"flags": 4,"x": 224,"y": 35}, + + {"matrix": [3, 0],"flags": 1,"x": 4,"y": 41}, + {"matrix": [3, 1],"flags": 4,"x": 18,"y": 41}, + {"matrix": [3, 2],"flags": 4,"x": 29,"y": 41}, + {"matrix": [3, 3],"flags": 4,"x": 39,"y": 41}, + {"matrix": [3, 4],"flags": 4,"x": 49,"y": 41}, + {"matrix": [3, 5],"flags": 4,"x": 60,"y": 41}, + {"matrix": [3, 6],"flags": 4,"x": 70,"y": 41}, + {"matrix": [3, 7],"flags": 4,"x": 81,"y": 41}, + {"matrix": [3, 8],"flags": 4,"x": 91,"y": 41}, + {"matrix": [3, 9],"flags": 4,"x": 102,"y": 41}, + {"matrix": [3, 10],"flags": 4,"x": 112,"y": 41}, + {"matrix": [3, 11],"flags": 4,"x": 122,"y": 41}, + {"matrix": [3, 13],"flags": 4,"x": 139,"y": 41}, + + {"matrix": [3, 17],"flags": 4,"x": 193,"y": 41}, + {"matrix": [3, 18],"flags": 4,"x": 203,"y": 41}, + {"matrix": [3, 19],"flags": 4,"x": 214,"y": 41}, + + {"matrix": [4, 0],"flags": 1,"x": 7,"y": 52}, + {"matrix": [4, 2],"flags": 4,"x": 23,"y": 52}, + {"matrix": [4, 3],"flags": 4,"x": 34,"y": 52}, + {"matrix": [4, 4],"flags": 4,"x": 44,"y": 52}, + {"matrix": [4, 5],"flags": 4,"x": 55,"y": 52}, + {"matrix": [4, 6],"flags": 4,"x": 65,"y": 52}, + {"matrix": [4, 7],"flags": 4,"x": 76,"y": 52}, + {"matrix": [4, 8],"flags": 4,"x": 86,"y": 52}, + {"matrix": [4, 9],"flags": 4,"x": 96,"y": 52}, + {"matrix": [4, 10],"flags": 4,"x": 107,"y": 52}, + {"matrix": [4, 11],"flags": 4,"x": 117,"y": 52}, + {"matrix": [4, 13],"flags": 1,"x": 137,"y": 52}, + + {"matrix": [4, 15],"flags": 4,"x": 169,"y": 52}, + + {"matrix": [4, 17],"flags": 4,"x": 193,"y": 52}, + {"matrix": [4, 18],"flags": 4,"x": 203,"y": 52}, + {"matrix": [4, 19],"flags": 4,"x": 214,"y": 52}, + {"matrix": [4, 20],"flags": 4,"x": 224,"y": 58}, + + {"matrix": [5, 0],"flags": 1,"x": 1,"y": 64}, + {"matrix": [5, 1],"flags": 1,"x": 14,"y": 64}, + {"matrix": [5, 2],"flags": 1,"x": 27,"y": 64}, + {"matrix": [5, 3],"flags": 4,"x": 66,"y": 64}, + {"matrix": [5, 4],"flags": 1,"x": 105,"y": 64}, + {"matrix": [5, 5],"flags": 1,"x": 119,"y": 64}, + {"matrix": [5, 6],"flags": 4,"x": 132,"y": 64}, + {"matrix": [5, 8],"flags": 1,"x": 145,"y": 64}, + + {"matrix": [5, 14],"flags": 4,"x": 159,"y": 64}, + {"matrix": [5, 15],"flags": 4,"x": 169,"y": 64}, + {"matrix": [5, 16],"flags": 4,"x": 180,"y": 64}, + + {"matrix": [5, 18],"flags": 4,"x": 198,"y": 64}, + {"matrix": [5, 19],"flags": 4,"x": 214,"y": 64} + ], + "react_on_keyup": true, + "sleep": true + }, + "layouts": { + "LAYOUT_fullsize_ansi": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0}, + + {"matrix": [0, 1], "x": 2, "y": 0}, + {"matrix": [0, 2], "x": 3, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + + {"matrix": [0, 5], "x": 6.5, "y": 0}, + {"matrix": [0, 6], "x": 7.5, "y": 0}, + {"matrix": [0, 7], "x": 8.5, "y": 0}, + {"matrix": [0, 8], "x": 9.5, "y": 0}, + + {"matrix": [0, 9], "x": 11, "y": 0}, + {"matrix": [0, 10], "x": 12, "y": 0}, + {"matrix": [0, 11], "x": 13, "y": 0}, + {"matrix": [0, 12], "x": 14, "y": 0}, + + {"matrix": [0, 13], "x": 15.25, "y": 0}, + {"matrix": [0, 14], "x": 16.25, "y": 0}, + {"matrix": [0, 15], "x": 17.25, "y": 0}, + + {"matrix": [1, 0], "x": 0, "y": 1.5}, + {"matrix": [1, 1], "x": 1, "y": 1.5}, + {"matrix": [1, 2], "x": 2, "y": 1.5}, + {"matrix": [1, 3], "x": 3, "y": 1.5}, + {"matrix": [1, 4], "x": 4, "y": 1.5}, + {"matrix": [1, 5], "x": 5, "y": 1.5}, + {"matrix": [1, 6], "x": 6, "y": 1.5}, + {"matrix": [1, 7], "x": 7, "y": 1.5}, + {"matrix": [1, 8], "x": 8, "y": 1.5}, + {"matrix": [1, 9], "x": 9, "y": 1.5}, + {"matrix": [1, 10], "x": 10, "y": 1.5}, + {"matrix": [1, 11], "x": 11, "y": 1.5}, + {"matrix": [1, 12], "x": 12, "y": 1.5}, + {"matrix": [1, 13], "x": 13, "y": 1.5, "w": 2}, + + {"matrix": [1, 14], "x": 15.25, "y": 1.5}, + {"matrix": [1, 15], "x": 16.25, "y": 1.5}, + {"matrix": [1, 16], "x": 17.25, "y": 1.5}, + + {"matrix": [1, 17], "x": 18.5, "y": 1.5}, + {"matrix": [1, 18], "x": 19.5, "y": 1.5}, + {"matrix": [1, 19], "x": 20.5, "y": 1.5}, + {"matrix": [1, 20], "x": 21.5, "y": 1.5}, + + {"matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"matrix": [2, 2], "x": 2.5, "y": 2.5}, + {"matrix": [2, 3], "x": 3.5, "y": 2.5}, + {"matrix": [2, 4], "x": 4.5, "y": 2.5}, + {"matrix": [2, 5], "x": 5.5, "y": 2.5}, + {"matrix": [2, 6], "x": 6.5, "y": 2.5}, + {"matrix": [2, 7], "x": 7.5, "y": 2.5}, + {"matrix": [2, 8], "x": 8.5, "y": 2.5}, + {"matrix": [2, 9], "x": 9.5, "y": 2.5}, + {"matrix": [2, 10], "x": 10.5, "y": 2.5}, + {"matrix": [2, 11], "x": 11.5, "y": 2.5}, + {"matrix": [2, 12], "x": 12.5, "y": 2.5}, + {"matrix": [2, 13], "x": 13.5, "y": 2.5, "w": 1.5}, + + {"matrix": [2, 14], "x": 15.25, "y": 2.5}, + {"matrix": [2, 15], "x": 16.25, "y": 2.5}, + {"matrix": [2, 16], "x": 17.25, "y": 2.5}, + + {"matrix": [2, 17], "x": 18.5, "y": 2.5}, + {"matrix": [2, 18], "x": 19.5, "y": 2.5}, + {"matrix": [2, 19], "x": 20.5, "y": 2.5}, + {"matrix": [2, 20], "x": 21.5, "y": 2.5, "h": 2}, + + {"matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"matrix": [3, 2], "x": 2.75, "y": 3.5}, + {"matrix": [3, 3], "x": 3.75, "y": 3.5}, + {"matrix": [3, 4], "x": 4.75, "y": 3.5}, + {"matrix": [3, 5], "x": 5.75, "y": 3.5}, + {"matrix": [3, 6], "x": 6.75, "y": 3.5}, + {"matrix": [3, 7], "x": 7.75, "y": 3.5}, + {"matrix": [3, 8], "x": 8.75, "y": 3.5}, + {"matrix": [3, 9], "x": 9.75, "y": 3.5}, + {"matrix": [3, 10], "x": 10.75, "y": 3.5}, + {"matrix": [3, 11], "x": 11.75, "y": 3.5}, + {"matrix": [3, 13], "x": 12.75, "y": 3.5, "w": 2.25}, + + {"matrix": [3, 17], "x": 18.5, "y": 3.5}, + {"matrix": [3, 18], "x": 19.5, "y": 3.5}, + {"matrix": [3, 19], "x": 20.5, "y": 3.5}, + + {"matrix": [4, 0], "x": 0, "y": 4.5, "w": 2.25}, + {"matrix": [4, 2], "x": 2.25, "y": 4.5}, + {"matrix": [4, 3], "x": 3.25, "y": 4.5}, + {"matrix": [4, 4], "x": 4.25, "y": 4.5}, + {"matrix": [4, 5], "x": 5.25, "y": 4.5}, + {"matrix": [4, 6], "x": 6.25, "y": 4.5}, + {"matrix": [4, 7], "x": 7.25, "y": 4.5}, + {"matrix": [4, 8], "x": 8.25, "y": 4.5}, + {"matrix": [4, 9], "x": 9.25, "y": 4.5}, + {"matrix": [4, 10], "x": 10.25, "y": 4.5}, + {"matrix": [4, 11], "x": 11.25, "y": 4.5}, + {"matrix": [4, 13], "x": 12.25, "y": 4.5, "w": 2.75}, + + {"matrix": [4, 15], "x": 16.25, "y": 4.5}, + + {"matrix": [4, 17], "x": 18.5, "y": 4.5, "w": 2}, + {"matrix": [4, 18], "x": 19.5, "y": 4.5}, + {"matrix": [4, 19], "x": 20.5, "y": 4.5}, + {"matrix": [4, 20], "x": 21.5, "y": 4.5, "h": 2}, + + {"matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"matrix": [5, 1], "x": 1.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 2], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 3], "x": 3.75, "y": 5.5, "w": 6.25}, + {"matrix": [5, 4], "x": 10, "y": 5.5, "w": 1.25}, + {"matrix": [5, 5], "x": 11.25, "y": 5.5, "w": 1.25}, + {"matrix": [5, 6], "x": 12.5, "y": 5.5, "w": 1.25}, + {"matrix": [5, 8], "x": 13.75, "y": 5.5, "w": 1.25}, + + {"matrix": [5, 14], "x": 15.25, "y": 5.5}, + {"matrix": [5, 15], "x": 16.25, "y": 5.5}, + {"matrix": [5, 16], "x": 17.25, "y": 5.5}, + {"matrix": [5, 18], "x": 18.5, "y": 5.5, "w": 2}, + {"matrix": [5, 19], "x": 20.5, "y": 5.5} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/redragon/k582/keymaps/default/keymap.c b/keyboards/redragon/k582/keymaps/default/keymap.c new file mode 100644 index 000000000000..34569791e3c4 --- /dev/null +++ b/keyboards/redragon/k582/keymaps/default/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2024 Robert S. + * + * 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 + +// Each layer gets a name for readability. +// The underscores don't mean anything - you can +// have a layer called STUFF or any other name. +// Layer names don't all need to be of the same +// length, and you can also skip them entirely +// and just use numbers. +enum layer_names { + _BL, + _FL, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BL] = LAYOUT_fullsize_ansi( + 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_PSCR, KC_SCRL, KC_PAUS, + 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_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_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_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT + ), + [_FL] = LAYOUT_fullsize_ansi( + QK_BOOT, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, RGB_TOG, _______, _______, KC_SLEP, + QK_RBT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, RGB_M_P, RGB_M_B, RGB_M_R, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_SW, RGB_MOD, RGB_RMOD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, KC_BRIU, KC_BRID, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUI, _______, _______ + ) +}; diff --git a/keyboards/redragon/k582/keymaps/via/config.h b/keyboards/redragon/k582/keymaps/via/config.h new file mode 100644 index 000000000000..67984713ba80 --- /dev/null +++ b/keyboards/redragon/k582/keymaps/via/config.h @@ -0,0 +1,20 @@ +/* Copyright 2021 Harrison Chan (Xelus) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#pragma once + +/* Define dynamic keymap layer count */ +#define DYNAMIC_KEYMAP_LAYER_COUNT 2 diff --git a/keyboards/redragon/k582/keymaps/via/k582_via.json b/keyboards/redragon/k582/keymaps/via/k582_via.json new file mode 100644 index 000000000000..23c8556871d2 --- /dev/null +++ b/keyboards/redragon/k582/keymaps/via/k582_via.json @@ -0,0 +1,105 @@ +{ + "name": "K582 Surara", + "vendorId": "0x0C45", + "productId": "0x5004", + "firmwareVersion": 0, + "matrix": { + "rows": 6, + "cols": 21 + }, + "keycodes": [ + "qmk_lighting" + ], + "menus": [ + { + "label": "Lighting", + "content": [ + { + "label": "Backlight", + "content": [ + { + "label": "Brightness", + "type": "range", + "options": [ + 0, + 255 + ], + "content": [ + "id_qmk_rgb_matrix_brightness", + 3, + 1 + ] + }, + { + "label": "Effect", + "type": "dropdown", + "content": [ + "id_qmk_rgb_matrix_effect", + 3, + 2 + ], + "options": [ + ["00. None", 0], + ["01. SOLID_COLOR", 1], + ["02. BREATHING", 2], + ["03. BAND_SPIRAL_VAL", 3], + ["04. CYCLE_ALL", 4], + ["05. CYCLE_LEFT_RIGHT", 5], + ["06. CYCLE_UP_DOWN", 6], + ["07. RAINBOW_MOVING_CHEVRON", 7], + ["08. CYCLE_OUT_IN", 8], + ["09. CYCLE_OUT_IN_DUAL", 9], + ["10. CYCLE_PINWHEEL", 10], + ["11. CYCLE_SPIRAL", 11], + ["12. DUAL_BEACON", 12], + ["13. RAINBOW_BEACON", 13], + ["14. JELLYBEAN_RAINDROPS", 14], + ["15. PIXEL_RAIN", 15], + ["16. TYPING_HEATMAP", 16], + ["17. REACTIVE_MULTIWIDE", 17], + ["18. REACTIVE_MULTINEXUS", 18], + ["19. SPLASH", 19], + ["20. SOLID_SPLASH", 20], + ["21. RIVERFLOW", 21] + ] + }, + { + "showIf": "{id_qmk_rgb_matrix_effect} > 1", + "label": "Effect Speed", + "type": "range", + "options": [ + 0, + 255 + ], + "content": [ + "id_qmk_rgb_matrix_effect_speed", + 3, + 3 + ] + }, + { + "showIf": "{id_qmk_rgb_matrix_effect} != 0", + "label": "Color", + "type": "color", + "content": [ + "id_qmk_rgb_matrix_color", + 3, + 4 + ] + } + ] + } + ] + } + ], + "layouts": { + "keymap": [ + [{"c":"#777777"},"0,0",{"x":1,"c":"#cccccc"},"0,1","0,2","0,3","0,4",{"x":0.5},"0,5","0,6","0,7","0,8",{"x":0.5},"0,9","0,10","0,11","0,12",{"x":0.25},"0,13","0,14","0,15"], + [{"y":0.5},"1,0","1,1","1,2","1,3","1,4","1,5","1,6","1,7","1,8","1,9","1,10","1,11","1,12",{"c":"#aaaaaa","w":2},"1,13",{"x":0.25,"c":"#cccccc"},"1,14","1,15","1,16",{"x":0.25},"1,17","1,18","1,19","1,20"], + [{"c":"#aaaaaa","w":1.5},"2,0",{"c":"#cccccc"},"2,1","2,2","2,3","2,4","2,5","2,6","2,7","2,8","2,9","2,10","2,11","2,12",{"w":1.5},"2,13",{"x":0.25},"2,14","2,15","2,16",{"x":0.25},"2,17","2,18","2,19",{"h":2},"2,20"], + [{"c":"#aaaaaa","w":1.75},"3,0",{"c":"#cccccc"},"3,1","3,2","3,3","3,4","3,5","3,6","3,7","3,8","3,9","3,10","3,11",{"c":"#777777","w":2.25},"3,13",{"x":3.5,"c":"#cccccc"},"3,17","3,18","3,19"], + [{"c":"#aaaaaa","w":2.25},"4,0",{"c":"#cccccc"},"4,2","4,3","4,4","4,5","4,6","4,7","4,8","4,9","4,10","4,11",{"c":"#aaaaaa","w":2.75},"4,13",{"x":1.25,"c":"#777777"},"4,15",{"x":1.25,"c":"#cccccc"},"4,17","4,18","4,19",{"c":"#777777","h":2},"4,20"], + [{"c":"#aaaaaa","w":1.25},"5,0",{"w":1.25},"5,1",{"w":1.25},"5,2",{"c":"#cccccc","w":6.25},"5,3",{"c":"#aaaaaa","w":1.25},"5,4",{"w":1.25},"5,5",{"c":"#cccccc","w":1.25},"5,6",{"c":"#aaaaaa","w":1.25},"5,8",{"x":0.25,"c":"#777777"},"5,14","5,15","5,16",{"x":0.25,"c":"#cccccc","w":2},"5,18","5,19"] + ] + } +} \ No newline at end of file diff --git a/keyboards/redragon/k582/keymaps/via/keymap.c b/keyboards/redragon/k582/keymaps/via/keymap.c new file mode 100644 index 000000000000..34569791e3c4 --- /dev/null +++ b/keyboards/redragon/k582/keymaps/via/keymap.c @@ -0,0 +1,47 @@ +/* Copyright 2024 Robert S. + * + * 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 + +// Each layer gets a name for readability. +// The underscores don't mean anything - you can +// have a layer called STUFF or any other name. +// Layer names don't all need to be of the same +// length, and you can also skip them entirely +// and just use numbers. +enum layer_names { + _BL, + _FL, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_BL] = LAYOUT_fullsize_ansi( + 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_PSCR, KC_SCRL, KC_PAUS, + 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_INS, KC_HOME, KC_PGUP, KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + 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_END, KC_PGDN, KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_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_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_PENT, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FL), KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT + ), + [_FL] = LAYOUT_fullsize_ansi( + QK_BOOT, KC_MSEL, KC_VOLD, KC_VOLU, KC_MUTE, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MAIL, KC_WHOM, KC_CALC, RGB_TOG, _______, _______, KC_SLEP, + QK_RBT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_SPD, RGB_SPI, _______, RGB_M_P, RGB_M_B, RGB_M_R, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_M_SW, RGB_MOD, RGB_RMOD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RGB_VAI, _______, KC_BRIU, KC_BRID, _______, + _______, GU_TOGG, _______, _______, _______, _______, _______, _______, RGB_HUD, RGB_VAD, RGB_HUI, _______, _______ + ) +}; diff --git a/keyboards/redragon/k582/keymaps/via/rules.mk b/keyboards/redragon/k582/keymaps/via/rules.mk new file mode 100644 index 000000000000..1e5b99807cb7 --- /dev/null +++ b/keyboards/redragon/k582/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/redragon/k582/rules.mk b/keyboards/redragon/k582/rules.mk new file mode 100644 index 000000000000..e69de29bb2d1