Merge remote-tracking branch 'upstream/develop' into fl16-sleep-fix

This commit is contained in:
Daniel Schaefer
2023-07-21 08:34:44 +08:00
3814 changed files with 15612 additions and 19357 deletions

View File

@@ -5,6 +5,3 @@
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* Tap dancing params */
#define TAPPING_TERM 250

View File

@@ -8,6 +8,9 @@
"pid": "0x2020",
"device_version": "0.0.1"
},
"tapping": {
"term": 250
},
"matrix_pins": {
"cols": ["D4", "C6", "D7", "E6", "B4"],
"rows": ["B3", "B2"]

View File

@@ -17,9 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#define TAPPING_TERM 400
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */

View File

@@ -8,6 +8,9 @@
"pid": "0x3660",
"device_version": "0.0.1"
},
"tapping": {
"term": 400
},
"matrix_pins": {
"cols": ["D2", "D3", "C6", "C7", "D5", "D4", "D7", "B4", "B5", "B6", "F7", "F6", "F5", "F4", "F1"],
"rows": ["B0", "B1", "B2", "B3", "B7"]

View File

@@ -4,5 +4,3 @@
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
#define TAPPING_TERM 100

View File

@@ -8,6 +8,9 @@
"pid": "0x0000",
"device_version": "0.0.3"
},
"tapping": {
"term": 100
},
"matrix_pins": {
"cols": ["F5", "F6", "F7", "F0", "F1", "F4", "B6", "B5", "D7", "C7", "D6", "B7"],
"rows": ["D2", "D3", "D0", "D1"]

View File

@@ -17,12 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#define RGBLED_NUM 10
#define RGB_MATRIX_LED_COUNT RGBLED_NUM
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
// #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
#define RGB_MATRIX_LED_COUNT 10
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL

View File

@@ -8,6 +8,10 @@
"pid": "0x0037",
"device_version": "0.0.1"
},
"rgblight": {
"hue_steps": 10,
"led_count": 10
},
"ws2812": {
"pin": "D2"
},

View File

@@ -22,6 +22,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RCPC_KEYS KC_RCTL, KC_TRNS, KC_PGDN
#define LSPO_KEYS KC_LSFT, KC_TRNS, KC_HOME
#define LCPO_KEYS KC_LCTL, KC_TRNS, KC_END
/* Enable double tab */
#define TAPPING_TERM 175

View File

@@ -18,6 +18,9 @@
"levels": 5,
"breathing": true
},
"tapping": {
"term": 175
},
"processor": "at90usb1286",
"bootloader": "halfkay",
"layouts": {

View File

@@ -17,8 +17,5 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
// https://docs.qmk.fm/using-qmk/software-features/tap_hold
#define TAPPING_TERM 200
/* define if matrix has ghost (lacks anti-ghosting diodes) */
#define MATRIX_HAS_GHOST

View File

@@ -31,9 +31,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
* Aranck-specific definitions END
*/
#define TAPPING_TERM 200
/*
* Feature disable options
* These options are also useful to firmware size reduction.

View File

@@ -96,9 +96,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t * record) {
return true;
}
void led_set_user(uint8_t usb_led)
bool led_update_user(led_t led_state)
{
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
if (led_state.caps_lock) {
// output high
DDRD |= (1<<6);
PORTD |= (1<<6);
@@ -107,7 +107,7 @@ void led_set_user(uint8_t usb_led)
DDRD &= ~(1<<6);
PORTD &= ~(1<<6);
}
if (usb_led & (1<<USB_LED_NUM_LOCK)) {
if (led_state.num_lock) {
// output low
DDRC |= (1<<7);
PORTC |= ~(1<<7);
@@ -116,4 +116,5 @@ void led_set_user(uint8_t usb_led)
DDRC &= ~(1<<7);
PORTC &= ~(1<<7);
}
return false;
}

View File

@@ -109,9 +109,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t * record) {
return true;
}
void led_set_user(uint8_t usb_led)
bool led_update_user(led_t led_state)
{
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
if (led_state.caps_lock) {
// output high
DDRD |= (1<<6);
PORTD |= (1<<6);
@@ -120,7 +120,7 @@ void led_set_user(uint8_t usb_led)
DDRD &= ~(1<<6);
PORTD &= ~(1<<6);
}
if (usb_led & (1<<USB_LED_NUM_LOCK)) {
if (led_state.num_lock) {
// output low
DDRC |= (1<<7);
PORTC |= ~(1<<7);
@@ -129,4 +129,5 @@ void led_set_user(uint8_t usb_led)
DDRC &= ~(1<<7);
PORTC &= ~(1<<7);
}
return false;
}

View File

@@ -96,9 +96,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t * record) {
return true;
}
void led_set_user(uint8_t usb_led)
bool led_update_user(led_t led_state)
{
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
if (led_state.caps_lock) {
// output high
DDRD |= (1<<6);
PORTD |= (1<<6);
@@ -107,7 +107,7 @@ void led_set_user(uint8_t usb_led)
DDRD &= ~(1<<6);
PORTD &= ~(1<<6);
}
if (usb_led & (1<<USB_LED_NUM_LOCK)) {
if (led_state.num_lock) {
// output low
DDRC |= (1<<7);
PORTC |= ~(1<<7);
@@ -116,4 +116,5 @@ void led_set_user(uint8_t usb_led)
DDRC &= ~(1<<7);
PORTC &= ~(1<<7);
}
return false;
}

View File

@@ -33,10 +33,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_EFFECT_RGB_TEST
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE
#define RGBLED_NUM 12 // Number of LEDs
#define RGBLIGHT_HUE_STEP 10
#define RGBLIGHT_SAT_STEP 17
#define RGBLIGHT_VAL_STEP 17
/*
* Feature disable options

View File

@@ -8,6 +8,10 @@
"pid": "0x040D",
"device_version": "0.0.1"
},
"rgblight": {
"hue_steps": 10,
"led_count": 12
},
"ws2812": {
"pin": "C6"
},

View File

@@ -16,11 +16,6 @@
#pragma once
#define RGBLED_NUM 4
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL

View File

@@ -8,6 +8,12 @@
"pid": "0xDAD3",
"device_version": "1.0.0"
},
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
"led_count": 4,
"sleep": true
},
"ws2812": {
"pin": "D3"
},

View File

@@ -42,10 +42,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Enables This makes it easier for fast typists to use dual-function keys */
#define PERMISSIVE_HOLD
#define RGBLED_NUM 28 // Number of LEDs
#define RGBLIGHT_SPLIT
/*
* Feature disable options
* These options are also useful to firmware size reduction.
@@ -61,6 +57,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT
//#define TAPPING_TERM 150
//#define QUICK_TAP_TERM 0

View File

@@ -20,6 +20,8 @@
"pin": "D3"
},
"rgblight": {
"led_count": 28,
"split": true,
"max_brightness": 120
},
"split": {

View File

@@ -22,5 +22,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define LOCKING_SUPPORT_ENABLE
#define LOCKING_RESYNC_ENABLE
#define RGBLED_NUM 4

View File

@@ -17,6 +17,9 @@
"pin": "B6",
"levels": 7
},
"rgblight": {
"led_count": 4
},
"ws2812": {
"pin": "D3"
},

View File

@@ -11,5 +11,3 @@ NKRO_ENABLE = yes # Enable N-Key Rollover
DEFAULT_FOLDER = handwired/ck4x4
# Enter lower-power sleep mode when on the ChibiOS idle thread
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE

View File

@@ -36,8 +36,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define RGBLIGHT_EFFECT_RGB_TEST
#define RGBLIGHT_EFFECT_ALTERNATING
#define RGBLIGHT_EFFECT_TWINKLE
#define RGBLED_NUM 16
#define RGB_MATRIX_LED_COUNT RGBLED_NUM
#define RGB_MATRIX_KEYPRESSES

View File

@@ -12,6 +12,9 @@
"pin": "B8",
"breathing": true
},
"rgblight": {
"led_count": 16
},
"ws2812": {
"pin": "A7",
"driver": "spi"

View File

@@ -16,7 +16,4 @@
#pragma once
/* LEDs are not used in the standard 64key configuration. */
#define RGBLED_NUM 0
#define PERMISSIVE_HOLD

View File

@@ -8,6 +8,9 @@
"pid": "0x3632",
"device_version": "0.0.1"
},
"rgblight": {
"led_count": 0
},
"ws2812": {
"pin": "D3"
},

View File

@@ -16,11 +16,6 @@
#pragma once
#define RGBLED_NUM 6
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
#define RGBLIGHT_EFFECT_BREATHING
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL

View File

@@ -8,6 +8,12 @@
"pid": "0x3332",
"device_version": "0.0.1"
},
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
"led_count": 6,
"sleep": true
},
"ws2812": {
"pin": "F4"
},

View File

@@ -16,11 +16,6 @@
#pragma once
#define RGBLED_NUM 6
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
#define RGBLIGHT_EFFECT_BREATHING
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL

View File

@@ -8,6 +8,12 @@
"pid": "0x3432",
"device_version": "0.0.1"
},
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
"led_count": 6,
"sleep": true
},
"ws2812": {
"pin": "F4"
},

View File

@@ -16,11 +16,6 @@
#pragma once
#define RGBLED_NUM 6
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
#define RGBLIGHT_EFFECT_BREATHING
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL

View File

@@ -8,6 +8,12 @@
"pid": "0x3433",
"device_version": "0.0.1"
},
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
"led_count": 6,
"sleep": true
},
"ws2812": {
"pin": "F4"
},

View File

@@ -16,11 +16,6 @@
#pragma once
#define RGBLED_NUM 6
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
#define RGBLIGHT_EFFECT_BREATHING
// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL

View File

@@ -8,6 +8,12 @@
"pid": "0x3433",
"device_version": "0.0.1"
},
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
"led_count": 6,
"sleep": true
},
"ws2812": {
"pin": "F4"
},

View File

@@ -17,11 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#define RGBLED_NUM 42
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_SLEEP
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL

View File

@@ -8,6 +8,12 @@
"pid": "0x6146",
"device_version": "0.0.1"
},
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
"led_count": 42,
"sleep": true
},
"ws2812": {
"pin": "C4"
},

View File

@@ -28,10 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define WS2812_DMA_CHANNEL 3
#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB
#define RGBLED_NUM 12
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL

View File

@@ -8,6 +8,11 @@
"pid": "0x432A",
"device_version": "0.0.1"
},
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
"led_count": 12
},
"ws2812": {
"pin": "B4",
"driver": "pwm"

View File

@@ -1,11 +1,6 @@
# Wildcard to allow APM32 MCU
DFU_SUFFIX_ARGS = -v FFFF -p FFFF
# Do not put the microcontroller into power saving mode
# when we get USB suspend event. We want it to keep updating
# backlight effects.
OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE
# Build Options
# change yes to no to disable
#

View File

@@ -2,10 +2,6 @@
/* RGB Underglow */
#ifdef RGBLIGHT_ENABLE
#define RGBLED_NUM 14
#define RGBLIGHT_HUE_STEP 8
#define RGBLIGHT_SAT_STEP 8
#define RGBLIGHT_VAL_STEP 8
#define RGBLIGHT_EFFECT_BREATHING
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
@@ -35,9 +31,6 @@
#define OLED_TIMEOUT 0
// #define OLED_SCROLL_TIMEOUT 1000
/* Taps (encoder tap_code) */
#define TAP_CODE_DELAY 10
/* I2C */
//#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2
//#define PAL_MODE_STM32_ALTERNATE_OPENDRAIN (PAL_MODE_ALTERNATE(4) | PAL_STM32_OTYPE_OPENDRAIN)

View File

@@ -8,6 +8,11 @@
"pid": "0x6060",
"device_version": "0.0.1"
},
"rgblight": {
"saturation_steps": 8,
"brightness_steps": 8,
"led_count": 14
},
"ws2812": {
"pin": "A15"
},
@@ -22,6 +27,9 @@
{"pin_a": "A0", "pin_b": "A1"}
]
},
"qmk": {
"tap_keycode_delay": 10
},
"processor": "STM32F303",
"bootloader": "stm32-dfu",
"board": "QMK_PROTON_C",

View File

@@ -37,10 +37,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MOUSEKEY_MAX_SPEED 7
#define MOUSEKEY_WHEEL_DELAY 0
#define TAPPING_TOGGLE 1
#define TAPPING_TERM 200
/* key combination for command */
#define IS_COMMAND() ( \
get_mods() == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \

View File

@@ -11,6 +11,9 @@
"processor": "atmega32u4",
"bootloader": "halfkay",
"debounce": 15,
"tapping": {
"toggle": 1
},
"layouts": {
"LAYOUT_dactyl": {
"layout": [

View File

@@ -0,0 +1,117 @@
{
"keyboard_name": "Dactyl CC",
"manufacturer": "mjohns",
"url": "https://github.com/mjohns/dactyl-cc",
"maintainer": "qmk",
"usb": {
"vid": "0xFEED",
"pid": "0x3060",
"device_version": "0.0.1"
},
"features": {
"bootmagic": true,
"mousekey": true,
"extrakey": true,
"console": false,
"command": true,
"nkro": false
},
"matrix_pins": {
"cols": ["D4", "C6", "D7", "E6", "B4", "B5"],
"rows": ["F6", "F7", "B1", "B3", "B2", "B6"]
},
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
"soft_serial_pin": "D0"
},
"development_board": "promicro",
"layouts": {
"LAYOUT": {
"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": [6, 0], "x": 11, "y": 0},
{"matrix": [6, 1], "x": 12, "y": 0},
{"matrix": [6, 2], "x": 13, "y": 0},
{"matrix": [6, 3], "x": 14, "y": 0},
{"matrix": [6, 4], "x": 15, "y": 0},
{"matrix": [6, 5], "x": 16, "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": [7, 0], "x": 11, "y": 1},
{"matrix": [7, 1], "x": 12, "y": 1},
{"matrix": [7, 2], "x": 13, "y": 1},
{"matrix": [7, 3], "x": 14, "y": 1},
{"matrix": [7, 4], "x": 15, "y": 1},
{"matrix": [7, 5], "x": 16, "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": [8, 0], "x": 11, "y": 2},
{"matrix": [8, 1], "x": 12, "y": 2},
{"matrix": [8, 2], "x": 13, "y": 2},
{"matrix": [8, 3], "x": 14, "y": 2},
{"matrix": [8, 4], "x": 15, "y": 2},
{"matrix": [8, 5], "x": 16, "y": 2},
{"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [3, 3], "x": 3, "y": 3},
{"matrix": [3, 4], "x": 4, "y": 3},
{"matrix": [3, 5], "x": 5, "y": 3},
{"matrix": [9, 0], "x": 11, "y": 3},
{"matrix": [9, 1], "x": 12, "y": 3},
{"matrix": [9, 2], "x": 13, "y": 3},
{"matrix": [9, 3], "x": 14, "y": 3},
{"matrix": [9, 4], "x": 15, "y": 3},
{"matrix": [9, 5], "x": 16, "y": 3},
{"matrix": [4, 0], "x": 1, "y": 4},
{"matrix": [4, 1], "x": 2, "y": 4},
{"matrix": [4, 2], "x": 3, "y": 4},
{"matrix": [4, 3], "x": 4, "y": 4},
{"matrix": [10, 2], "x": 12, "y": 4},
{"matrix": [10, 3], "x": 13, "y": 4},
{"matrix": [10, 4], "x": 14, "y": 4},
{"matrix": [10, 5], "x": 15, "y": 4},
{"matrix": [4, 4], "x": 6, "y": 5},
{"matrix": [4, 5], "x": 7, "y": 5},
{"matrix": [10, 0], "x": 9, "y": 5},
{"matrix": [10, 1], "x": 10, "y": 5},
{"matrix": [5, 2], "x": 5, "y": 6, "h": 2},
{"matrix": [5, 3], "x": 6, "y": 6, "h": 2},
{"matrix": [5, 5], "x": 7, "y": 6},
{"matrix": [11, 0], "x": 9, "y": 6},
{"matrix": [11, 2], "x": 10, "y": 6, "h": 2},
{"matrix": [11, 3], "x": 11, "y": 6, "h": 2},
{"matrix": [5, 4], "x": 7, "y": 7},
{"matrix": [11, 1], "x": 9, "y": 7}
]
}
}
}

View File

@@ -0,0 +1,28 @@
// Copyright 2022 mjohns
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* Enables This makes it easier for fast typists to use dual-function keys */
#define PERMISSIVE_HOLD
/* mouse config */
#define MOUSEKEY_DELAY 0
// Lowering MOUSEKEY_INTERVAL raises the cursor speed significantly, you may want to lower MOUSEKEY_MAX_SPEED (default: 10)
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_MAX_SPEED 7
#define MOUSEKEY_WHEEL_DELAY 0
/* layer config */
#define TAPPING_TOGGLE 1
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

View File

@@ -0,0 +1,37 @@
// Copyright 2022 mjohns
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum layers {
BASE,
NAV
};
#define CTL_ESC LCTL_T(KC_ESC)
#define CTL_CAP LCTL_T(KC_CAPS)
#define ALT_BSP LALT_T(KC_BSPC)
#define LT_SCLN LT(NAV, KC_SCLN)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[BASE] = LAYOUT(
KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_HOME,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
CTL_CAP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, LT_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,
KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
TT(NAV), KC_DEL, KC_PGUP, KC_RCTL,
KC_BSPC, CTL_ESC, KC_LGUI, KC_PGDN, KC_ENT, KC_SPC,
KC_LALT, KC_RALT
),
[NAV] = LAYOUT(
QK_BOOT, KC_NO, KC_MPRV, KC_MPLY, KC_MNXT, KC_NO, KC_BRIU, KC_P7, KC_P8, KC_P9, KC_NO, QK_BOOT,
_______, KC_VOLU, KC_WBAK, KC_MS_U, KC_WFWD, KC_WH_U, KC_BRID, KC_P4, KC_P5, KC_P6, KC_PMNS, _______,
_______, KC_VOLD, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, KC_PPLS, KC_P1, KC_P2, KC_P3, KC_PSLS, _______,
KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_NO, KC_PAST, KC_PCMM, KC_P0, KC_PDOT, KC_PENT, _______,
KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
_______, _______, KC_HOME, _______,
KC_BTN1, KC_BTN2, _______, KC_END, _______, _______,
_______, ALT_BSP
)
};

View File

@@ -0,0 +1,28 @@
// Copyright 2022 mjohns
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE
/* Locking resynchronize hack */
#define LOCKING_RESYNC_ENABLE
/* Enables This makes it easier for fast typists to use dual-function keys */
#define PERMISSIVE_HOLD
/* mouse config */
#define MOUSEKEY_DELAY 0
// Lowering MOUSEKEY_INTERVAL raises the cursor speed significantly, you may want to lower MOUSEKEY_MAX_SPEED (default: 10)
#define MOUSEKEY_INTERVAL 20
#define MOUSEKEY_MAX_SPEED 7
#define MOUSEKEY_WHEEL_DELAY 0
/* layer config */
#define TAPPING_TOGGLE 1
/* disable action features */
//#define NO_ACTION_LAYER
//#define NO_ACTION_TAPPING
//#define NO_ACTION_ONESHOT

View File

@@ -0,0 +1,64 @@
// Copyright 2022 mjohns
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum layers {
_BASE,
_NAV,
_SYS,
_BLANK
};
#define LT_1BSP LT(1, KC_BSPC)
#define LT_2SPC LT(2, KC_SPC)
#define MH_DEL MEH_T(KC_DEL)
#define HY_ENT HYPR_T(KC_ENT)
#define CA_PGDN LCA_T(KC_PGDN)
#define CAG_END LCAG_T(KC_END)
#define AG_PGUP LAG_T(KC_PGUP)
#define CG_HOME MT(MOD_LGUI | MOD_LCTL, KC_HOME)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT(
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
KC_LCTL, KC_LALT, KC_RGUI, KC_RCTL,
LT_1BSP, MH_DEL, CG_HOME, AG_PGUP, HY_ENT, LT_2SPC,
CAG_END, CA_PGDN
),
[_NAV] = LAYOUT(
_______, _______, _______, _______, _______, _______, _______, KC_NUM, KC_PEQL, KC_PSLS, KC_PAST, _______,
_______, _______, _______, _______, _______, _______, _______, KC_P7, KC_P8, KC_P9, KC_PMNS, _______,
_______, QK_BOOT, _______, _______, KC_SLEP, _______, _______, KC_P4, KC_P5, KC_P6, KC_PPLS, _______,
_______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, KC_PENT, _______,
_______, _______, _______, _______, _______, _______, KC_PDOT, KC_PENT,
_______, _______, _______, KC_P0,
_______, _______, _______, _______, _______, MO(3),
_______, _______
),
[_SYS] = LAYOUT(
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_VOLU, KC_WBAK, KC_MS_U, KC_WFWD, KC_WH_U, _______, KC_NO, KC_NO, KC_NO, KC_NO, _______,
_______, KC_MUTE, KC_MS_L, KC_MS_D, KC_MS_R, KC_WH_D, _______, KC_PSCR, KC_PAUS, KC_INS, KC_SCRL, _______,
_______, KC_VOLD, KC_MPRV, KC_MPLY, KC_MNXT, KC_MSTP, _______, KC_NO, KC_NO, KC_NO, KC_NO, _______,
_______, _______, _______, _______, _______, _______, KC_UP, KC_RGHT,
_______, _______, _______, _______,
KC_BTN1, KC_BTN2, _______, _______, _______, _______,
_______, _______
),
[_BLANK] = LAYOUT(
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
KC_NO, KC_NO
)
};

View File

@@ -0,0 +1 @@
VIA_ENABLE = yes

View File

@@ -0,0 +1,27 @@
# Dactyl-CC
![DactylCC](https://i.imgur.com/CUbPLZCh.jpeg)
Modelled on the *Kinesis Advantage* (KA) 1|2, though missing it's combined function and program row, the *Dactyl CC* retains the finger and thumb key placements of the KA but opts to split board into physical halves.
* Keyboard Maintainer: [Michael Johns](https://github.com/mjohns)
* Hardware Supported: Pro micro controller or clones of
* Hardware Availability: [Dactyl CC GitHub](https://github.com/mjohns/dactyl-cc)
Make example for this keyboard (after setting up your build environment):
make handwired/dactyl_cc:default
Flashing example for this keyboard:
make handwired/dactyl_cc: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 `QK_BOOT` if it is available

View File

View File

@@ -1,6 +1,6 @@
{
"keyboard_name": "Dactyl-Manuform (6x6+4)",
"manufacturer": "tshort",
"keyboard_name": "Dactyl Kinesis",
"manufacturer": "dmik",
"url": "",
"maintainer": "dmik",
"usb": {
@@ -8,6 +8,20 @@
"pid": "0x3636",
"device_version": "0.0.1"
},
"features": {
"bootmagic": true,
"command": false,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": false,
"audio": false,
"backlight": false,
"rgblight": false
},
"rgblight": {
"led_count": 12
},
"ws2812": {
"pin": "D3"
},
@@ -17,12 +31,12 @@
},
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
"soft_serial_pin": "D0"
},
"processor": "atmega32u4",
"bootloader": "caterina",
"development_board": "promicro",
"layouts": {
"LAYOUT_6x6_kinesis": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},
@@ -104,22 +118,22 @@
{"matrix": [12, 4], "x": 14, "y": 5},
{"matrix": [12, 5], "x": 15, "y": 5},
{"matrix": [5, 4], "x": 5, "y": 7, "h": 2},
{"matrix": [5, 5], "x": 6, "y": 7, "h": 2},
{"matrix": [12, 0], "x": 10, "y": 7, "h": 2},
{"matrix": [12, 1], "x": 11, "y": 7, "h": 2},
{"matrix": [6, 4], "x": 6, "y": 6},
{"matrix": [6, 5], "x": 7, "y": 6},
{"matrix": [13, 0], "x": 9, "y": 6},
{"matrix": [13, 1], "x": 10, "y": 6},
{"matrix": [6, 2], "x": 7, "y": 8},
{"matrix": [6, 3], "x": 7, "y": 7},
{"matrix": [5, 4], "x": 5, "y": 7, "h": 2},
{"matrix": [5, 5], "x": 6, "y": 7, "h": 2},
{"matrix": [12, 0], "x": 10, "y": 7, "h": 2},
{"matrix": [12, 1], "x": 11, "y": 7, "h": 2},
{"matrix": [6, 3], "x": 7, "y": 7},
{"matrix": [13, 2], "x": 9, "y": 7},
{"matrix": [6, 2], "x": 7, "y": 8},
{"matrix": [13, 3], "x": 9, "y": 8}
]
}

View File

@@ -0,0 +1,38 @@
// Copyright 2012 Jun Wako <wakojun@gmail.com>
// Copyright 2021 Dmitriy Kuminov (@dmik)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum custom_layers {
_QWERTY,
_LOWER
};
#define LOWER MO(_LOWER)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_CAPS,
KC_EQL , 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_BSLS,
KC_LCTL, 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,
KC_GRV , LOWER , KC_LEFT, KC_RGHT, KC_UP , KC_DOWN, KC_LBRC, KC_RBRC,
KC_LGUI, KC_LALT, KC_RCTL, KC_RGUI,
KC_BSPC, KC_DEL, KC_HOME, KC_PGUP, KC_ENT , KC_SPC ,
KC_END , KC_PGDN
),
[_LOWER] = LAYOUT(
_______, KC_F11 , KC_F12 , _______, _______, _______, KC_BRID, KC_BRIU, KC_MUTE, KC_VOLD, KC_VOLU, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______,
_______, KC_INS , _______, _______, _______, _______,
_______, _______
)
};

View File

@@ -0,0 +1,109 @@
# Dactyl Kinesis
Essentially a Dactyl CC physical key layout with an additional top row, further emulating the Kinesis Advantage (*1|2*) physical key layout.
* Keyboard Maintainer: [dmik](https://github.com/dmik)
* Hardware Supported: Pro Micro controller, or clone of
Make example for this keyboard (after setting up your build environment):
make handwired/dactyl_kinesis:default
Flashing example for this keyboard:
make handwired/dactyl_kinesis: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).
## Kinesis Advantage Keymap
### About
This keymap is designed after Kinesis Advantage's QWERTY layout with the following key differences:
- There are only 10 F-keys in the main layer, F1 and F2 are moved to additional LOWER layer.
- The INS key acts like a LOWER layer activation key and Del in LOWER layer ats like INS.
- LCtl is placed where CAPS should be and CAPS is moved to a free key after F10.
- Brigtness and volume control keys are added to LOWER layer.
The keymap file also contains RAISE layer but it is currently equivalent to LOWER layer and does
not have an activation key mapped. It is intended for possible extensions.
### Keymap
Main QUERTY layer:
,-------------------------------------------. ,-------------------------------------------.
| ESC | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | CAPS |
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
| = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
| Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
| LCtl | A | S | D | F | G | | H | J | K | L | ; | ' |
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
| LShift | Z | X | C | V | B | | N | M | , | . | / | RShift |
`--------+------+------+------+------+------' `------+------+------+------+------+--------'
| ` | LOWER| Left | Rght | | Up | Dn | [ | ] |
`---------------------------' `---------------------------'
,-------------. ,-------------.
| LGui | LAlt | | RCtl | RGui |
,------|------|------| |------+------+------.
| | | Home | | PgUp | | |
| BkSp | Del |------| |------|Enter |Space |
| | | End | | PgDn | | |
`--------------------' `--------------------'
LOWER layer:
,-------------------------------------------. ,-------------------------------------------.
| | F11 | F12 | | | | |BriDn |BriUp |VMute |VolDn |VolUp | |
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
| | | | | | | | | | | | | |
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
| | | | | | | | | | | | | |
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
| | | | | | | | | | | | | |
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
| | | | | | | | | | | | | |
`--------+------+------+------+------+------' `------+------+------+------+------+--------'
| | | | | | | | | |
`---------------------------' `---------------------------'
,-------------. ,-------------.
| | | | | |
,------|------|------| |------+------+------.
| | | | | | | |
| | INS |------| |------| | |
| | | | | | | |
`--------------------' `--------------------'
### Key Matrix Wiring
The below picture shows correspondence between the keys and the row/column wires of the left and
right halves:
,-------------------------------------------. ,-------------------------------------------.
| 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 |
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
| L30 | L31 | L32 | L33 | L34 | L35 | | R30 | R31 | R32 | R33 | R34 | R35 |
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
| L40 | L41 | L42 | L43 | L44 | L45 | | R40 | R41 | R42 | R43 | R44 | R45 |
`--------+------+------+------+------+------' `------+------+------+------+------+--------'
| L50 | L51 | L52 | L53 | | R52 | R53 | R54 | R55 |
`---------------------------' `---------------------------'
,-------------. ,-------------.
| L64 | L65 | | R60 | R61 |
,------|------|------| |------+------+------.
| | | L63 | | R62 | | |
| L54 | L55 |------| |------| R50 | R51 |
| | | L62 | | R63 | | |
`--------------------' `--------------------'
## 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 `QK_BOOT` if it is available

View File

@@ -0,0 +1 @@
# This file intentionally left blank

View File

@@ -1,22 +0,0 @@
/*
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
// WS2812 RGB LED strip input and number of LEDs
#define RGBLED_NUM 12

View File

@@ -8,6 +8,9 @@
"pid": "0x3435",
"device_version": "0.0.1"
},
"rgblight": {
"led_count": 12
},
"ws2812": {
"pin": "D3"
},

View File

@@ -1,5 +1,5 @@
{
"keyboard_name": "Dactyl Manuform 4x5 5 thumb keys",
"keyboard_name": "Dactyl ManuForm 4x5_5",
"manufacturer": "ssedrick",
"url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/dactyl_manuform/4x5_5",
"maintainer": "ssedrick",
@@ -16,9 +16,7 @@
"split": {
"soft_serial_pin": "D0"
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"community_layouts": ["split_3x5_3"],
"development_board": "promicro",
"layouts": {
"LAYOUT": {
"layout": [
@@ -28,11 +26,11 @@
{"matrix": [0, 3], "x": 3, "y": 0},
{"matrix": [0, 4], "x": 4, "y": 0},
{"matrix": [5, 0], "x": 6, "y": 0},
{"matrix": [5, 1], "x": 7, "y": 0},
{"matrix": [5, 2], "x": 8, "y": 0},
{"matrix": [5, 3], "x": 9, "y": 0},
{"matrix": [5, 4], "x": 10, "y": 0},
{"matrix": [5, 0], "x": 8, "y": 0},
{"matrix": [5, 1], "x": 9, "y": 0},
{"matrix": [5, 2], "x": 10, "y": 0},
{"matrix": [5, 3], "x": 11, "y": 0},
{"matrix": [5, 4], "x": 12, "y": 0},
{"matrix": [1, 0], "x": 0, "y": 1},
{"matrix": [1, 1], "x": 1, "y": 1},
@@ -40,11 +38,11 @@
{"matrix": [1, 3], "x": 3, "y": 1},
{"matrix": [1, 4], "x": 4, "y": 1},
{"matrix": [6, 0], "x": 6, "y": 1},
{"matrix": [6, 1], "x": 7, "y": 1},
{"matrix": [6, 2], "x": 8, "y": 1},
{"matrix": [6, 3], "x": 9, "y": 1},
{"matrix": [6, 4], "x": 10, "y": 1},
{"matrix": [6, 0], "x": 8, "y": 1},
{"matrix": [6, 1], "x": 9, "y": 1},
{"matrix": [6, 2], "x": 10, "y": 1},
{"matrix": [6, 3], "x": 11, "y": 1},
{"matrix": [6, 4], "x": 12, "y": 1},
{"matrix": [2, 0], "x": 0, "y": 2},
{"matrix": [2, 1], "x": 1, "y": 2},
@@ -52,82 +50,31 @@
{"matrix": [2, 3], "x": 3, "y": 2},
{"matrix": [2, 4], "x": 4, "y": 2},
{"matrix": [7, 0], "x": 6, "y": 2},
{"matrix": [7, 1], "x": 7, "y": 2},
{"matrix": [7, 2], "x": 8, "y": 2},
{"matrix": [7, 3], "x": 9, "y": 2},
{"matrix": [7, 4], "x": 10, "y": 2},
{"matrix": [7, 0], "x": 8, "y": 2},
{"matrix": [7, 1], "x": 9, "y": 2},
{"matrix": [7, 2], "x": 10, "y": 2},
{"matrix": [7, 3], "x": 11, "y": 2},
{"matrix": [7, 4], "x": 12, "y": 2},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [8, 2], "x": 8, "y": 3},
{"matrix": [8, 3], "x": 9, "y": 3},
{"matrix": [8, 2], "x": 10, "y": 3},
{"matrix": [8, 3], "x": 11, "y": 3},
{"matrix": [3, 3], "x": 3, "y": 4},
{"matrix": [3, 4], "x": 4, "y": 4},
{"matrix": [4, 4], "x": 5, "y": 4},
{"matrix": [8, 1], "x": 7, "y": 4},
{"matrix": [8, 1], "x": 9, "y": 4},
{"matrix": [9, 0], "x": 7, "y": 4},
{"matrix": [8, 0], "x": 8, "y": 4},
{"matrix": [3, 4], "x": 3, "y": 5},
{"matrix": [4, 4], "x": 4, "y": 5},
{"matrix": [4, 2], "x": 4, "y": 5},
{"matrix": [4, 3], "x": 5, "y": 5},
{"matrix": [9, 0], "x": 6, "y": 5},
{"matrix": [8, 0], "x": 7, "y": 5},
{"matrix": [4, 2], "x": 3, "y": 6},
{"matrix": [4, 3], "x": 4, "y": 6},
{"matrix": [9, 1], "x": 6, "y": 6},
{"matrix": [9, 2], "x": 7, "y": 6}
]
},
"LAYOUT_split_3x5_3": {
"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": [5, 0], "x": 6, "y": 0},
{"matrix": [5, 1], "x": 7, "y": 0},
{"matrix": [5, 2], "x": 8, "y": 0},
{"matrix": [5, 3], "x": 9, "y": 0},
{"matrix": [5, 4], "x": 10, "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": [6, 0], "x": 6, "y": 1},
{"matrix": [6, 1], "x": 7, "y": 1},
{"matrix": [6, 2], "x": 8, "y": 1},
{"matrix": [6, 3], "x": 9, "y": 1},
{"matrix": [6, 4], "x": 10, "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": [7, 0], "x": 6, "y": 2},
{"matrix": [7, 1], "x": 7, "y": 2},
{"matrix": [7, 2], "x": 8, "y": 2},
{"matrix": [7, 3], "x": 9, "y": 2},
{"matrix": [7, 4], "x": 10, "y": 2},
{"matrix": [3, 3], "x": 3, "y": 4},
{"matrix": [8, 1], "x": 7, "y": 4},
{"matrix": [3, 4], "x": 3, "y": 5},
{"matrix": [4, 4], "x": 4, "y": 5},
{"matrix": [9, 0], "x": 6, "y": 5},
{"matrix": [8, 0], "x": 7, "y": 5}
{"matrix": [9, 1], "x": 7, "y": 5},
{"matrix": [9, 2], "x": 8, "y": 5}
]
}
}

View File

@@ -2,7 +2,6 @@
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
#include "print.h"
enum key_layers {
_BASE,
@@ -11,145 +10,45 @@ enum key_layers {
_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
#define ____ KC_TRNS
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_LCTL, LOWER, KC_ENT
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_LGUI, KC_TAB, KC_RSFT, KC_SPC, KC_BSPC,
RAISE, KC_LCTL, 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_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_LCTL, LOWER, KC_ENT
),
/* RAISE
* ,----------------------------------, ,----------------------------------,
* | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |
* |------+------+------+------+------| |------+------+------+------+------|
* | ( | ) | { | } | = | | - | 4 | 5 | 6 | ; |
* |------+------+------+------+------| |------+------+------+------+------|
* | QK_BOOT| 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,
____, ____,
____, ____, ____, ____,
____, ____, ____, ____
KC_ESC, ____, ____, ____, ____, ____,
____, ____, ____, ____
),
[_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,
____, ____,
____, ____, ____, ____,
____, ____, ____, ____
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,
____, ____, KC_QUOT, KC_GRV,
____, ____, ____, ____, ____, ____,
____, ____, ____, ____
)
};
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;
}

View File

@@ -16,7 +16,6 @@ enum layer_keycodes {
COLEMAK,
};
#define RAISE TT(_RAISE)
#define LOWER MO(_LOWER)
#define SH_ESC SFT_T(KC_ESC)
@@ -28,111 +27,40 @@ enum layer_keycodes {
#define TAPPING_TOGGLE 2
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 | | ENTER|
* |-------------, ,------+------|
* | GUI | TAB | | BCKSP| SPACE|
* |------+------| |------+------|
* | RAISE| CTRL | | SHIFT| LOWER|
* '-------------' '-------------'
*/
[_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_LCBR, KC_RCBR, KC_QUOT, KC_GRV,
SH_ESC, KC_ENT,
KC_LGUI, KC_TAB, KC_RSFT, KC_SPC,
RAISE, KC_LCTL, KC_BSPC, LOWER
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_LCBR, KC_RCBR, KC_QUOT, KC_GRV,
SH_ESC, KC_LGUI, KC_TAB, KC_RSFT, KC_SPC, KC_ENT,
RAISE, KC_LCTL, KC_BSPC, LOWER
),
/* 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_LCBR, KC_RCBR, KC_QUOT, KC_GRV,
SH_ESC, KC_ENT,
KC_LGUI, KC_TAB, KC_RSFT, KC_SPC,
RAISE, KC_LCTL, KC_BSPC, LOWER
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_LCBR, KC_RCBR, KC_QUOT, KC_GRV,
____, ____, ____, ____, ____, ____,
____, ____, ____, ____
),
/* RAISE
* ,----------------------------------, ,----------------------------------,
* | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 |
* |------+------+------+------+------| |------+------+------+------+------|
* | ( | ) | [ | ] | = | | _ | 4 | 5 | 6 | ; |
* |------+------+------+------+------| |------+------+------+------+------|
* | QK_BOOT| BOOT | | | | | | 1 | 2 | 3 | |
* |------+------+------+-------------| |------+------+------+------+------,
* |MAC_LC| | | 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_LBRC, KC_RBRC, KC_EQL, KC_MINS, KC_4, KC_5, KC_6, KC_QUOT,
QK_RBT, QK_BOOT, ____, ____, ____, ____, KC_1, KC_2, KC_3, ____,
MAC_LOCK, ____, KC_0, KC_DOT,
____, ____,
____, ____, ____, ____,
____, ____, ____, ____
____, ____, ____, ____, ____, ____,
____, ____, ____, ____
),
/* LOWER
* ,----------------------------------, ,----------------------------------,
* | ! | @ | # | $ | % | | ^ | & | * | ( | ) |
* |------+------+------+------+------| |------+------+------+------+------|
* | ( | ) | { | } | = | | _ | - | + | \ | | |
* |------+------+------+------+------| |------+------+------+------+------|
* | NEXT | PLAY | VOLU | VOLD | | | | 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, UNDSC, KC_MINS, KC_EQL, KC_BSLS, KC_PIPE,
KC_MNXT, KC_MPLY, KC_VOLU, KC_VOLD, ____, ____, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT,
____, ____, QWERTY, COLEMAK,
____, ____,
____, ____, ____, ____,
____, ____, ____, ____
____, ____, ____, ____, ____, ____,
____, ____, ____, ____
)
};

View File

@@ -1,22 +0,0 @@
/*
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
// WS2812 RGB LED strip input and number of LEDs
#define RGBLED_NUM 12

View File

@@ -8,6 +8,9 @@
"pid": "0x3436",
"device_version": "0.0.1"
},
"rgblight": {
"led_count": 12
},
"ws2812": {
"pin": "D3"
},

View File

@@ -60,5 +60,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
N_PASTE , N_UNDO , KC_BSPC , KC_DEL
),
};

View File

@@ -8,3 +8,4 @@ COMMAND_ENABLE = no
NKRO_ENABLE = yes
RGBLIGHT_ENABLE = yes
DEBOUNCE_TYPE = asym_eager_defer_pk
USER_NAME := scheiklp

View File

@@ -1,22 +0,0 @@
/*
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
// WS2812 RGB LED strip input and number of LEDs
#define RGBLED_NUM 12

View File

@@ -8,6 +8,9 @@
"pid": "0x3436",
"device_version": "0.0.1"
},
"rgblight": {
"led_count": 12
},
"ws2812": {
"pin": "D3"
},

View File

@@ -1,22 +0,0 @@
/*
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
// WS2812 RGB LED strip input and number of LEDs
#define RGBLED_NUM 12

View File

@@ -8,6 +8,9 @@
"pid": "0x3536",
"device_version": "0.0.1"
},
"rgblight": {
"led_count": 12
},
"ws2812": {
"pin": "D3"
},

View File

@@ -3,14 +3,25 @@
"manufacturer": "kpagratis",
"url": "",
"maintainer": "kpagratis",
"bootloader": "caterina",
"processor": "atmega32u4",
"development_board": "promicro",
"usb": {
"vid": "0xFEED",
"pid": "0x0016",
"device_version": "0.0.1"
},
"features": {
"bootmagic": true,
"command": true,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": true,
"audio": false,
"backlight": false,
"rgblight": false
},
"split": {
"enabled": true,
"soft_serial_pin": "D0"
},
"matrix_pins": {
@@ -21,80 +32,89 @@
"layouts": {
"LAYOUT": {
"layout": [
{"x": 0, "y": 0, "matrix": [0, 0]},
{"x": 1, "y": 0, "matrix": [0, 1]},
{"x": 2, "y": 0, "matrix": [0, 2]},
{"x": 3, "y": 0, "matrix": [0, 3]},
{"x": 4, "y": 0, "matrix": [0, 4]},
{"x": 5, "y": 0, "matrix": [0, 5]},
{"x": 14, "y": 0, "matrix": [6, 0]},
{"x": 15, "y": 0, "matrix": [6, 1]},
{"x": 16, "y": 0, "matrix": [6, 2]},
{"x": 17, "y": 0, "matrix": [6, 3]},
{"x": 18, "y": 0, "matrix": [6, 4]},
{"x": 19, "y": 0, "matrix": [6, 5]},
{"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},
{"x": 0, "y": 1, "matrix": [1, 0]},
{"x": 1, "y": 1, "matrix": [1, 1]},
{"x": 2, "y": 1, "matrix": [1, 2]},
{"x": 3, "y": 1, "matrix": [1, 3]},
{"x": 4, "y": 1, "matrix": [1, 4]},
{"x": 5, "y": 1, "matrix": [1, 5]},
{"x": 14, "y": 1, "matrix": [7, 0]},
{"x": 15, "y": 1, "matrix": [7, 1]},
{"x": 16, "y": 1, "matrix": [7, 2]},
{"x": 17, "y": 1, "matrix": [7, 3]},
{"x": 18, "y": 1, "matrix": [7, 4]},
{"x": 19, "y": 1, "matrix": [7, 5]},
{"matrix": [6, 0], "x": 11, "y": 0},
{"matrix": [6, 1], "x": 12, "y": 0},
{"matrix": [6, 2], "x": 13, "y": 0},
{"matrix": [6, 3], "x": 14, "y": 0},
{"matrix": [6, 4], "x": 15, "y": 0},
{"matrix": [6, 5], "x": 16, "y": 0},
{"x": 0, "y": 2, "matrix": [2, 0]},
{"x": 1, "y": 2, "matrix": [2, 1]},
{"x": 2, "y": 2, "matrix": [2, 2]},
{"x": 3, "y": 2, "matrix": [2, 3]},
{"x": 4, "y": 2, "matrix": [2, 4]},
{"x": 5, "y": 2, "matrix": [2, 5]},
{"x": 14, "y": 2, "matrix": [8, 0]},
{"x": 15, "y": 2, "matrix": [8, 1]},
{"x": 16, "y": 2, "matrix": [8, 2]},
{"x": 17, "y": 2, "matrix": [8, 3]},
{"x": 18, "y": 2, "matrix": [8, 4]},
{"x": 19, "y": 2, "matrix": [8, 5]},
{"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},
{"x": 0, "y": 3, "matrix": [3, 0]},
{"x": 1, "y": 3, "matrix": [3, 1]},
{"x": 2, "y": 3, "matrix": [3, 2]},
{"x": 3, "y": 3, "matrix": [3, 3]},
{"x": 4, "y": 3, "matrix": [3, 4]},
{"x": 5, "y": 3, "matrix": [3, 5]},
{"x": 14, "y": 3, "matrix": [9, 0]},
{"x": 15, "y": 3, "matrix": [9, 1]},
{"x": 16, "y": 3, "matrix": [9, 2]},
{"x": 17, "y": 3, "matrix": [9, 3]},
{"x": 18, "y": 3, "matrix": [9, 4]},
{"x": 19, "y": 3, "matrix": [9, 5]},
{"matrix": [7, 0], "x": 11, "y": 1},
{"matrix": [7, 1], "x": 12, "y": 1},
{"matrix": [7, 2], "x": 13, "y": 1},
{"matrix": [7, 3], "x": 14, "y": 1},
{"matrix": [7, 4], "x": 15, "y": 1},
{"matrix": [7, 5], "x": 16, "y": 1},
{"x": 0, "y": 4, "matrix": [4, 0]},
{"x": 1, "y": 4, "matrix": [4, 1]},
{"x": 2, "y": 4, "matrix": [4, 2]},
{"x": 3, "y": 4, "matrix": [4, 3]},
{"x": 16, "y": 4, "matrix": [10, 2]},
{"x": 17, "y": 4, "matrix": [10, 3]},
{"x": 18, "y": 4, "matrix": [10, 4]},
{"x": 19, "y": 4, "matrix": [10, 5]},
{"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},
{"x": 5, "y": 5, "matrix": [5, 0]},
{"x": 6, "y": 5, "matrix": [5, 1]},
{"x": 7, "y": 5, "matrix": [5, 2]},
{"x": 13, "y": 5, "matrix": [11, 0]},
{"x": 14, "y": 5, "matrix": [11, 1]},
{"x": 15, "y": 5, "matrix": [11, 2]},
{"matrix": [8, 0], "x": 11, "y": 2},
{"matrix": [8, 1], "x": 12, "y": 2},
{"matrix": [8, 2], "x": 13, "y": 2},
{"matrix": [8, 3], "x": 14, "y": 2},
{"matrix": [8, 4], "x": 15, "y": 2},
{"matrix": [8, 5], "x": 16, "y": 2},
{"x": 5, "y": 6, "matrix": [5, 3]},
{"x": 6, "y": 6, "matrix": [5, 4]},
{"x": 7, "y": 6, "matrix": [5, 5]},
{"x": 13, "y": 6, "matrix": [11, 3]},
{"x": 14, "y": 6, "matrix": [11, 4]},
{"x": 15, "y": 6, "matrix": [11, 5]}
{"matrix": [3, 0], "x": 0, "y": 3},
{"matrix": [3, 1], "x": 1, "y": 3},
{"matrix": [3, 2], "x": 2, "y": 3},
{"matrix": [3, 3], "x": 3, "y": 3},
{"matrix": [3, 4], "x": 4, "y": 3},
{"matrix": [3, 5], "x": 5, "y": 3},
{"matrix": [9, 0], "x": 11, "y": 3},
{"matrix": [9, 1], "x": 12, "y": 3},
{"matrix": [9, 2], "x": 13, "y": 3},
{"matrix": [9, 3], "x": 14, "y": 3},
{"matrix": [9, 4], "x": 15, "y": 3},
{"matrix": [9, 5], "x": 16, "y": 3},
{"matrix": [4, 0], "x": 0, "y": 4},
{"matrix": [4, 1], "x": 1, "y": 4},
{"matrix": [4, 2], "x": 2, "y": 4},
{"matrix": [4, 3], "x": 3, "y": 4},
{"matrix": [10, 2], "x": 13, "y": 4},
{"matrix": [10, 3], "x": 14, "y": 4},
{"matrix": [10, 4], "x": 15, "y": 4},
{"matrix": [10, 5], "x": 16, "y": 4},
{"matrix": [4, 4], "x": 4, "y": 5},
{"matrix": [4, 5], "x": 5, "y": 5},
{"matrix": [10, 0], "x": 11, "y": 5},
{"matrix": [10, 1], "x": 12, "y": 5},
{"matrix": [5, 4], "x": 6, "y": 6},
{"matrix": [5, 5], "x": 7, "y": 6},
{"matrix": [11, 0], "x": 9, "y": 6},
{"matrix": [11, 1], "x": 10, "y": 6},
{"matrix": [5, 2], "x": 6, "y": 7},
{"matrix": [5, 3], "x": 7, "y": 7},
{"matrix": [11, 2], "x": 9, "y": 7},
{"matrix": [11, 3], "x": 10, "y": 7}
]
}
}

View File

@@ -5,39 +5,45 @@
enum custom_layers {
_QWERTY,
_LAYER2,
_LOWER,
_RAISE
};
#define GUI_J RGUI_T(KC_J)
#define GUI_F LGUI_T(KC_F)
#define SFT_A LSFT_T(KC_A)
#define CTL_S LCTL_T(KC_S)
#define ALT_D LALT_T(KC_D)
#define ALT_K RALT_T(KC_K)
#define CTL_L RCTL_T(KC_L)
#define SFT_SC RSFT_T(KC_SCLN)
#define IMPORTS LALT(LCTL(KC_O)) //Intellij Organize Imports
#define LINES LALT(LGUI(KC_L)) //Intellij Reformat Code
#define USAGES LALT(KC_F7) //Intelllj Find Usages
#define RENAME LSFT(KC_F6) //Intellij Refactor Rename
#define RAISE MO(_RAISE)
#define LOWER MO(_LOWER)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT(
KC_EQL , 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_BSLS,
KC_ESC , SFT_A , CTL_S , ALT_D , GUI_F , KC_G , KC_H , GUI_J , ALT_K , CTL_L , SFT_SC , 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,
KC_GRV , KC_INS , KC_LEFT, KC_RGHT, KC_DOWN, KC_UP , KC_LBRC, KC_RBRC,
KC_LCTL, KC_LALT, KC_HOME, KC_DEL , KC_PGUP, KC_BSPC,
KC_SPC , KC_DEL , KC_END , MO(_LAYER2), KC_PGDN, KC_ENT
KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS,
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_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
KC_LCTL, KC_LALT, KC_LBRC, KC_RBRC, KC_MINS, KC_EQL, KC_RALT, KC_RCTL,
RAISE, KC_SPC, KC_ENT, LOWER,
KC_HOME, KC_BSPC, KC_DEL, KC_END,
KC_PGUP, KC_LGUI, KC_RGUI, KC_PGDN
),
[_LAYER2] = LAYOUT(
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT,
XXXXXXX, IMPORTS, XXXXXXX, USAGES , RENAME , XXXXXXX, XXXXXXX, KC_VOLD, KC_MUTE, KC_VOLU, XXXXXXX, XXXXXXX,
XXXXXXX, LINES , XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,XXXXXXX, XXXXXXX,
XXXXXXX, XXXXXXX, XXXXXXX, _______,XXXXXXX, XXXXXXX
[_LOWER] = LAYOUT(
KC_TILD, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, _______,
_______, _______, _______, _______, _______, KC_LBRC, KC_RBRC, KC_P7, KC_P8, KC_P9, _______, _______,
_______, KC_SCRL, KC_INS, KC_PAUS, KC_PSCR, KC_LPRN, KC_RPRN, KC_P4, KC_P5, KC_P6, _______, _______,
_______, _______, _______, _______, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______,
_______, _______, _______, _______, KC_P0, KC_PDOT, _______, _______,
_______, _______, _______, _______,
_______, _______, _______, _______,
_______, _______, _______, _______
),
[_RAISE] = 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_TRNS, KC_TRNS, _______, KC_NUM, _______, _______, KC_MUTE,
_______, KC_LEFT, KC_UP, KC_DOWN, KC_RGHT, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, _______, KC_VOLU,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD,
_______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______,
_______, _______, _______, _______,
_______, _______, _______, _______
)
};

View File

@@ -1,5 +1,5 @@
# Dactyl Manuform
# Dactyl Manuform 5x6_68
This is a 5x6 manuform with a 4 key bottom row and 6 key thumb clusters.
This is a Dactyl ManuForm 5x6 with an extended, 4 key, bottom row; totalling 68 keys.
This results in a 68 key 5x6
![diagram](https://i.imgur.com/TGd36fWh.png)

View File

@@ -1,13 +1 @@
# 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 = yes # 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
# This file intentionally left blank

View File

@@ -1,22 +0,0 @@
/*
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
// WS2812 RGB LED strip input and number of LEDs
#define RGBLED_NUM 12

View File

@@ -8,6 +8,9 @@
"pid": "0x3537",
"device_version": "0.0.1"
},
"rgblight": {
"led_count": 12
},
"ws2812": {
"pin": "D3"
},

View File

@@ -1,20 +0,0 @@
/* Copyright 2019
*
* 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
// WS2812 RGB LED strip input and number of LEDs
#define RGBLED_NUM 12

View File

@@ -7,6 +7,9 @@
"split": {
"soft_serial_pin": "D0"
},
"rgblight": {
"led_count": 12
},
"ws2812": {
"pin": "D3"
},

View File

@@ -1,22 +0,0 @@
/*
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
// WS2812 RGB LED strip input and number of LEDs
#define RGBLED_NUM 12

View File

@@ -8,6 +8,9 @@
"pid": "0x3636",
"device_version": "0.0.1"
},
"rgblight": {
"led_count": 12
},
"ws2812": {
"pin": "D3"
},

View File

@@ -1,22 +0,0 @@
/*
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
// WS2812 RGB LED strip input and number of LEDs
#define RGBLED_NUM 12

View File

@@ -1,52 +0,0 @@
// Copyright 2012 Jun Wako <wakojun@gmail.com>
// Copyright 2021 Dmitriy Kuminov (@dmik)
// SPDX-License-Identifier: GPL-2.0-or-later
#include QMK_KEYBOARD_H
enum custom_layers {
_QWERTY,
_LOWER,
_RAISE,
};
#define RAISE MO(_RAISE)
#define LOWER MO(_LOWER)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_6x6_kinesis(
KC_ESC , KC_F1 , KC_F2 , KC_F3 , KC_F4 , KC_F5 , KC_F6 , KC_F7 , KC_F8 , KC_F9 , KC_F10 , KC_CAPS,
KC_EQL , 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_BSLS,
KC_LCTL, 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,
KC_GRV , LOWER , KC_LEFT, KC_RGHT, KC_UP , KC_DOWN, KC_LBRC, KC_RBRC,
KC_BSPC, KC_DEL , KC_ENT , KC_SPC ,
KC_LGUI, KC_LALT, KC_RCTL, KC_RGUI,
KC_END , KC_HOME, KC_PGUP, KC_PGDN
),
[_LOWER] = LAYOUT_6x6_kinesis(
_______, KC_F11 , KC_F12 , _______, _______, _______, KC_BRID, KC_BRIU, KC_MUTE, KC_VOLD, KC_VOLU, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_INS , _______, _______,
_______, _______, _______, _______,
_______, _______, _______, _______
),
[_RAISE] = LAYOUT_6x6_kinesis(
_______, KC_F11 , KC_F12 , _______, _______, _______, KC_BRID, KC_BRIU, KC_MUTE, KC_VOLD, KC_VOLU, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______,
_______, KC_INS , _______, _______,
_______, _______, _______, _______,
_______, _______, _______, _______
),
};

View File

@@ -1,85 +0,0 @@
# Kinesis Advantage Keymap
## About this keymap
This keymap is designed after Kinesis Advantage's QWERTY layout with the following key differences:
- There are only 10 F-keys in the main layer, F1 and F2 are moved to additional LOWER layer.
- The INS key acts like a LOWER layer activation key and Del in LOWER layer ats like INS.
- LCtl is placed where CAPS should be and CAPS is moved to a free key after F10.
- Brigtness and volume control keys are added to LOWER layer.
The keymap file also contains RAISE layer but it is currently equivalent to LOWER layer and does
not have an activation key mapped. It is intended for possible extensions.
## Mapping details
Main QUERTY layer:
,-------------------------------------------. ,-------------------------------------------.
| ESC | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | CAPS |
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
| = | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | - |
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
| Tab | Q | W | E | R | T | | Y | U | I | O | P | \ |
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
| LCtl | A | S | D | F | G | | H | J | K | L | ; | ' |
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
| LShift | Z | X | C | V | B | | N | M | , | . | / | RShift |
`--------+------+------+------+------+------' `------+------+------+------+------+--------'
| ` | LOWER| Left | Rght | | Up | Dn | [ | ] |
`---------------------------' `---------------------------'
,-------------. ,-------------.
| LGui | LAlt | | RCtl | RGui |
,------|------|------| |------+------+------.
| | | Home | | PgUp | | |
| BkSp | Del |------| |------|Enter |Space |
| | | End | | PgDn | | |
`--------------------' `--------------------'
LOWER layer:
,-------------------------------------------. ,-------------------------------------------.
| | F11 | F12 | | | | |BriDn |BriUp |VMute |VolDn |VolUp | |
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
| | | | | | | | | | | | | |
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
| | | | | | | | | | | | | |
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
| | | | | | | | | | | | | |
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
| | | | | | | | | | | | | |
`--------+------+------+------+------+------' `------+------+------+------+------+--------'
| | | | | | | | | |
`---------------------------' `---------------------------'
,-------------. ,-------------.
| | | | | |
,------|------|------| |------+------+------.
| | | | | | | |
| | INS |------| |------| | |
| | | | | | | |
`--------------------' `--------------------'
## Soldering details
The below picture shows correspondence between the keys and the row/column wires of the left and
right halves:
LOWER layer:
,-------------------------------------------. ,-------------------------------------------.
| 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 |
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
| L30 | L31 | L32 | L33 | L34 | L35 | | R30 | R31 | R32 | R33 | R34 | R35 |
|--------+------+------+------+------+------| |------+------+------+------+------+--------|
| L40 | L41 | L42 | L43 | L44 | L45 | | R40 | R41 | R42 | R43 | R44 | R45 |
`--------+------+------+------+------+------' `------+------+------+------+------+--------'
| L50 | L51 | L52 | L53 | | R52 | R53 | R54 | R55 |
`---------------------------' `---------------------------'
,-------------. ,-------------.
| L64 | L65 | | R60 | R61 |
,------|------|------| |------+------+------.
| | | L63 | | R62 | | |
| L54 | L55 |------| |------| R50 | R51 |
| | | L62 | | R63 | | |
`--------------------' `--------------------'

View File

@@ -1,13 +0,0 @@
# 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

View File

@@ -1,22 +0,0 @@
/*
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
// WS2812 RGB LED strip input and number of LEDs
#define RGBLED_NUM 12

View File

@@ -8,21 +8,35 @@
"pid": "0x3636",
"device_version": "0.0.1"
},
"features": {
"bootmagic": true,
"command": true,
"console": false,
"extrakey": true,
"mousekey": true,
"nkro": false,
"audio": false,
"backlight": false,
"rgblight": false
},
"ws2812": {
"pin": "D3"
},
"matrix_pins": {
"cols": ["D4", "C6", "D7", "E6", "B4", "B5", "B7"],
"cols": ["D4", "C6", "D7", "E6", "B4", "B5", "D1"],
"rows": ["F5", "F6", "F7", "B1", "B3", "B2", "B6"]
},
"diode_direction": "COL2ROW",
"split": {
"enabled": true,
"soft_serial_pin": "D0"
},
"processor": "atmega32u4",
"bootloader": "caterina",
"rgblight": {
"led_count": 12
},
"development_board": "promicro",
"layouts": {
"LAYOUT_6x7": {
"LAYOUT": {
"layout": [
{"matrix": [0, 0], "x": 0, "y": 0},
{"matrix": [0, 1], "x": 1, "y": 0},

View File

@@ -12,7 +12,7 @@ enum custom_layer {
#define LOWER MO(_LOWER)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTY] = LAYOUT_6x7(
[_QWERTY] = LAYOUT(
KC_ESC , 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_GRV , KC_1 , KC_2 , KC_3 , KC_4 , KC_5 , KC_6 , KC_7 , KC_8 , KC_9 , KC_0 , KC_LBRC , KC_RBRC,
_______, KC_TAB , KC_Q , KC_W , KC_E , KC_R , KC_T , KC_Y , KC_U , KC_I , KC_O , KC_P , KC_QUOT , KC_BSLS,
@@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_BSPC,KC_GRV, KC_LGUI, KC_LALT
),
[_LOWER] = LAYOUT_6x7(
[_LOWER] = LAYOUT(
KC_ESC , 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_TILD,KC_EXLM, KC_AT ,KC_HASH,KC_DLR ,KC_PERC, KC_CIRC,KC_AMPR,KC_ASTR,KC_LPRN,KC_RPRN,KC_DEL , _______,
_______, _______,_______,_______,_______,_______,KC_LBRC, KC_RBRC, KC_P7 , KC_P8 , KC_P9 ,_______,KC_PLUS, _______,
@@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______,_______, _______,_______
),
[_RAISE] = LAYOUT_6x7(
[_RAISE] = 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_LBRC, KC_RBRC,_______,KC_NUM ,KC_INS ,KC_SCRL,KC_MUTE, _______,
_______,_______,KC_LEFT,KC_UP ,KC_DOWN,KC_RGHT,KC_LPRN, KC_RPRN,KC_MPRV,KC_MPLY,KC_MNXT,_______,KC_VOLU, _______,

View File

@@ -10,7 +10,7 @@ enum custom_layer {
#define RAISE MO(_RAISE)
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_QWERTZ] = LAYOUT_6x7(
[_QWERTZ] = LAYOUT(
KC_ESC , 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_HOME,
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_EQL , KC_END ,
XXXXXXX, 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,
@@ -18,12 +18,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
KC_LCTL, KC_NUBS, KC_Z , KC_X , KC_C , KC_V , KC_B , KC_N , KC_M , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT, KC_MPLY,
KC_LEFT, KC_RGHT, KC_UP , KC_DOWN,
KC_SPC , KC_LSFT, KC_RALT, KC_ENT ,
KC_LGUI, KC_LALT, KC_BSPC, KC_DEL ,
KC_PGDN, KC_PGUP, KC_TAB , KC_INS
),
[_RAISE] = LAYOUT_6x7(
[_RAISE] = LAYOUT(
QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
@@ -31,7 +30,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
KC_MPRV, KC_MNXT, KC_VOLU, KC_VOLD,
_______, _______, _______, _______,
_______, _______, _______, _______,
_______, _______, _______, _______
)

View File

@@ -1,13 +0,0 @@
# 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

View File

@@ -5,5 +5,3 @@
#define RGBLIGHT_EFFECT_KNIGHT_LENGTH 2
#define RGBLIGHT_EFFECT_CHRISTMAS
#define RGBLIGHT_EFFECT_CHRISTMAS_STEP 1
#define RGBLED_NUM 6 // Used when chaining strips
#define RGBLED_SPLIT { 3, 3 } // Used when not chaining strips

View File

@@ -10,6 +10,10 @@
"pid": "0x3632",
"device_version": "0.0.1"
},
"rgblight": {
"led_count": 6,
"split_count": [3, 3]
},
"ws2812": {
"pin": "D1"
},

View File

@@ -1,188 +1,112 @@
# Dactyl Manuform (4x5, 5x6, 5x7, 6x6, 6x7)
# Dactyl ManuForm
the [Dactyl-Manuform](https://github.com/tshort/dactyl-keyboard) is a split curved keyboard based on the design of [adereth dactyl](https://github.com/adereth/dactyl-keyboard) and thumb cluster design of the [manuform](https://geekhack.org/index.php?topic=46015.0) keyboard, the hardware is similar to the let's split keyboard. all information needed for making one is in the first link.
![Imgur](https://i.imgur.com/7y0Vbyd.jpg)
![Imgur](https://i.imgur.com/7y0Vbydh.jpg)
*Pair of Dactyl Manuform 4x6*
## First Time Setup
Forked from the [Dactyl](/keyboards/handwired/dactyl), the *Dactyl ManuForm* is a parameterized, handwired, split bodied, tented, concave key-well design that incorporates the thumb cluster from the [ManuForm](https://geekhack.org/index.php?topic=46015.0).
Download or clone the `qmk_firmware` repo and navigate to its top level directory. Once your build environment is setup, you'll be able to generate the default .hex using:
* Keyboard Maintainer: [Tom Short](https://github.com/tshort)
* Hardware Supported: Pro Micro, or clone of
* Hardware Availability: [Github](https://github.com/tshort/dactyl-keyboard)
Depending on your Layout chose one of the follwing commands:
## Variants
```
$ make handwired/dactyl_manuform/YOUR_LAYOUT:YOUR_KEYMAP_NAME
```
*Dactyl ManuForm's* are built in variations that cater for different row and column counts, and thumb clusters.
example:
As standard:
- The finger keywell bottom row has 2 keys, 1 each in ring and middle columns
- Exception to this rule is the `5x7` variant - that has two additional keys, per half, in this row
- The thumb cluster has 6 keys, arranged in a staggered 2 columns by 3 rows
```
$ make handwired/dactyl_manuform/4x5:default
```
Variants are denoted as `RowCount`*x*`ColumnCount`*(_`Alteration`)*
If everything worked correctly you will see a file:
### Row
| Count | Description |
| :---: | :---: |
| 4 | Three rows, typically for alphabet and some puncuation characters, with 2 key (finger keywell) bottom row |
| 5 | As *4 row* with number row above |
| 6 | As *5 row* with function row above |
```
dactyl_manuform_YOUR_LAYOUT_YOUR_KEYMAP_NAME.hex
```
### Column
| Count | Description |
| :---: | :---: |
| 5 | A column for each finger with additional column for first finger |
| 6 | As *5 column* with additional pinky finger column |
| 7 | As *6 column* with either an additional first finger column (`5x7`) or additional pinky column (`6x7`) |
For more information on customizing keymaps, take a look at the primary documentation for [Customizing Your Keymap](/docs/faq_keymap.md) in the main readme.md.
### Alteration
| Code | Description |
| :---: | :---: |
| 5 | Thumb cluster replaced with five key thumb cluster of [Dactyl Manuform Mini](https://github.com/l4u/dactyl-manuform-mini-keyboard) |
| 2_5 | Same as code *5* with two additional keys added to finger key-well bottom row |
## Case Files Generator
[Dactyl Generator](https://ryanis.cool/dactyl), created by [rianadon](https://github.com/rianadon), is a web based file generator that negates having to compose case files using programming languages, which was the matter when using the original *Dactyl* and *Dactyl ManuForm* GitHub repos, by instead compiling case files based on options and parameters configured in a web front end.
## Compile
Make example for this keyboard (after setting up your build environment) in the 5x6 variant:
make handwired/dactyl_manuform/5x6:default
Flashing example for this keyboard:
make handwired/dactyl_manuform/5x6: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).
## Keymaps
### [Keymaps 4x5](/keyboards/handwired/dactyl_manuform/4x5/keymaps/)
### Default
#### Default
The default functional layout, based on QWERTY, and every variant has this keymap; used as a starting point/template for custom keymaps and for debugging purposes when soldering key matrix to controller.
Simple QWERTY layout with 3 Layers.
### VIA
Similar to *Default* but adds support for the [VIA](https://usevia.app/) keymap configurator. Layer count set to 4 to comply with VIA defaults, and remaps keys to accommodate this constraint, if applicable.
#### Dvorak
Variants with VIA support:
- 4x6
- 5x6_5
- 5x7
### [Keymaps 5x6](/keyboards/handwired/dactyl_manuform/5x6/keymaps/)
### Miryoku
#### Default
For more information on this layout schematic, please see the [Miryoku Reference Manual](https://github.com/manna-harbour/miryoku/tree/master/docs/reference).
For QMK specifics, please see [Miryoku QMK](https://github.com/manna-harbour/miryoku_qmk/tree/miryoku/users/manna-harbour_miryoku).
Just a copy of the Impstyle keymap. Feel free to adjust it.
Variants with *Miryoku* support:
- 4x5
- 4x5_5
- 4x6
- 4x6_5
- 5x6
#### Impstyle
## Non-Pro Micro Controller Compilation
A simple QWERTY keymap with 3 Layers. Both sides are connected via serial and the Left ist the master.
### [Keymaps 5x6_5](/keyboards/handwired/dactyl_manuform/5x6_5/keymaps/)
Similar layout to 5x6 but with only 5 thumb keys per side instead of 6.
#### Default
QWERTY layout with 7 Layers.
#### Via
Similar to Default but adds support for the [Via](https://www.caniusevia.com/) keymap configurator. Reduces the number of layers to 4 to comply with Via defaults, and remaps
some keys to accomodate that constraint.
### [Keymaps 5x7 aka almost Ergodox](/keyboards/handwired/dactyl_manuform/5x7/keymaps/)
#### Default
Keymap of Loligagger from geekhack.
### [Keymaps 6x6](/keyboards/handwired/dactyl_manuform/6x6/keymaps/)
#### Default
Simple QWERTY layout with 3 Layers.
### [Keymaps 6x7](/keyboards/handwired/dactyl_manuform/6x7/keymaps/)
#### Default
Simple QWERTY layout with 3 Layers.
### [Keymaps 3x5_3](/keyboards/handwired/dactyl_manuform/3x5_3/keymaps/)
#### Dlford
QWERTY/Colemak layout with per key RGB and other features
## Required Hardware
Apart from diodes and key switches for the keyboard matrix in each half, you
will need:
- 2 Arduino Pro Micros. You can find these on AliExpress for ≈3.50USD each.
- 2 TRRS sockets and 1 TRRS cable, or 2 TRS sockets and 1 TRS cable
Alternatively, you can use any sort of cable and socket that has at least 3
wires. If you want to use I2C to communicate between halves, you will need a
cable with at least 4 wires and 2x 4.7kΩ pull-up resistors
## Optional Hardware
A speaker can be hooked-up to either side to the `5` (`C6`) pin and `GND`, and turned on via `AUDIO_ENABLE`.
## Wiring
The 3 wires of the TRS/TRRS cable need to connect GND, VCC, and digital pin 3 (i.e.
PD0 on the ATmega32u4) between the two Pro Micros.
Next, wire your key matrix to any of the remaining 17 IO pins of the pro micro
and modify the `matrix.c` accordingly.
The wiring for serial:
![serial wiring](https://i.imgur.com/C3D1GAQ.png)
The wiring for i2c:
![i2c wiring](https://i.imgur.com/Hbzhc6E.png)
The pull-up resistors may be placed on either half. It is also possible
to use 4 resistors and have the pull-ups in both halves, but this is
unnecessary in simple use cases.
You can change your configuration between serial and i2c by modifying your `config.h` file.
## Notes on Software Configuration
the keymaps in here are for the 4x5 layout of the keyboard only.
If building a Dactyl Manuform with controllers that aren't a pro micro, the Converter feature of QMK will allow compilation of firmware for the intended variant and supported controller without having to create a new QMK keyboard/keymap.
Please see [Converters](https://docs.qmk.fm/#/feature_converters?id=supported-converters) documentation for list of controllers that are supported converting from `pro_micro` and how to implement conversion.
## Flashing
To flash your firmware take a look at: [Flashing Instructions and Bootloader Information](https://docs.qmk.fm/#/flashing)
To flash your board with generated firmware file, please see [Flashing Instructions and Bootloader Information](https://docs.qmk.fm/#/flashing)
## Choosing which board to plug the USB cable into (choosing Master)
## Handedness configurations
Because the two boards are identical, the firmware has logic to differentiate the left and right board.
See [Handedness](https://docs.qmk.fm/#/config_options?id=setting-handedness) documentation for more information on configuring handedness/master half.
It uses two strategies to figure things out: looking at the EEPROM (memory on the chip) or looking if the current board has the usb cable.
The EEPROM approach requires additional setup (flashing the eeprom) but allows you to swap the usb cable to either side.
The USB cable approach is easier to setup and if you just want the usb cable on the left board, you do not need to do anything extra.
### Setting the left hand as master
If you always plug the usb cable into the left board, nothing extra is needed as this is the default. Comment out `EE_HANDS` and comment out `I2C_MASTER_RIGHT` or `MASTER_RIGHT` if for some reason it was set.
### Setting the right hand as master
If you always plug the usb cable into the right board, add an extra flag to your `config.h`
## VIA Configuration
Variants with a `via` keymap are VIA capable.
Compile firmware, for [enabled variant](#via), with it's `via` keymap and flash board with this firmware file.
```
#define MASTER_RIGHT
qmk compile -kb handwired/dactyl_manuform/4x6 -km via
```
### Setting EE_hands to use either hands as master
## Bootloader
If you define `EE_HANDS` in your `config.h`, you will need to set the
EEPROM for the left and right halves.
Enter the bootloader in 3 ways:
The EEPROM is used to store whether the
half is left handed or right handed. This makes it so that the same firmware
file will run on both hands instead of having to flash left and right handed
versions of the firmware to each half. To flash the EEPROM file for the left
half run:
```
make handwired/dactyl_promicro:default:dfu-split-left
make handwired/dactyl_promicro:default:dfu-split-right
```
After you have flashed the EEPROM, you then need to set `EE_HANDS` in your config.h, rebuild the hex files and reflash.
Note that you need to program both halves, but you have the option of using
different keymaps for each half. You could program the left half with a QWERTY
layout and the right half with a Colemak layout using bootmagic's default layout option.
Then if you connect the left half to a computer by USB the keyboard will use QWERTY and Colemak when the
right half is connected.
## Notes on Using Pro Micro 3.3V
Do update the `F_CPU` parameter in `rules.mk` to `8000000` which reflects
the frequency on the 3.3V board.
Also, if the slave board is producing weird characters in certain columns,
update the following line in `matrix.c` to the following:
```
// wait_us(30); // without this wait read unstable value.
wait_us(300); // without this wait read unstable value.
```
* **Bootmagic reset**: If enabled, 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 or controller - some may have pads you must short instead
* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available

View File

@@ -33,8 +33,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Enables This makes it easier for fast typists to use dual-function keys */
#define PERMISSIVE_HOLD
#define RGBLED_NUM 12 // Number of LEDs
/*
* Feature disable options
* These options are also useful to firmware size reduction.

View File

@@ -16,6 +16,9 @@
"split": {
"soft_serial_pin": "D0"
},
"rgblight": {
"led_count": 12
},
"ws2812": {
"pin": "D3"
},

View File

@@ -1,5 +1,22 @@
#include QMK_KEYBOARD_H
/*
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/>.
*/
#include QMK_KEYBOARD_H
#define _QWERTY 0
#define _LOWER 1

View File

@@ -1,93 +1,30 @@
# Dactyl with Arduino Pro Micro
# Dactyl (Pro Micro)
See https://github.com/adereth/dactyl-keyboard for the original Version.
![Dactyl](https://i.imgur.com/a7uY1eSh.png)
This Dactyl uses the Arduino Pro Mirco (2x).
Wiring is a 6x6 Matrix like the [Dactyl Manuform](https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/dactyl_manuform)
A split body, concave shaped key well, columnar keyboard with a 6 key thumb cluster that takes inspiration from the Kinesis Advantage keyboard range. This rendition of the *Dactyl* requires two micro controllers rather than the [original implementation](/keyboards/handwired/dactyl/) of a micro controller and I/O expander.
* Keyboard Maintainer: [Matt Adereth](https://github.com/adereth)
* Hardware Supported: Pro Micro controller, or clones of
* Hardware Availability: [GitHub](https://github.com/adereth/dactyl-keyboard)
## Build the Firmware:
Make example for this keyboard (after setting up your build environment):
- Build the firmware with `make handwired/dactyl_promicro:<keymapname>`, for example `make handwired/dactyl:default`
- This will result in a hex file called `handwired_dactyl_promicro_<keymapname>.hex`, e.g.
`handwired_dactyl_promicro_default.hex`
make handwired/dactyl_promicro:default
How to setup your build enviroment can be found here: [Installing Build Tools](https://docs.qmk.fm/#/getting_started_build_tools)
Flashing example for this keyboard:
## Required Hardware
make handwired/dactyl_promicro:default:flash
Apart from diodes and key switches for the keyboard matrix in each half, you
will need:
* 2 Arduino Pro Micros. You can find these on AliExpress for ≈3.50USD each.
* 2 TRRS sockets and 1 TRRS cable, or 2 TRS sockets and 1 TRS cable
Alternatively, you can use any sort of cable and socket that has at least 3
wires. If you want to use I2C to communicate between halves, you will need a
cable with at least 4 wires and 2x 4.7kΩ pull-up resistors
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).
## Optional Hardware
A speaker can be hooked-up to either side to the `5` (`C6`) pin and `GND`, and turned on via `AUDIO_ENABLE`.
## Wiring
## Bootloader
The 3 wires of the TRS/TRRS cable need to connect GND, VCC, and digital pin 3 (i.e.
PD0 on the ATmega32u4) between the two Pro Micros.
Enter the bootloader in 2 ways:
Next, wire your key matrix to any of the remaining 17 IO pins of the pro micro
and modify the `matrix.c` accordingly.
The wiring for serial:
![serial wiring](https://i.imgur.com/C3D1GAQ.png)
The wiring for i2c:
![i2c wiring](https://i.imgur.com/Hbzhc6E.png)
The pull-up resistors may be placed on either half. It is also possible
to use 4 resistors and have the pull-ups in both halves, but this is
unnecessary in simple use cases.
You can change your configuration between serial and i2c by modifying your `config.h` file.
## Notes on Software Configuration
the keymaps in here are for the 4x5 layout of the keyboard only.
## Flashing
To flash your firmware take a look at: [Flashing Instructions and Bootloader Information](https://docs.qmk.fm/#/flashing).
Under Windows the most convenient way is installing the [QMK Drivers](https://github.com/qmk/qmk_driver_installer/releases) and use the [QMK Toolbox](https://github.com/qmk/qmk_toolbox/releases).
## Choosing which board to plug the USB cable into (choosing Master)
### Setting the right or left hand as master
If you always plug the usb cable into the right board, add an extra flag to your `config.h`
```
#define MASTER_RIGHT
```
OR
```
#define MASTER_LEFT
```
Notes on Using Pro Micro 3.3V
-----------------------------
Do update the `F_CPU` parameter in `rules.mk` to `8000000` which reflects
the frequency on the 3.3V board.
Also, if the slave board is producing weird characters in certain columns,
update the following line in `matrix.c` to the following:
```
// _delay_us(30); // without this wait read unstable value.
_delay_us(300); // without this wait read unstable value.
```
* **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 `QK_BOOT` if it is available

View File

@@ -24,9 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MOUSEKEY_MAX_SPEED 7
#define MOUSEKEY_WHEEL_DELAY 0
/* layer config */
#define TAPPING_TOGGLE 1
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE

View File

@@ -18,6 +18,9 @@
},
"processor": "atmega32u4",
"bootloader": "caterina",
"tapping": {
"toggle": 1
},
"layouts": {
"LAYOUT_6x6": {
"layout": [

View File

@@ -1,22 +0,0 @@
// Copyright 2022 bwprobably
// 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 TAP_CODE_DELAY 100

View File

@@ -28,6 +28,9 @@
{"pin_a": "D1", "pin_b": "D0"}
]
},
"qmk": {
"tap_keycode_delay": 100
},
"layouts": {
"LAYOUT": {
"layout": [

Some files were not shown because too many files have changed in this diff Show More