forked from qmk/qmk_firmware
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Dactyl Manuform 4x5 with 5 thumb cluster (qmk#17671)
* Working on new dactyl * Preliminary build and keymap in place for 4x5_5 dactyl manuform * Removing first attempt to use 4x5 * Updating to match c style guide * Fixing issues after merge, deletion of dactyl_manuform.h * Spliting out custom keymap * Adding license headers * Fixing EE_HANDS detection on Pro-Micro The pro-micro was not working when I plugged into the elite-c on the right hand side of my keyboard. Adding the SPLIT_USB_DIRECT definition fixed the issue. * Apply suggestions from code review Adding Drashna's delete comments Co-authored-by: Drashna Jaelre <[email protected]> * Removed config.h for keymaps and tweaked keymap Per Drashna's pr review, I have removed the config.h files for the keymaps. Also tweaked my keymap to switch backspace and enter. Added tapping toggle for RAISE. * Further tweaking ssedrick keymap for dactyl_manuform 4x5_5 As with most new keyboards, they take some getting used to. I've rearranged my thumb cluster to hopfully a more long term solution. * Adding missing KC_BSLS to ssedrick keymap for 4x5_5 Co-authored-by: Drashna Jaelre <[email protected]>
- Loading branch information
1 parent
9e869a6
commit 422ce59
Showing
6 changed files
with
457 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
// Copyright 2022 Shem Sedrick (@ssedrick) | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
|
||
#pragma once | ||
|
||
#include "quantum.h" | ||
|
||
#define XXX KC_NO | ||
#define LAYOUT( \ | ||
L00, L01, L02, L03, L04, R00, R01, R02, R03, R04, \ | ||
L10, L11, L12, L13, L14, R10, R11, R12, R13, R14, \ | ||
L20, L21, L22, L23, L24, R20, R21, R22, R23, R24, \ | ||
L31, L32, R32, R33, \ | ||
L33, R31, \ | ||
L34, L44, R40, R30, \ | ||
L42, L43, R41, R42 \ | ||
) { \ | ||
{ L00, L01, L02, L03, L04 }, \ | ||
{ L10, L11, L12, L13, L14 }, \ | ||
{ L20, L21, L22, L23, L24 }, \ | ||
{ XXX, L31, L32, L33, L34 }, \ | ||
{ XXX, XXX, L42, L43, L44 }, \ | ||
\ | ||
{ R00, R01, R02, R03, R04 }, \ | ||
{ R10, R11, R12, R13, R14 }, \ | ||
{ R20, R21, R22, R23, R24 }, \ | ||
{ R30, R31, R32, R33, XXX }, \ | ||
{ R40, R41, R42, XXX, XXX }, \ | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
// Copyright 2022 Shem Sedrick (@ssedrick) | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
|
||
#pragma once | ||
|
||
#include "config_common.h" | ||
|
||
|
||
/* USB Device descriptor parameters */ | ||
#define PRODUCT_ID 0x3435 | ||
#define DEVICE_VER 0x0001 | ||
|
||
#ifndef MANUFACTURER | ||
#define MANUFACTURER ssedrick | ||
#endif | ||
|
||
#define MATRIX_ROWS 10 | ||
#define MATRIX_COLUMNS 5 | ||
|
||
// Wiring pins | ||
#define MATRIX_ROW_PINS { F7, B1, B3, B2, B4 } | ||
#define MATRIX_COL_PINS { D4, C6, D7, E6, F6 } | ||
|
||
#define DIODE_DIRECTION COL2ROW | ||
|
||
#define EE_HANDS | ||
#define SPLIT_USB_DETECT |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
{ | ||
"keyboard_name": "Dactyl Manuform 4x5 5 thumb keys", | ||
"url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/dactyl_manuform/4x5_5", | ||
"maintainer": "ssedrick", | ||
"layouts": { | ||
"LAYOUT": { | ||
"layout": [ | ||
{"x": 0, "y": 0}, | ||
{"x": 1, "y": 0}, | ||
{"x": 2, "y": 0}, | ||
{"x": 3, "y": 0}, | ||
{"x": 4, "y": 0}, | ||
|
||
{"x": 10, "y": 0}, | ||
{"x": 11, "y": 0}, | ||
{"x": 12, "y":0}, | ||
{"x": 13, "y": 0}, | ||
{"x": 14, "y": 0}, | ||
|
||
{"x": 0, "y": 1}, | ||
{"x": 1, "y": 1}, | ||
{"x": 2, "y": 1}, | ||
{"x": 3, "y": 1}, | ||
{"x": 4, "y": 1}, | ||
|
||
{"x": 10, "y": 1}, | ||
{"x": 11, "y": 1}, | ||
{"x": 12, "y": 1}, | ||
{"x": 13, "y": 1}, | ||
{"x": 14, "y": 1}, | ||
|
||
{"x": 0, "y": 2}, | ||
{"x": 1, "y": 2}, | ||
{"x": 2, "y": 2}, | ||
{"x": 3, "y": 2}, | ||
{"x": 4, "y": 2}, | ||
|
||
{"x": 10, "y": 2}, | ||
{"x": 11, "y": 2}, | ||
{"x": 12, "y": 2}, | ||
{"x": 13, "y": 2}, | ||
{"x": 14, "y": 2}, | ||
|
||
{"x": 2, "y": 3}, | ||
{"x": 3, "y": 3}, | ||
{"x": 4, "y": 3}, | ||
{"x": 5, "y": 3}, | ||
|
||
{"x": 10, "y": 3}, | ||
{"x": 11, "y": 3}, | ||
{"x": 12, "y": 3}, | ||
{"x": 13, "y": 3}, | ||
|
||
{"x": 2, "y": 4}, | ||
{"x": 3, "y": 4}, | ||
{"x": 4, "y": 4}, | ||
|
||
{"x": 10, "y": 4}, | ||
{"x": 11, "y": 4}, | ||
{"x": 12, "y": 4} | ||
] | ||
} | ||
} | ||
} |
155 changes: 155 additions & 0 deletions
155
keyboards/handwired/dactyl_manuform/4x5_5/keymaps/default/keymap.c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,155 @@ | ||
// Copyright 2022 Shem Sedrick (@ssedrick) | ||
// SPDX-License-Identifier: GPL-2.0-or-later | ||
|
||
#include QMK_KEYBOARD_H | ||
#include "print.h" | ||
|
||
enum key_layers { | ||
_BASE, | ||
_COLEMAK, | ||
_RAISE, | ||
_LOWER | ||
}; | ||
|
||
enum layer_keycodes { | ||
QWERTY = SAFE_RANGE, | ||
COLEMAK, | ||
}; | ||
|
||
#define RAISE MO(_RAISE) | ||
#define LOWER MO(_LOWER) | ||
#define SH_ESC SFT_T(KC_ESC) | ||
#define ____ KC_TRANSPARENT | ||
|
||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||
/* Base (qwerty) | ||
* ,----------------------------------, ,----------------------------------, | ||
* | q | w | e | r | t | | y | u | i | o | p | | ||
* |------+------+------+------+------| |------+------+------+------+------| | ||
* | a | s | d | f | g | | h | j | k | l | ; | | ||
* |------+------+------+------+------| |------+------+------+------+------| | ||
* | z | x | c | v | b | | n | m | , | . | / | | ||
* '------+------+------+-------------' '------+------+------+------+------' | ||
* | [ | ] | | ' | `~ | | ||
* '-------------+------, ,------|-------------' | ||
* | ESC | | BSPC | | ||
* |-------------, ,------+------| | ||
* | GUI | TAB | | SHIFT| SPACE| | ||
* |------+------| |------+------| | ||
* | RAISE| CTRL | | LOWER| ENTER| | ||
* '-------------' '-------------' | ||
*/ | ||
[_BASE] = LAYOUT( | ||
KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, | ||
KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, | ||
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, | ||
KC_LBRC, KC_RBRC, KC_QUOT, KC_GRV, | ||
SH_ESC, KC_BSPC, | ||
KC_LGUI, KC_TAB, KC_RSFT, KC_SPC, | ||
RAISE, KC_LCTRL, LOWER, KC_ENT | ||
), | ||
|
||
/* Colemak | ||
* ,----------------------------------, ,----------------------------------, | ||
* | q | w | f | p | g | | j | l | u | y | ; | | ||
* |------+------+------+------+------| |------+------+------+------+------| | ||
* | a | r | s | t | d | | h | n | e | i | o | | ||
* |------+------+------+------+------| |------+------+------+------+------| | ||
* | z | x | c | v | b | | k | m | , | . | / | | ||
* '------+------+------+-------------' '------+------+------+------+------' | ||
* | [ | ] | | ' | `~ | | ||
* '-------------+------, ,------|-------------' | ||
* | ESC | | BSPC | | ||
* |-------------, ,------+------| | ||
* | GUI | TAB | | SHIFT| SPACE| | ||
* |------+------| |------+------| | ||
* | RAISE| CTRL | | LOWER| ENTER| | ||
* '-------------' '-------------' | ||
*/ | ||
[_COLEMAK] = LAYOUT( | ||
KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, | ||
KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, | ||
KC_Z, KC_X, KC_C, KC_V, KC_B, KC_K, KC_M, KC_COMM, KC_DOT, KC_SLSH, | ||
KC_LBRC, KC_RBRC, KC_QUOT, KC_GRV, | ||
KC_ESC, KC_BSPC, | ||
KC_LGUI, KC_TAB, KC_RSFT, KC_SPC, | ||
RAISE, KC_LCTRL, LOWER, KC_ENT | ||
), | ||
/* RAISE | ||
* ,----------------------------------, ,----------------------------------, | ||
* | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | ||
* |------+------+------+------+------| |------+------+------+------+------| | ||
* | ( | ) | { | } | = | | - | 4 | 5 | 6 | ; | | ||
* |------+------+------+------+------| |------+------+------+------+------| | ||
* | RESET| BOOT | [ | ] | | | | 1 | 2 | 3 | | | ||
* |------+------+------+-------------| |------+------+------+------+------, | ||
* | | | | 0 | . | | ||
* '-------------+------, ,------|-------------' | ||
* | ESC | | BSPC | | ||
* |-------------, ,------+------| | ||
* | GUI | TAB | | SHIFT| SPACE| | ||
* |------+------| |------+------| | ||
* | RAISE| CTRL | | LOWER| ENTER| | ||
* '-------------' '-------------' | ||
*/ | ||
[_RAISE] = LAYOUT( | ||
KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, | ||
S(KC_9), S(KC_0), KC_LCBR, KC_RCBR, KC_EQL, KC_MINS, KC_4, KC_5, KC_6, KC_QUOT, | ||
QK_RBT, QK_BOOT, KC_LBRC, KC_RBRC, ____, ____, KC_1, KC_2, KC_3, ____, | ||
____, ____, KC_0, KC_DOT, | ||
____, ____, | ||
____, ____, ____, ____, | ||
____, ____, ____, ____ | ||
), | ||
|
||
/* LOWER | ||
* ,----------------------------------, ,----------------------------------, | ||
* | ! | @ | # | $ | % | | ^ | & | * | ( | ) | | ||
* |------+------+------+------+------| |------+------+------+------+------| | ||
* | ( | ) | { | } | = | | | - | + | | | | | ||
* |------+------+------+------+------| |------+------+------+------+------| | ||
* | | | | | | | | LEFT | DOWN | UP | RIGHT| | ||
* |------+------+------+-------------| |------+------+------+------+------, | ||
* | | | |QWERTY|COLEMA| | ||
* '-------------+------, ,------|-------------' | ||
* | ESC | | BSPC | | ||
* |-------------, ,------+------| | ||
* | GUI | TAB | | SHIFT| SPACE| | ||
* |------+------| |------+------| | ||
* | RAISE| CTRL | | LOWER| ENTER| | ||
* '-------------' '-------------' | ||
*/ | ||
[_LOWER] = LAYOUT( | ||
KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, | ||
S(KC_9), S(KC_0), KC_LBRC, KC_RBRC, KC_EQL, ____, KC_MINS, KC_EQL, KC_PIPE, ____, | ||
____, ____, ____, ____, ____, ____, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, | ||
____, ____, QWERTY, COLEMAK, | ||
____, ____, | ||
____, ____, ____, ____, | ||
____, ____, ____, ____ | ||
) | ||
}; | ||
|
||
|
||
bool process_record_user(uint16_t keycode, keyrecord_t *record) { | ||
// If console is enabled, it will print the matrix position and status of each key pressed | ||
#ifdef CONSOLE_ENABLE | ||
uprintf("KL: kc: 0x%04X, col: %u, row: %u, pressed: %d, time: %u, interrupt: %d, count: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed, record->event.time, record->tap.interrupted, record->tap.count); | ||
#endif | ||
switch (keycode) { | ||
case QWERTY: | ||
if (record->event.pressed) { | ||
set_single_persistent_default_layer(_BASE); | ||
} | ||
return false; | ||
break; | ||
case COLEMAK: | ||
if (record->event.pressed) { | ||
set_single_persistent_default_layer(_COLEMAK); | ||
} | ||
return false; | ||
break; | ||
} | ||
return true; | ||
} | ||
|
Oops, something went wrong.