Merge branch 'main' of github.com:smarwei/vial-qmk

This commit is contained in:
Arne Weiss
2023-03-22 22:22:07 +01:00
10 changed files with 451 additions and 0 deletions

View File

@@ -0,0 +1,33 @@
// Copyright 2022 Arne Weiss (@smarwei)
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/*
* Feature disable options
* These options are also useful to firmware size reduction.
*/
/* disable debug print */
//#define NO_DEBUG
/* disable print */
//#define NO_PRINT
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
#define TAPPING_TOGGLE 2
// Split stuff
#define SPLIT_USB_DETECT
#define SOFT_SERIAL_PIN D2
#define MASTER_RIGHT
//#define MASTER_LEFT
// #define MATRIX_ROW_PINS { D7, E6, B4, B5 }
// #define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 }
#define MATRIX_ROW_PINS_RIGHT { B1, B3, B2, B6 }
#define MATRIX_COL_PINS_RIGHT { B5, B4, E6, D7, C6, D4 }

View File

@@ -0,0 +1,82 @@
{
"manufacturer": "Arne Weiss",
"keyboard_name": "Dactyl Miniform",
"maintainer": "smarwei",
"bootloader": "caterina",
"diode_direction": "COL2ROW",
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true
},
"matrix_pins": {
"rows": ["D7", "E6", "B4", "B5"],
"cols": ["F6", "F7", "B1", "B3", "B2", "B6"]
},
"processor": "atmega32u4",
"url": "",
"usb": {
"device_version": "1.0.0",
"pid": "0x0000",
"vid": "0xFEED"
},
"layouts": {
"LAYOUT_std": {
"layout": [
{ "matrix": [0, 0], "x": 0, "y": 0 },
{ "matrix": [0, 1], "x": 1, "y": 0 },
{ "matrix": [0, 2], "x": 2, "y": 0 },
{ "matrix": [0, 3], "x": 3, "y": 0 },
{ "matrix": [0, 4], "x": 4, "y": 0 },
{ "matrix": [0, 5], "x": 5, "y": 0 },
{ "matrix": [4, 0], "x": 0, "y": 0 },
{ "matrix": [4, 1], "x": 1, "y": 0 },
{ "matrix": [4, 2], "x": 2, "y": 0 },
{ "matrix": [4, 3], "x": 3, "y": 0 },
{ "matrix": [4, 4], "x": 4, "y": 0 },
{ "matrix": [4, 5], "x": 5, "y": 0 },
{ "matrix": [1, 0], "x": 0, "y": 1 },
{ "matrix": [1, 1], "x": 1, "y": 1 },
{ "matrix": [1, 2], "x": 2, "y": 1 },
{ "matrix": [1, 3], "x": 3, "y": 1 },
{ "matrix": [1, 4], "x": 4, "y": 1 },
{ "matrix": [1, 5], "x": 5, "y": 1 },
{ "matrix": [5, 0], "x": 0, "y": 1 },
{ "matrix": [5, 1], "x": 1, "y": 1 },
{ "matrix": [5, 2], "x": 2, "y": 1 },
{ "matrix": [5, 3], "x": 3, "y": 1 },
{ "matrix": [5, 4], "x": 4, "y": 1 },
{ "matrix": [5, 5], "x": 5, "y": 1 },
{ "matrix": [2, 0], "x": 0, "y": 2 },
{ "matrix": [2, 1], "x": 1, "y": 2 },
{ "matrix": [2, 2], "x": 2, "y": 2 },
{ "matrix": [2, 3], "x": 3, "y": 2 },
{ "matrix": [2, 4], "x": 4, "y": 2 },
{ "matrix": [2, 5], "x": 5, "y": 2 },
{ "matrix": [6, 0], "x": 0, "y": 2 },
{ "matrix": [6, 1], "x": 1, "y": 2 },
{ "matrix": [6, 2], "x": 2, "y": 2 },
{ "matrix": [6, 3], "x": 3, "y": 2 },
{ "matrix": [6, 4], "x": 4, "y": 2 },
{ "matrix": [6, 5], "x": 5, "y": 2 },
{ "matrix": [3, 2], "x": 0, "y": 3 },
{ "matrix": [3, 3], "x": 1, "y": 3 },
{ "matrix": [3, 4], "x": 2, "y": 3 },
{ "matrix": [3, 5], "x": 3, "y": 3 },
{ "matrix": [3, 1], "x": 0, "y": 4 },
{ "matrix": [7, 2], "x": 0, "y": 3 },
{ "matrix": [7, 3], "x": 1, "y": 3 },
{ "matrix": [7, 4], "x": 2, "y": 3 },
{ "matrix": [7, 5], "x": 3, "y": 3 },
{ "matrix": [7, 1], "x": 0, "y": 4 }
]
}
}
}

View File

@@ -0,0 +1,71 @@
#include QMK_KEYBOARD_H
// Tap Dance declarations
enum {
LAYR,
};
// Tap Dance definitions
qk_tap_dance_action_t tap_dance_actions[] = {
// TD(0) = On Tap -> MO(2); On hold -> MO(2); On double tap -> TO(3)
[LAYR] = ACTION_TAP_DANCE_DOUBLE(MO(2), TO(0)),
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
/*
* ┌───┬───┬───┬───┬───┬───┐
* │ J │ L │ U │ Y │ ; |F24|
* ├───┼───┼───┼───┼───┼───|
* │ M │ N │ E │ I │ O |CPS|
* ├───┼───┼───┼───┼───┼───|
* │ K │ H │ , │ . │ / |PRT|
* └───┴───┼───┼───┼───┴───┘
* │ - │ = |
* ┌───┬───┼───┼───┘
* │RET│SPC│MO1│
* ├───┼───┼───┘
* │LUP│LDN│
* └───┴───┘
*/
[0] = LAYOUT_std(
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_F24,
KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_CAPS,
CAPSWRD, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH, KC_RSFT,
KC_LGUI, KC_LALT, KC_MINS, KC_EQL,
MO(1), KC_LSFT, KC_ENT, TD(0),
KC_LALT, KC_LSFT
),
[1] = LAYOUT_std(
_______, KC_ESC, KC_WH_U, KC_WBAK, KC_WFWD, KC_MS_U, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_ESC,
_______, KC_LALT, KC_WH_D, KC_LSFT, KC_LCTL, KC_MS_D, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, KC_MENU,
_______, KC_WH_L, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, KC_BTN1, KC_BTN2, KC_BTN3, KC_MS_L, KC_MS_R, KC_WH_R,
_______, _______, KC_0, KC_INS,
_______, _______, _______, _______,
_______, _______
),
[2] = LAYOUT_std(
_______, _______, _______, _______, _______, _______, S(KC_1), S(KC_COMM), S(KC_DOT), KC_EQL, S(KC_7), _______,
_______, _______, _______, _______, _______, _______, S(KC_SLSH), S(KC_9), S(KC_0), KC_MINS, S(KC_SCLN),S(KC_2),
_______, _______, _______, _______, _______, _______, S(KC_EQL), S(KC_5), S(KC_COMM), KC_DOT, KC_SCLN, _______,
_______, _______, _______, _______,
_______, _______, _______, _______,
_______, _______
),
[3] = LAYOUT_std(
_______, _______, _______, _______, _______, _______, KC_PSCR, KC_7, KC_8, KC_9, KC_PPLS, KC_F12,
_______, _______, _______, _______, _______, _______, KC_0, KC_4, KC_5, KC_6, KC_0, _______,
_______, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, KC_DOT, KC_COMM,
_______, _______, _______, _______,
_______, _______, _______, TO(0),
_______, _______
)
};

View File

@@ -0,0 +1,5 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#pragma once
#define VIAL_KEYBOARD_UID {0xF5, 0x6C, 0x06, 0x71, 0xA2, 0xCF, 0x1D, 0xA6}

View File

@@ -0,0 +1,75 @@
#include QMK_KEYBOARD_H
// TD(0) = On Tap -> MO(2); On hold -> MO(2); On double tap -> TO(3)
bool caps_word_press_user(uint16_t keycode) {
switch (keycode) {
// Keycodes that continue Caps Word, with shift applied.
case KC_A:
return true;
case KC_B ... KC_Z:
case TD(4):
case TD(5):
case TD(6):
case TD(7):
case KC_MINS:
add_weak_mods(MOD_BIT(KC_LSFT)); // Apply shift to next key.
return true;
// Keycodes that continue Caps Word, without shifting.
case KC_1 ... KC_0:
case KC_BSPC:
case KC_DEL:
case KC_UNDS:
return true;
default:
return false; // Deactivate Caps Word.
}
}
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_std(
RESET, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_F24,
RESET, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_CAPS,
RESET, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH, KC_RSFT,
KC_LGUI, KC_LALT, KC_MINS, KC_EQL,
MO(1), KC_LSFT, KC_SPACE,TD(0),
KC_LSFT, KC_ENT
),
[1] = LAYOUT_std(
_______, KC_ESC, KC_WH_U, KC_WBAK, KC_WFWD, KC_MS_U, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_ESC,
_______, KC_LALT, KC_WH_D, KC_LSFT, KC_LCTL, KC_MS_D, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, KC_MENU,
_______, KC_WH_L, KC_UNDO, KC_CUT, KC_COPY, KC_PSTE, KC_BTN1, KC_BTN2, KC_BTN3, KC_MS_L, KC_MS_R, KC_WH_R,
_______, _______, KC_0, KC_INS,
_______, _______, _______, _______,
_______, _______
),
[2] = LAYOUT_std(
_______, _______, _______, _______, _______, _______, S(KC_1), S(KC_COMM), S(KC_DOT), KC_EQL, S(KC_7), _______,
_______, _______, _______, _______, _______, _______, S(KC_SLSH), S(KC_9), S(KC_0), KC_MINS, S(KC_SCLN),S(KC_2),
_______, _______, _______, _______, _______, _______, S(KC_EQL), S(KC_5), S(KC_COMM), KC_DOT, KC_SCLN, _______,
_______, _______, _______, _______,
_______, _______, _______, _______,
_______, _______
),
[3] = LAYOUT_std(
_______, _______, _______, _______, _______, _______, KC_PSCR, KC_7, KC_8, KC_9, KC_PPLS, KC_F12,
_______, _______, _______, _______, _______, _______, KC_0, KC_4, KC_5, KC_6, KC_0, _______,
_______, _______, _______, _______, _______, _______, KC_0, KC_1, KC_2, KC_3, KC_DOT, KC_COMM,
_______, _______, _______, _______,
_______, _______, _______, TO(0),
_______, _______
)
};

View File

@@ -0,0 +1,6 @@
VIA_ENABLE = yes
VIAL_ENABLE = yes
VIAL_INSECURE = yes
SPLIT_KEYBOARD = yes
LTO_ENABLE = yes
COMBO_ENABLE = no

View File

@@ -0,0 +1,144 @@
{
"lighting": "none",
"matrix": {
"rows": 14,
"cols": 6
},
"layouts": {
"keymap": [
{
"name": "Dactyl Miniform",
"author": "Arne Weiß"
},
[
{
"x": 2
},
"0,2",
"0,3",
"0,4",
"0,5",
{
"x": 2.25
},
"4,0",
"4,1",
"4,2",
"4,3"
],
[
{
"y": -0.75
},
"0,0",
"0,1",
{
"x": 10.25
},
"4,4",
"4,5"
],
[
{
"y": -0.25,
"x": 2
},
"1,2",
"1,3",
"1,4",
"1,5",
{
"x": 2.25
},
"5,0",
"5,1",
"5,2",
"5,3"
],
[
{
"y": -0.75
},
"1,0",
"1,1",
{
"x": 10.25
},
"5,4",
"5,5"
],
[
{
"y": -0.25,
"x": 2
},
"2,2",
"2,3",
"2,4",
"2,5",
{
"x": 2.25
},
"6,0",
"6,1",
"6,2",
"6,3"
],
[
{
"y": -0.75
},
"2,0",
"2,1",
{
"x": 10.25
},
"6,4",
"6,5"
],
[
{
"y": -0.25,
"x": 2
},
"3,2",
"3,3",
{
"x": 6.25
},
"7,2",
"7,3"
],
[
{
"r": 15,
"y": -2.25,
"x": 5.25
},
"3,4",
"3,5"
],
[
{
"x": 6.25
},
"3,1"
],
[
{
"r": -15,
"y": 1.75,
"x": 6.5
},
"7,0",
"7,1"
],
[
{
"x": 6.5
},
"7,4"
]
]
}
}

View File

@@ -0,0 +1,27 @@
# wdactyl_dummy
![wdactyl_dummy](imgur.com image replace me!)
*A short description of the keyboard/project*
* Keyboard Maintainer: [Arne Weiss](https://github.com/smarwei)
* Hardware Supported: *The PCBs, controllers supported*
* Hardware Availability: *Links to where you can find this hardware*
Make example for this keyboard (after setting up your build environment):
make wdactyl_dummy:default
Flashing example for this keyboard:
make wdactyl_dummy:default:flash
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
## Bootloader
Enter the bootloader in 3 ways:
* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `RESET` if it is available

View File

@@ -0,0 +1,7 @@
# This file intentionally left blank
#VIA_ENABLE = yes
#VIAL_ENABLE = yes
#VIAL_INSECURE = yes
SPLIT_KEYBOARD = yes
CAPS_WORD_ENABLE = yes
TAP_DANCE_ENABLE = yes

View File

@@ -0,0 +1 @@
{"version": 1, "uid": 11969951681208544501, "layout": [[["RESET", "KC_Q", "KC_W", "KC_F", "KC_P", "KC_B"], ["RESET", "KC_A", "KC_R", "KC_S", "KC_T", "KC_G"], ["RESET", "KC_Z", "KC_X", "KC_C", "KC_D", "KC_V"], [-1, "KC_LSHIFT", "KC_LGUI", "LSFT(KC_LGUI)", "MO(1)", "KC_LCTRL"], ["KC_J", "KC_L", "KC_U", "KC_Y", "KC_SCOLON", "RESET"], ["KC_M", "KC_N", "KC_E", "KC_I", "KC_O", "KC_NO"], ["KC_K", "KC_H", "KC_COMMA", "KC_DOT", "KC_SLASH", "KC_NO"], ["KC_SPACE", "MO(2)", "KC_LALT", "KC_RGUI", "KC_ENTER", -1], [-1, -1, -1, -1, -1, -1], [-1, -1, -1, -1, -1, -1], [-1, -1, -1, -1, -1, -1], [-1, -1, -1, -1, -1, -1], [-1, -1, -1, -1, -1, -1], [-1, -1, -1, -1, -1, -1]], [["KC_TRNS", "KC_ESCAPE", "KC_WH_U", "KC_WBAK", "KC_WFWD", "KC_MS_U"], ["KC_TRNS", "KC_TAB", "KC_WH_D", "KC_LSHIFT", "KC_LCTRL", "KC_MS_D"], ["KC_TRNS", "KC_LALT", "KC_UNDO", "KC_CUT", "KC_COPY", "C_S(KC_V)"], [-1, "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"], ["KC_PGUP", "KC_HOME", "KC_UP", "KC_END", "KC_DELETE", "KC_TRNS"], ["KC_PGDOWN", "KC_LEFT", "KC_DOWN", "KC_RIGHT", "KC_BSPACE", "KC_TRNS"], ["KC_BTN3", "KC_BTN1", "KC_BTN2", "KC_MS_L", "KC_MS_R", "KC_TRNS"], ["KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", -1], [-1, -1, -1, -1, -1, -1], [-1, -1, -1, -1, -1, -1], [-1, -1, -1, -1, -1, -1], [-1, -1, -1, -1, -1, -1], [-1, -1, -1, -1, -1, -1], [-1, -1, -1, -1, -1, -1]], [["KC_TRNS", "LSFT(KC_2)", "LSFT(KC_MINUS)", "KC_LBRACKET", "KC_RBRACKET", "LSFT(KC_6)"], ["KC_TRNS", "KC_NONUS_BSLASH", "KC_SLASH", "LSFT(KC_LBRACKET)", "LSFT(KC_RBRACKET)", "LSFT(KC_8)"], ["KC_TRNS", "LSFT(KC_3)", "LSFT(KC_4)", "LSFT(KC_NONUS_BSLASH)", "LSFT(KC_GRAVE)", "KC_GRAVE"], [-1, "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"], ["LSFT(KC_1)", "LSFT(KC_COMMA)", "LSFT(KC_DOT)", "KC_EQUAL", "LSFT(KC_7)", "KC_TRNS"], ["LSFT(KC_SLASH)", "LSFT(KC_9)", "LSFT(KC_0)", "KC_MINUS", "LSFT(KC_SCOLON)", "KC_TRNS"], ["LSFT(KC_EQUAL)", "LSFT(KC_5)", "LSFT(KC_QUOTE)", "KC_QUOTE", "KC_SCOLON", "KC_TRNS"], ["TO(0)", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", -1], [-1, -1, -1, -1, -1, -1], [-1, -1, -1, -1, -1, -1], [-1, -1, -1, -1, -1, -1], [-1, -1, -1, -1, -1, -1], [-1, -1, -1, -1, -1, -1], [-1, -1, -1, -1, -1, -1]], [["KC_NO", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_TRNS"], ["KC_NO", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_TRNS"], ["KC_NO", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "KC_TRNS"], [-1, "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS"], ["KC_PSCREEN", "KC_7", "KC_8", "KC_9", "KC_KP_PLUS", "KC_NO"], ["KC_0", "KC_4", "KC_5", "KC_6", "KC_0", "KC_NO"], ["KC_0", "KC_1", "KC_2", "KC_3", "KC_DOT", "KC_NO"], ["TO(0)", "KC_TRNS", "KC_TRNS", "KC_TRNS", "TO(0)", -1], [-1, -1, -1, -1, -1, -1], [-1, -1, -1, -1, -1, -1], [-1, -1, -1, -1, -1, -1], [-1, -1, -1, -1, -1, -1], [-1, -1, -1, -1, -1, -1], [-1, -1, -1, -1, -1, -1]]], "encoder_layout": [[], [], [], []], "layout_options": -1, "macro": [[], [], [], [], [], [], [], [], [], [], [], [], [], [], [], []], "vial_protocol": 5, "via_protocol": 9, "tap_dance": [["KC_NO", "KC_NO", "KC_NO", "KC_NO", 200], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", 200], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", 200], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", 200], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", 200], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", 200], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", 200], ["KC_NO", "KC_NO", "KC_NO", "KC_NO", 200]], "combo": [], "key_override": [{"trigger": "KC_NO", "replacement": "KC_NO", "layers": 65535, "trigger_mods": 0, "negative_mod_mask": 0, "suppressed_mods": 0, "options": 7}, {"trigger": "KC_NO", "replacement": "KC_NO", "layers": 65535, "trigger_mods": 0, "negative_mod_mask": 0, "suppressed_mods": 0, "options": 7}, {"trigger": "KC_NO", "replacement": "KC_NO", "layers": 65535, "trigger_mods": 0, "negative_mod_mask": 0, "suppressed_mods": 0, "options": 7}, {"trigger": "KC_NO", "replacement": "KC_NO", "layers": 65535, "trigger_mods": 0, "negative_mod_mask": 0, "suppressed_mods": 0, "options": 7}, {"trigger": "KC_NO", "replacement": "KC_NO", "layers": 65535, "trigger_mods": 0, "negative_mod_mask": 0, "suppressed_mods": 0, "options": 7}, {"trigger": "KC_NO", "replacement": "KC_NO", "layers": 65535, "trigger_mods": 0, "negative_mod_mask": 0, "suppressed_mods": 0, "options": 7}, {"trigger": "KC_NO", "replacement": "KC_NO", "layers": 65535, "trigger_mods": 0, "negative_mod_mask": 0, "suppressed_mods": 0, "options": 7}, {"trigger": "KC_NO", "replacement": "KC_NO", "layers": 65535, "trigger_mods": 0, "negative_mod_mask": 0, "suppressed_mods": 0, "options": 7}], "settings": {"1": 0, "2": 50, "3": 0, "4": 175, "5": 5, "6": 5000, "7": 200, "8": 0, "9": 10, "10": 20, "11": 8, "12": 10, "13": 30, "14": 10, "15": 80, "16": 8, "17": 40, "18": 10, "19": 80, "20": 2}}