From 06563c902cf07eceae7c4066cf5edd1ca622b457 Mon Sep 17 00:00:00 2001 From: GustawXYZ <129527844+GustawXYZ@users.noreply.github.com> Date: Mon, 9 Jun 2025 07:31:10 +0000 Subject: [PATCH] add dactyl_manuform_pi_pico vial support (#889) --- .../keymaps/vial/config.h | 10 ++ .../keymaps/vial/keymap.c | 65 +++++++++++++ .../keymaps/vial/rules.mk | 6 ++ .../keymaps/vial/vial.json | 91 +++++++++++++++++++ 4 files changed, 172 insertions(+) create mode 100644 keyboards/handwired/dactyl_manuform_pi_pico/keymaps/vial/config.h create mode 100644 keyboards/handwired/dactyl_manuform_pi_pico/keymaps/vial/keymap.c create mode 100644 keyboards/handwired/dactyl_manuform_pi_pico/keymaps/vial/rules.mk create mode 100644 keyboards/handwired/dactyl_manuform_pi_pico/keymaps/vial/vial.json diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/vial/config.h b/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/vial/config.h new file mode 100644 index 0000000000..8d2ba98bae --- /dev/null +++ b/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/vial/config.h @@ -0,0 +1,10 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +#pragma once + +#define VIAL_KEYBOARD_UID {0x46, 0x7C, 0x9A, 0xFE, 0xB6, 0x9A, 0xFD, 0x90} + +#define DYNAMIC_KEYMAP_LAYER_COUNT 9 + +#define VIAL_UNLOCK_COMBO_ROWS { 0, 0 } +#define VIAL_UNLOCK_COMBO_COLS { 0, 5 } diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/vial/keymap.c b/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/vial/keymap.c new file mode 100644 index 0000000000..cd78aef7a9 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/vial/keymap.c @@ -0,0 +1,65 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +enum layers { + _QWERTY, + _SYMBOLS, + _GAMING, + _ARROWS, + _WINMGR, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT( + 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + KC_ESC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, + LALT(KC_LSFT), LALT(KC_SPC), LALT(KC_SPC), LGUI(KC_LALT), + KC_SPC, TT(_SYMBOLS), TT(_ARROWS), LALT(KC_ENTER), + KC_LCTL, KC_LGUI, KC_LGUI, KC_RCTL, + KC_LALT, TT(_WINMGR), TT(_GAMING), KC_LALT), + + [_SYMBOLS] = 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_CAPS_LOCK, LSFT(KC_BSLS), KC_BSLS, LSFT(KC_LBRC), LSFT(KC_RBRC), KC_TRNS, KC_TRNS, LSFT(KC_7), LSFT(KC_8), LSFT(KC_9), LCTL(KC_EQUAL), LGUI(KC_EQUAL), + TO(_QWERTY), LSFT(KC_EQUAL), KC_MINUS, LSFT(KC_9), LSFT(KC_0), KC_GRAVE, KC_BSLS, LSFT(KC_4), LSFT(KC_5), LSFT(KC_6), LCTL(KC_MINUS), LGUI(KC_MINUS), + KC_TRNS, KC_EQUAL, LSFT(KC_MINUS), KC_LBRC, KC_RBRC, LSFT(KC_GRAVE), LSFT(KC_BSLS), LSFT(KC_1), LSFT(KC_2), LSFT(KC_3), KC_COMMA, KC_CALC, + KC_TRNS, KC_TRNS, LSFT(KC_0), KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, LSFT(KC_0), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + QK_RBT, KC_TRNS, KC_TRNS, KC_TRNS), + + [_GAMING] = LAYOUT( + KC_6, KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_7, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_TRNS, KC_TRNS, KC_UP, KC_TRNS, KC_TRNS, KC_TRNS, + KC_ESC, KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, + KC_8, KC_LCTL, KC_Z, KC_X, KC_C, KC_V, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_9, KC_0, KC_TRNS, KC_TRNS, + KC_SPC, MO(_ARROWS), KC_TRNS, KC_ENTER, + KC_G, KC_M, KC_TRNS, KC_TRNS, + KC_LALT, TO(_QWERTY), TO(_QWERTY), KC_TRNS), + + [_ARROWS] = LAYOUT( + KC_F12, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, + KC_NUM, KC_KP_SLASH, KC_P7, KC_P8, KC_P9, KC_MINUS, LCTL(KC_LEFT), LCTL(KC_DOWN), LCTL(KC_UP), LCTL(KC_RGHT), KC_TRNS, KC_DELETE, + TO(_QWERTY), KC_KP_PLUS, KC_P4, KC_P5, KC_P6, KC_DOT, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_END, KC_PSCR, + KC_UNDS, KC_KP_MINUS, KC_P1, KC_P2, KC_P3, KC_COMMA, KC_HOME, KC_MPLY, KC_MPRV, KC_MNXT, KC_MUTE, KC_INS, + KC_KP_DOT, KC_P0, KC_VOLD, KC_VOLU, + KC_P0, TO(_WINMGR), KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, QK_RBT), + + [_WINMGR] = 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_F1, LGUI(KC_7), LGUI(KC_8), LGUI(KC_9), KC_F4, KC_F7, SGUI(KC_7), SGUI(KC_8), SGUI(KC_9), KC_F10, KC_TRNS, + TO(_QWERTY), KC_F2, LGUI(KC_4), LGUI(KC_5), LGUI(KC_6), KC_F5, KC_F8, SGUI(KC_4), SGUI(KC_5), SGUI(KC_6), KC_F11, KC_TRNS, + KC_TRNS, KC_F3, LGUI(KC_1), LGUI(KC_2), LGUI(KC_3), KC_F6, KC_F9, SGUI(KC_1), SGUI(KC_2), SGUI(KC_3), KC_F12, KC_TRNS, + KC_TRNS, LGUI(KC_0), SGUI(KC_0), KC_TRNS, + LGUI(KC_0), KC_TRNS, KC_TRNS, SGUI(KC_0), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + LCTL(LGUI(KC_Q)), KC_TRNS, KC_TRNS, KC_TRNS) +}; + diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/vial/rules.mk b/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/vial/rules.mk new file mode 100644 index 0000000000..16d1baefb7 --- /dev/null +++ b/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/vial/rules.mk @@ -0,0 +1,6 @@ +VIA_ENABLE = yes +VIAL_ENABLE = yes + +# reduce firmware size +LTO_ENABLE = yes +# QMK_SETTINGS = no diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/vial/vial.json b/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/vial/vial.json new file mode 100644 index 0000000000..7790f1a4ce --- /dev/null +++ b/keyboards/handwired/dactyl_manuform_pi_pico/keymaps/vial/vial.json @@ -0,0 +1,91 @@ +{ + "name": "Dactyl Manuform (5x6)", + "vendorId": "0x444D", + "productId": "0x3536", + "lighting": "none", + "matrix": {"rows": 12, "cols": 6}, + "layouts": { + "keymap": [ + [ + "0,0", + "0,1", + "0,2", + "0,3", + "0,4", + "0,5", + {"x": 4.5}, + "6,0", + "6,1", + "6,2", + "6,3", + "6,4", + "6,5" + ], + [ + "1,0", + "1,1", + "1,2", + "1,3", + "1,4", + "1,5", + {"x": 4.5}, + "7,0", + "7,1", + "7,2", + "7,3", + "7,4", + "7,5" + ], + [ + "2,0", + "2,1", + "2,2", + "2,3", + "2,4", + "2,5", + {"x": 4.5}, + "8,0", + "8,1", + "8,2", + "8,3", + "8,4", + "8,5" + ], + [ + "3,0", + "3,1", + "3,2", + "3,3", + "3,4", + "3,5", + {"x": 4.5}, + "9,0", + "9,1", + "9,2", + "9,3", + "9,4", + "9,5" + ], + [ + {"x": 2}, + "4,2", + "4,3", + {"x": 8.5}, + "10,2", + "10,3" + ], + [{"r": 30, "rx": 5, "ry": 4.25, "y": -0.25, "x": 1, "h": 1.5}, "4,5"], + [{"y": -0.5, "h": 1.5}, "4,4"], + + [{"r": 75, "y": -2.5, "x": 2.5}, "5,5", "5,3"], + [{"x": 2.5}, "5,4", "5,2"], + + [{"r": -75, "rx": 11, "y": -1.25, "x": -4.5}, "11,2", "11,0"], + [{"x": -4.5}, "11,3", "11,1"], + + [{"r": -30, "y": -1, "x": -2, "h": 1.5}, "10,0"], + [{"y": -0.5, "x": -1, "h": 1.5}, "10,1"] + ] + } +} +