~ruther/qmk_firmware

d563ab052e694b5fd43de6c416589877df040576 — Andrzej Kotulski 3 years ago e804e28
[Keyboard] Add dactyl manuform 4x6 with a 5 key thumb cluster (#15516)

Co-authored-by: Drashna Jaelre <drashna@live.com>
A keyboards/handwired/dactyl_manuform/4x6_5/4x6_5.c => keyboards/handwired/dactyl_manuform/4x6_5/4x6_5.c +1 -0
@@ 0,0 1,1 @@
#include "4x6_5.h"

A keyboards/handwired/dactyl_manuform/4x6_5/4x6_5.h => keyboards/handwired/dactyl_manuform/4x6_5/4x6_5.h +26 -0
@@ 0,0 1,26 @@
#pragma once

#include "dactyl_manuform.h"

#define XXX KC_NO

#define LAYOUT( \
    L00, L01, L02, L03, L04, L05,                          R00, R01, R02, R03, R04, R05, \
    L10, L11, L12, L13, L14, L15,                          R10, R11, R12, R13, R14, R15, \
    L20, L21, L22, L23, L24, L25,                          R20, R21, R22, R23, R24, R25, \
              L32, L33,                                              R32, R33,    \
                        L34, L45, L43,                R42, R40, R31, \
                             L44, L42,                R43, R41 \
) { \
    { L00, L01, L02, L03, L04, L05 }, \
    { L10, L11, L12, L13, L14, L15 }, \
    { L20, L21, L22, L23, L24, L25 }, \
    { XXX, XXX, L32, L33, L34, XXX }, \
    { XXX, XXX, L42, L43, L44, L45 }, \
\
    { R00, R01, R02, R03, R04, R05 }, \
    { R10, R11, R12, R13, R14, R15 }, \
    { R20, R21, R22, R23, R24, R25 }, \
    { XXX, R31, R32, R33, XXX, XXX }, \
    { R40, R41, R42, R43, XXX, XXX } \
}

A keyboards/handwired/dactyl_manuform/4x6_5/config.h => keyboards/handwired/dactyl_manuform/4x6_5/config.h +41 -0
@@ 0,0 1,41 @@
/*
Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert

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

#include "config_common.h"

/* USB Device descriptor parameter */
#define PRODUCT_ID 0x3436
#define DEVICE_VER 0x0001

/* key matrix size */
// Rows are doubled-up
#define MATRIX_ROWS 10
#define MATRIX_COLS 6

// row-driven
#define MATRIX_ROW_PINS { F7, B1, B3, B2, B6 }
#define MATRIX_COL_PINS { D4, C6, D7, E6, B4, B5 }

/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

// WS2812 RGB LED strip input and number of LEDs
#define RGB_DI_PIN D3
#define RGBLED_NUM 12

A keyboards/handwired/dactyl_manuform/4x6_5/info.json => keyboards/handwired/dactyl_manuform/4x6_5/info.json +72 -0
@@ 0,0 1,72 @@
{
    "keyboard_name": "Dactyl Manuform 4x6 5 thumb keys",
    "url": "",
    "maintainer": "qmk",
    "layouts": {
        "LAYOUT": {
            "layout": [
                {"x": 0, "y": 0},
                {"x": 1, "y": 0},
                {"x": 2, "y": 0},
                {"x": 3, "y": 0},
                {"x": 4, "y": 0},
                {"x": 5, "y": 0},

                {"x": 11, "y": 0},
                {"x": 12, "y": 0},
                {"x": 13, "y": 0},
                {"x": 14, "y": 0},
                {"x": 15, "y": 0},
                {"x": 16, "y": 0},

                {"x": 0, "y": 1},
                {"x": 1, "y": 1},
                {"x": 2, "y": 1},
                {"x": 3, "y": 1},
                {"x": 4, "y": 1},
                {"x": 5, "y": 1},

                {"x": 11, "y": 1},
                {"x": 12, "y": 1},
                {"x": 13, "y": 1},
                {"x": 14, "y": 1},
                {"x": 15, "y": 1},
                {"x": 16, "y": 1},

                {"x": 0, "y": 2},
                {"x": 1, "y": 2},
                {"x": 2, "y": 2},
                {"x": 3, "y": 2},
                {"x": 4, "y": 2},
                {"x": 5, "y": 2},

                {"x": 11, "y": 2},
                {"x": 12, "y": 2},
                {"x": 13, "y": 2},
                {"x": 14, "y": 2},
                {"x": 15, "y": 2},
                {"x": 16, "y": 2},

                {"x": 2, "y": 3},
                {"x": 3, "y": 3},

                {"x": 13, "y": 3},
                {"x": 14, "y": 3},

                {"x": 4, "y": 4},
                {"x": 5, "y": 4},
                {"x": 6, "y": 4},

                {"x": 10, "y": 4},
                {"x": 11, "y": 4},
                {"x": 12, "y": 4},

                {"x": 5, "y": 5},
                {"x": 6, "y": 5},

                {"x": 10, "y": 5},
                {"x": 11, "y": 5}
            ]
        }
    }
}

A keyboards/handwired/dactyl_manuform/4x6_5/keymaps/default/config.h => keyboards/handwired/dactyl_manuform/4x6_5/keymaps/default/config.h +24 -0
@@ 0,0 1,24 @@
/*
This is the c configuration file for the keymap

Copyright 2012 Jun Wako <wakojun@gmail.com>
Copyright 2015 Jack Humbert

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 EE_HANDS

A keyboards/handwired/dactyl_manuform/4x6_5/keymaps/default/keymap.c => keyboards/handwired/dactyl_manuform/4x6_5/keymaps/default/keymap.c +63 -0
@@ 0,0 1,63 @@
// Copyright 2021 Andrzej Kotulski (@akotulski)
// SPDX-License-Identifier: GPL-2.0-or-later

#include QMK_KEYBOARD_H

#define RAISE MO(_RAISE)
#define LOWER MO(_LOWER)

enum layer_names {
    _BASE,
    _RAISE,
    _LOWER
};

const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
    /* Base (qwerty)
     * +-----------------------------------------+                             +-----------------------------------------+
     * | ESC  |   q  |   w  |   e  |   r  |   t  |                             |   y  |   u  |   i  |   o  |   p  |      |
     * |------+------+------+------+------+------|                             |------+------+------+------+------+------|
     * | TAB  |   a  |   s  |   d  |   f  |   g  |                             |   h  |   j  |   k  |   l  |   ;  |      |
     * |------+------+------+------+------+------|                             |------+------+------+------+------+------|
     * | SHFT |   z  |   x  |   c  |   v  |   b  |                             |   n  |   m  |   ,  |   .  |   /  |      |
     * +------+------+------+------+-------------+                             +-------------+------+------+------+------+
     *               |  [   |   ]  |                                                         |      |      |
     *               +-------------+-------------+                             +-------------+-------------+
     *                             |      |      |                             |      |      |
     *                             |------+------|                             |------+------|
     *                             |      |      |                             |      |      |
     *                             +-------------+                             +-------------+
     *                                           +-------------+ +-------------+
     *                                           |      |      | |      |      |
     *                                           |------+------| |------+------|
     *                                           |      |      | |      |      |
     *                                           +-------------+ +-------------+
     */
    [_BASE] = LAYOUT(
        KC_ESC,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,               KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_MINS,
        KC_TAB,  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_BSLS,
                          KC_LBRC, KC_RBRC,                                                KC_PLUS, KC_EQL,
                                       KC_SPC,  RAISE,   KC_HOME,   KC_END,    LOWER,  KC_ENT,
                                            KC_BSPC, KC_LALT,            KC_LGUI,  KC_DEL
    ),

    [_LOWER] = LAYOUT(
        _______, _______, _______, _______, _______, KC_LBRC,             KC_RBRC, KC_P7,   KC_P8,   KC_P9,   RESET,   KC_PLUS,
        _______, KC_HOME, KC_PGUP, KC_PGDN, KC_END , KC_LPRN,             KC_RPRN, KC_P4,   KC_P5,   KC_P6,   KC_MINS, KC_PIPE,
        _______, _______, _______, _______, _______, _______,             _______, KC_P1,   KC_P2,   KC_P3,   KC_EQL,  KC_UNDS,
                          _______, KC_PSCR,                                                 _______, KC_P0,
                                  _______, _______,  _______,             _______, _______, _______,
                                            _______, _______,             _______, _______
    ),

    [_RAISE] = LAYOUT(
        _______, RESET,   _______, _______, _______, KC_LBRC,             KC_RBRC, _______, KC_NLCK, KC_INS,  KC_SLCK, KC_MUTE,
        _______, KC_LEFT, KC_UP  , KC_DOWN, KC_RGHT, KC_LPRN,             KC_RPRN, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_VOLU,
        _______, _______, _______, _______, _______, _______,             _______, _______, _______, _______, _______, KC_VOLD,
                          _______, _______,                                                 KC_EQL,  _______,
                                  _______, _______,  _______,             _______, _______, _______,
                                            _______, _______,             _______, _______
    )
};


A keyboards/handwired/dactyl_manuform/4x6_5/keymaps/manna-harbour_miryoku/config.h => keyboards/handwired/dactyl_manuform/4x6_5/keymaps/manna-harbour_miryoku/config.h +24 -0
@@ 0,0 1,24 @@
// Copyright 2019 Manna Harbour
// https://github.com/manna-harbour/miryoku
// generated -*- buffer-read-only: t -*-

// 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 XXX KC_NO

#define LAYOUT_miryoku(\
K00, K01, K02, K03, K04,                         K05, K06, K07, K08, K09,\
K10, K11, K12, K13, K14,                         K15, K16, K17, K18, K19,\
K20, K21, K22, K23, K24,                         K25, K26, K27, K28, K29,\
N30, N31, K32, K33, K34,                         K35, K36, K37, N38, N39\
)\
LAYOUT( \
XXX, K00, K01, K02, K03, K04,                         K05, K06, K07, K08, K09, XXX, \
XXX, K10, K11, K12, K13, K14,                         K15, K16, K17, K18, K19, XXX, \
XXX, K20, K21, K22, K23, K24,                         K25, K26, K27, K28, K29, XXX, \
          XXX, XXX,                                             XXX, XXX, \
                    K32, K33, K34,               K35, K36, K37, \
                         XXX, XXX,               XXX, XXX \
)

A keyboards/handwired/dactyl_manuform/4x6_5/keymaps/manna-harbour_miryoku/keymap.c => keyboards/handwired/dactyl_manuform/4x6_5/keymaps/manna-harbour_miryoku/keymap.c +5 -0
@@ 0,0 1,5 @@
// Copyright 2019 Manna Harbour
// https://github.com/manna-harbour/miryoku
// generated -*- buffer-read-only: t -*-

// 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/>.

A keyboards/handwired/dactyl_manuform/4x6_5/rules.mk => keyboards/handwired/dactyl_manuform/4x6_5/rules.mk +19 -0
@@ 0,0 1,19 @@
# MCU name
MCU = atmega32u4

# Bootloader selection
BOOTLOADER = caterina

# Build Options
#   change yes to no to disable
#
BOOTMAGIC_ENABLE = no       # Enable Bootmagic Lite
MOUSEKEY_ENABLE = yes       # Mouse keys
EXTRAKEY_ENABLE = yes       # Audio control and System control
CONSOLE_ENABLE = no         # Console for debug
COMMAND_ENABLE = yes        # Commands for debug and configuration
NKRO_ENABLE = no            # Enable N-Key Rollover
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
AUDIO_ENABLE = no           # Audio output
SPLIT_KEYBOARD = yes

M keyboards/handwired/dactyl_manuform/dactyl_manuform.h => keyboards/handwired/dactyl_manuform/dactyl_manuform.h +2 -0
@@ 4,6 4,8 @@
#    include "4x5.h"
#elif defined(KEYBOARD_handwired_dactyl_manuform_4x6)
#    include "4x6.h"
#elif defined(KEYBOARD_handwired_dactyl_manuform_4x6_5)
#    include "4x6_5.h"
#elif defined(KEYBOARD_handwired_dactyl_manuform_5x6)
#    include "5x6.h"
#elif defined(KEYBOARD_handwired_dactyl_manuform_5x6_5)