Vial implementation for the winry315 (#323)

* VIAL firmware for winry315

First attempt

* Further changes

* Top and Bottom layouts implemented

* 4 layouts implemented

* Further changes to layouts and RGB

* Final changes, cleanup and comments for v1.0
This commit is contained in:
pedrorq 2023-01-14 04:29:41 +00:00 committed by GitHub
parent 016565401e
commit a760651d58
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 388 additions and 0 deletions

View file

@ -0,0 +1,80 @@
/*
Copyright 2023 Pedro Quaresma <pedro.quaresma@gmail.com>
With special thanks to Markus Knutsson <markus.knutsson@tweety.se>
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
#define VIAL_KEYBOARD_UID {0x22, 0xC3, 0x6B, 0x95, 0x11, 0x79, 0x7F, 0x80}
// To unlock in VIAL, use the top left and bottom left corners when encoders are north
#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 }
#define VIAL_UNLOCK_COMBO_COLS { 0, 2 }
#define RGBLIGHT_SLEEP
//To save some memory, adding some functionality limitations
#define VIAL_TAP_DANCE_ENTRIES 4
#define VIAL_COMBO_ENTRIES 4
#define VIAL_KEY_OVERRIDE_ENTRIES 4
#define DYNAMIC_KEYMAP_LAYER_COUNT 2
// To save more memory, some RGB effects need to be removed/undefined
//#undef RGB_MATRIX_KEYPRESSES
#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_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_RAIN
#undef ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE
#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

View file

@ -0,0 +1,45 @@
// Copyright 2022 Copyright 2023 Pedro Quaresma <pedro.quaresma@gmail.com>
// With special thanks to Markus Knutsson <markus.knutsson@tweety.se>
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
// clang-format off
#define LAYOUT_via( \
k17, k15, k16, \
k23,k22, k19,k18, k21,k20, \
k00, k01, k02, k03, k04, \
k05, k06, k07, k08, k09, \
k10, k11, k12, k13, k14 \
) { \
{ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k20, k21, k22, k23 } \
}
#define U_LTESC LT(1, KC_ESC)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_via(
KC_HOME, KC_MUTE, KC_MPLY,
KC_PGUP, KC_PGDN, KC_VOLD, KC_VOLU, KC_MPRV, KC_MNXT,
KC_1, KC_2, KC_3, KC_4, KC_5,
KC_6, KC_7, KC_8, KC_9, KC_0,
U_LTESC, KC_TAB, KC_SPC, KC_BSPC, KC_ENT
),
[1] = LAYOUT_via(
RGB_M_P, RGB_M_B, RGB_M_R,
RGB_HUD, RGB_HUI, RGB_SAD, RGB_SAI, RGB_VAD, RGB_VAI,
RGB_MOD, RGB_HUI, RGB_SAI, RGB_VAI, RGB_SPI,
RGB_RMOD,RGB_HUD, RGB_SAD, RGB_VAD, RGB_SPD,
KC_TRNS, RGB_TOG, RGB_M_P, RGB_M_B, RGB_M_R
),
};
// clang-format on
#if defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
[0] = { ENCODER_CCW_CW(KC_PGUP, KC_PGDN), ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_MPRV, KC_MNXT) },
[1] = { ENCODER_CCW_CW(RGB_HUD, RGB_HUI), ENCODER_CCW_CW(RGB_SAD, RGB_SAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }
};
#endif

View file

@ -0,0 +1 @@
# The default keymap for Winry315

View file

@ -0,0 +1,8 @@
VIAL_ENABLE = yes
VIA_ENABLE = yes
LTO_ENABLE = yes
QMK_SETTINGS = no
ENCODER_MAP_ENABLE = yes
VIALRGB_ENABLE = yes
MOUSEKEY_ENABLE = no

View file

@ -0,0 +1,254 @@
{
"name": "Winry315",
"vendorId": "0xF1F1",
"productId": "0x0315",
"lighting": "vialrgb",
"matrix": {
"rows": 1,
"cols": 24
},
"layouts": {
"labels": [
[
"Encoder Side",
"Top",
"Left",
"Right",
"Bottom"
]
],
"keymap": [
{
"name": "Winry315 Macropad"
},
[
"0,0\n\n\n0,0\n\n\n\n\n\ne",
"0,1\n\n\n0,0\n\n\n\n\n\ne",
"1,0\n\n\n0,0\n\n\n\n\n\ne",
"1,1\n\n\n0,0\n\n\n\n\n\ne",
"2,0\n\n\n0,0\n\n\n\n\n\ne",
"2,1\n\n\n0,0\n\n\n\n\n\ne"
],
[
{
"x": 0.5
},
"0,17\n\n\n0,0",
{
"x": 1
},
"0,15\n\n\n0,0",
{
"x": 1
},
"0,16\n\n\n0,0"
],
[
{
"y": 0.5,
"x": 0.5
},
"0,0\n\n\n0,0",
"0,1\n\n\n0,0",
"0,2\n\n\n0,0",
"0,3\n\n\n0,0",
"0,4\n\n\n0,0"
],
[
{
"x": 0.5
},
"0,5\n\n\n0,0",
"0,6\n\n\n0,0",
"0,7\n\n\n0,0",
"0,8\n\n\n0,0",
"0,9\n\n\n0,0"
],
[
{
"x": 0.5
},
"0,10\n\n\n0,0",
"0,11\n\n\n0,0",
"0,12\n\n\n0,0",
"0,13\n\n\n0,0",
"0,14\n\n\n0,0"
],
[
{
"y": 0.5,
"x": 0.5
},
"0,14\n\n\n0,3",
"0,13\n\n\n0,3",
"0,12\n\n\n0,3",
"0,11\n\n\n0,3",
"0,10\n\n\n0,3"
],
[
{
"x": 0.5
},
"0,9\n\n\n0,3",
"0,8\n\n\n0,3",
"0,7\n\n\n0,3",
"0,6\n\n\n0,3",
"0,5\n\n\n0,3"
],
[
{
"x": 0.5
},
"0,4\n\n\n0,3",
"0,3\n\n\n0,3",
"0,2\n\n\n0,3",
"0,1\n\n\n0,3",
"0,0\n\n\n0,3"
],
[
{
"y": 0.5
},
"2,0\n\n\n0,3\n\n\n\n\n\ne",
"2,1\n\n\n0,3\n\n\n\n\n\ne",
"1,0\n\n\n0,3\n\n\n\n\n\ne",
"1,1\n\n\n0,3\n\n\n\n\n\ne",
"0,0\n\n\n0,3\n\n\n\n\n\ne",
"0,1\n\n\n0,3\n\n\n\n\n\ne"
],
[
{
"x": 0.5
},
"0,16\n\n\n0,3",
{
"x": 1
},
"0,15\n\n\n0,3",
{
"x": 1
},
"0,17\n\n\n0,3"
],
[
{
"y":0.5
},
"2,0\n\n\n0,1\n\n\n\n\n\ne",
"2,1\n\n\n0,1\n\n\n\n\n\ne"
],
[
{
"x":0.5
},
"0,16\n\n\n0,1",
{
"x":1
},
"0,4\n\n\n0,1",
"0,9\n\n\n0,1",
"0,14\n\n\n0,1"
],
[
"1,0\n\n\n0,1\n\n\n\n\n\ne",
"1,1\n\n\n0,1\n\n\n\n\n\ne",
{
"x":0.5
},
"0,3\n\n\n0,1",
"0,8\n\n\n0,1",
"0,13\n\n\n0,1"
],
[
{
"x":0.5
},
"0,15\n\n\n0,1",
{
"x":1
},
"0,2\n\n\n0,1",
"0,7\n\n\n0,1",
"0,12\n\n\n0,1"
],
[
"0,0\n\n\n0,1\n\n\n\n\n\ne",
"0,1\n\n\n0,1\n\n\n\n\n\ne",
{
"x":0.5
},
"0,1\n\n\n0,1",
"0,6\n\n\n0,1",
"0,11\n\n\n0,1"
],
[
{
"x":0.5
},
"0,17\n\n\n0,1",
{
"x":1
},
"0,0\n\n\n0,1",
"0,5\n\n\n0,1",
"0,10\n\n\n0,1"
],
[
{
"y":0.5,
"x":3.5
},
"0,0\n\n\n0,2\n\n\n\n\n\ne",
"0,1\n\n\n0,2\n\n\n\n\n\ne"
],
[
"0,10\n\n\n0,2",
"0,5\n\n\n0,2",
"0,0\n\n\n0,2",
{
"x":1
},
"0,17\n\n\n0,2"
],
[
"0,11\n\n\n0,2",
"0,6\n\n\n0,2",
"0,1\n\n\n0,2",
{
"x":0.5
},
"1,0\n\n\n0,2\n\n\n\n\n\ne",
"1,1\n\n\n0,2\n\n\n\n\n\ne"
],
[
"0,12\n\n\n0,2",
"0,7\n\n\n0,2",
"0,2\n\n\n0,2",
{
"x":1
},
"0,17\n\n\n0,2"
],
[
"0,13\n\n\n0,2",
"0,8\n\n\n0,2",
"0,3\n\n\n0,2",
{
"x":0.5
},
"2,0\n\n\n0,2\n\n\n\n\n\ne",
"2,1\n\n\n0,2\n\n\n\n\n\ne"
],
[
"0,14\n\n\n0,2",
"0,9\n\n\n0,2",
"0,4\n\n\n0,2",
{
"x":1
},
"0,17\n\n\n0,2"
]
]
}
}