Add Vial support to ProjectD Tinker 65 ANSI (#895)

* Add support for ProjectD Tinker65 ANSI

Reduced nr. of layers from 13 to 4 and disabled some features to save space, because otherwise wouldn't fit EPROM

* All features enabled by default

All features now enabled by default, and only nr. of layers reduced to make fit. Can uncomment lines in rules.mk to squeeze a bit more free space out if features are not needed.

* Fix nr. of layers in keyboard.json

When uploading to github for the pull request, forgot to edit the keyboard.json to decrease the number of layers. Only did that in my local offline clone.

* Moved layer reduction to vial/config.h and reverted main keyboard.json

Reverted main keyboard.json back to default for upstream QMK compatibility. Put redefinition of layers back in vial/config.h but added a #undef to get rid of the definition from keyboard.json that caused this method to not build.
This commit is contained in:
Gilbert Creemers 2025-06-23 04:52:16 +02:00 committed by GitHub
parent b2f9fd0123
commit 02a98ccd71
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 243 additions and 0 deletions

View file

@ -0,0 +1,11 @@
/* SPDX-Licence-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0xBC, 0xF1, 0xF0, 0x04, 0x32, 0x4B, 0x34, 0xE8}
#define VIAL_UNLOCK_COMBO_ROWS { 1, 8 }
#define VIAL_UNLOCK_COMBO_COLS { 3, 4 }
#undef DYNAMIC_KEYMAP_LAYER_COUNT
#define DYNAMIC_KEYMAP_LAYER_COUNT 4

View file

@ -0,0 +1,93 @@
/* Copyright 2023 GSKY <gskyGit@gsky.com.tw>
*
* 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
// Each layer gets a name for readability, which is then used in the keymap matrix below.
// The underscores don't mean anything - you can have a layer called STUFF or any other name.
enum my_keycodes {
RGB_R = QK_USER,
RGB_G,
RGB_B,
RGB_W,
SW_cy,
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case RGB_R:
if (record->event.pressed) {
rgb_matrix_sethsv(0, 255, 255);
rgb_matrix_mode(1);
}
return false; /* Skip all further processing of this key */
case RGB_G:
if (record->event.pressed) {
rgb_matrix_sethsv(85, 255, 255);
rgb_matrix_mode(1);
}
return false; /* Skip all further processing of this key */
case RGB_B:
if (record->event.pressed) {
rgb_matrix_sethsv(170, 255, 255);
rgb_matrix_mode(1);
}
return false; /* Skip all further processing of this key */
case RGB_W:
if (record->event.pressed) {
rgb_matrix_sethsv(0, 0, 255);
rgb_matrix_mode(1);
}
return false; /* Skip all further processing of this key */
case SW_cy:
rgb_matrix_sethsv(0, 255, 255);
rgb_matrix_mode(13);
return false; /* Skip all further processing of this key */
default:
return true; /* Process all other keycodes normally */
}
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/* Keymap _BL: Base Layer (Default Layer)
*/
[0] = LAYOUT(
QK_GESC, 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_DEL,
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_PGUP,
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_PGDN,
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_END,
KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT),
[1] = LAYOUT(
KC_GRV, 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_DEL, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RM_TOGG, RM_NEXT, RM_PREV, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_RSFT, RM_VALU, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, RM_SPDD, RM_VALD, RM_SPDU),
[2] = LAYOUT(
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, RGB_R, RGB_G, RGB_B, RGB_W, SW_cy, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
};

View file

@ -0,0 +1,7 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
# TAP_DANCE_ENABLE = no
# COMBO_ENABLE = no
# KEY_OVERRIDE_ENABLE = no
LTO_ENABLE = yes
VIALRGB_ENABLE = yes

View file

@ -0,0 +1,132 @@
{
"lighting": "vialrgb",
"matrix": {
"rows": 9,
"cols": 8
},
"layouts": {
"keymap": [
[
"1,3",
"1,7",
"2,7",
"3,7",
"4,7",
"4,6",
"5,6",
"5,7",
"6,7",
"7,7",
"8,7",
"8,6",
"6,6",
{
"w": 2
},
"7,1",
"2,3"
],
[
{
"w": 1.5
},
"1,1",
"1,0",
"2,0",
"3,0",
"4,0",
"4,1",
"5,1",
"5,0",
"6,0",
"7,0",
"8,0",
"8,1",
"6,1",
{
"w": 1.5
},
"7,5",
"7,3"
],
[
{
"w": 1.75
},
"2,1",
"1,2",
"2,2",
"3,2",
"4,2",
"4,3",
"5,3",
"5,2",
"6,2",
"7,2",
"8,2",
"8,3",
{
"w": 2.25
},
"8,4",
"2,6"
],
[
{
"w": 2.25
},
"0,0",
"1,4",
"2,4",
"3,4",
"4,4",
"4,5",
"5,5",
"5,4",
"6,4",
"7,4",
"8,5",
{
"w": 1.75
},
"0,7",
"1,6",
"6,3"
],
[
{
"w": 1.25
},
"0,6",
{
"w": 1.25
},
"0,5",
{
"w": 1.25
},
"0,2",
{
"w": 6.25
},
"0,1",
{
"w": 1.25
},
"3,6",
{
"w": 1.25
},
"3,3",
{
"x": 0.5
},
"0,3",
"1,5",
"2,5"
]
]
}
}