From 154809fea14b463a32caec032d73fc163cf18c40 Mon Sep 17 00:00:00 2001 From: muge <221161+muge@users.noreply.github.com> Date: Mon, 12 May 2025 08:23:17 -0700 Subject: [PATCH] Add VIAL support for CXT Studio 12e3 (#885) * intial vial port * fix gui encoder layout * apply changes from https://github.com/qmk/qmk_firmware/pull/25242 * fix row # typo --- keyboards/cxt_studio/12e3/keyboard.json | 4 +- .../cxt_studio/12e3/keymaps/vial/config.h | 70 +++++++++++++++++++ .../cxt_studio/12e3/keymaps/vial/keymap.c | 40 +++++++++++ .../cxt_studio/12e3/keymaps/vial/rules.mk | 16 +++++ .../cxt_studio/12e3/keymaps/vial/vial.json | 45 ++++++++++++ 5 files changed, 173 insertions(+), 2 deletions(-) create mode 100644 keyboards/cxt_studio/12e3/keymaps/vial/config.h create mode 100644 keyboards/cxt_studio/12e3/keymaps/vial/keymap.c create mode 100644 keyboards/cxt_studio/12e3/keymaps/vial/rules.mk create mode 100644 keyboards/cxt_studio/12e3/keymaps/vial/vial.json diff --git a/keyboards/cxt_studio/12e3/keyboard.json b/keyboards/cxt_studio/12e3/keyboard.json index 763f6bd5b9..6b5bf3b115 100644 --- a/keyboards/cxt_studio/12e3/keyboard.json +++ b/keyboards/cxt_studio/12e3/keyboard.json @@ -21,8 +21,8 @@ }, "encoder": { "rotary": [ - {"pin_a": "F5", "pin_b": "F6"}, - {"pin_a": "E6", "pin_b": "F0"}, + {"pin_a": "F5", "pin_b": "F6", "resolution": 4}, + {"pin_a": "E6", "pin_b": "F0", "resolution": 4}, {"pin_a": "B3", "pin_b": "B2", "resolution": 2} ] }, diff --git a/keyboards/cxt_studio/12e3/keymaps/vial/config.h b/keyboards/cxt_studio/12e3/keymaps/vial/config.h new file mode 100644 index 0000000000..45da444f24 --- /dev/null +++ b/keyboards/cxt_studio/12e3/keymaps/vial/config.h @@ -0,0 +1,70 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0xC0, 0x2A, 0xCA, 0xFE, 0xC3, 0x5E, 0x1F, 0x41} +#define VIAL_UNLOCK_COMBO_ROWS {0, 0} +#define VIAL_UNLOCK_COMBO_COLS {2, 3} + +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE +#define NO_MUSIC_MODE + +/* Lightning undefs */ +#undef RGBLIGHT_ANIMATIONS +#undef RGBLIGHT_EFFECT_BREATHING +#undef RGBLIGHT_EFFECT_RAINBOW_MOOD +#undef RGBLIGHT_EFFECT_RAINBOW_SWIRL +#undef RGBLIGHT_EFFECT_SNAKE +#undef RGBLIGHT_EFFECT_KNIGHT +#undef RGBLIGHT_EFFECT_CHRISTMAS +#undef RGBLIGHT_EFFECT_STATIC_GRADIENT +#undef RGBLIGHT_EFFECT_RGB_TEST +#undef RGBLIGHT_EFFECT_ALTERNATING +#undef RGBLIGHT_EFFECT_TWINKLE + +#undef ENABLE_RGB_MATRIX_ALPHAS_MODS +#undef ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN +#undef ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT +#undef ENABLE_RGB_MATRIX_BREATHING +#undef ENABLE_RGB_MATRIX_BAND_SAT +#undef ENABLE_RGB_MATRIX_BAND_VAL +#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT +#undef ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL +#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT +#undef ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL +#undef ENABLE_RGB_MATRIX_CYCLE_ALL +#undef ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT +#undef ENABLE_RGB_MATRIX_CYCLE_UP_DOWN +#undef ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON +#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN +#undef ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL +#undef ENABLE_RGB_MATRIX_CYCLE_PINWHEEL +#undef ENABLE_RGB_MATRIX_CYCLE_SPIRAL +#undef ENABLE_RGB_MATRIX_DUAL_BEACON +#undef ENABLE_RGB_MATRIX_RAINBOW_BEACON +#undef ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS +#undef ENABLE_RGB_MATRIX_FLOWER_BLOOMING +#undef ENABLE_RGB_MATRIX_RAINDROPS +#undef ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS +#undef ENABLE_RGB_MATRIX_HUE_BREATHING +#undef ENABLE_RGB_MATRIX_HUE_PENDULUM +#undef ENABLE_RGB_MATRIX_HUE_WAVE +#undef ENABLE_RGB_MATRIX_PIXEL_FRACTAL +#undef ENABLE_RGB_MATRIX_PIXEL_FLOW +#undef ENABLE_RGB_MATRIX_PIXEL_RAIN + +#undef ENABLE_RGB_MATRIX_TYPING_HEATMAP +#undef ENABLE_RGB_MATRIX_DIGITAL_RAIN + +#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE +#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#undef ENABLE_RGB_MATRIX_SPLASH +#undef ENABLE_RGB_MATRIX_MULTISPLASH +#undef ENABLE_RGB_MATRIX_SOLID_SPLASH +#undef ENABLE_RGB_MATRIX_SOLID_MULTISPLASH diff --git a/keyboards/cxt_studio/12e3/keymaps/vial/keymap.c b/keyboards/cxt_studio/12e3/keymaps/vial/keymap.c new file mode 100644 index 0000000000..ef4b6938eb --- /dev/null +++ b/keyboards/cxt_studio/12e3/keymaps/vial/keymap.c @@ -0,0 +1,40 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum my_layers { + _BASE, + _RGBL, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_BASE] = LAYOUT( + KC_ESC, C(KC_X), C(KC_C), C(KC_V), MS_BTN3, RM_TOGG, + KC_PSCR,C(KC_Z), KC_CALC, KC_MNXT, KC_MPLY, + MO(1), KC_LGUI, KC_DEL, KC_APP + ), + + [_RGBL] = LAYOUT( + RM_NEXT, RM_SATU, KC_INS, KC_DEL, _______, _______, + RM_PREV, RM_SATD, KC_PGUP, KC_HOME, KC_MUTE, + _______, QK_BOOT, KC_PGDN, KC_END + ), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + // Encoders: Left, Right, Big + [_BASE] = { + ENCODER_CCW_CW(MS_WHLD, MS_WHLU), + ENCODER_CCW_CW(KC_PGDN, KC_PGUP), + ENCODER_CCW_CW(KC_VOLD, KC_VOLU) + }, + [_RGBL] = { + ENCODER_CCW_CW(RM_HUED, RM_HUEU), + ENCODER_CCW_CW(RM_SPDD, RM_SPDU), + ENCODER_CCW_CW(RM_VALD, RM_VALU) + }, +}; +#endif diff --git a/keyboards/cxt_studio/12e3/keymaps/vial/rules.mk b/keyboards/cxt_studio/12e3/keymaps/vial/rules.mk new file mode 100644 index 0000000000..91fbadb604 --- /dev/null +++ b/keyboards/cxt_studio/12e3/keymaps/vial/rules.mk @@ -0,0 +1,16 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes +QMK_SETTINGS = yes +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes +KEY_OVERRIDE_ENABLE = no +#TOP_SYMBOLS = yes + +CONSOLE_ENABLE = no +COMMAND_ENABLE = no +MOUSEKEY_ENABLE = no +AVR_USE_MINIMAL_PRINTF = yes +SPACE_CADET_ENABLE = no +GRAVE_ESC_ENABLE = no +MAGIC_ENABLE = no +MUSIC_ENABLE = no diff --git a/keyboards/cxt_studio/12e3/keymaps/vial/vial.json b/keyboards/cxt_studio/12e3/keymaps/vial/vial.json new file mode 100644 index 0000000000..e4d201dd2d --- /dev/null +++ b/keyboards/cxt_studio/12e3/keymaps/vial/vial.json @@ -0,0 +1,45 @@ +{ + "name": "cxt_studio 12E3", + "vendorId": "0x0215", + "productId": "0x12e3", + "lighting": "qmk_rgblight", + "matrix": { "rows": 4, "cols": 4 }, + "layouts": { + "keymap": +[ + [ + "0,0", + "0,1", + "0,2", + "0,3", + + { "x": 0.25 }, + "0,0\n\n\n\n\n\n\n\n\ne", + "0,1\n\n\n\n\n\n\n\n\ne", + { "x": 0.25 }, + "1,0\n\n\n\n\n\n\n\n\ne", + "1,1\n\n\n\n\n\n\n\n\ne" + ], + [ + "1,0", + "1,1", + "1,2", + "1,3", + + { "x": 0.75 }, "3,2", + { "x": 1.25 }, "3,3" + ], + [ + "2,0", + "2,1", + "2,2", + "2,3", + + { "x": 0.5 }, + "2,0\n\n\n\n\n\n\n\n\ne", + { "w": 1.75, "h": 1.75 }, "3,1", + "2,1\n\n\n\n\n\n\n\n\ne" + ] +] +} +}