This commit is contained in:
Arne Weiss
2023-04-29 10:30:10 +02:00
parent 51f0d71ace
commit aeabb667b4
10 changed files with 192 additions and 139 deletions

View File

@@ -71,11 +71,11 @@
{ "matrix": [3, 5], "x": 3, "y": 3 },
{ "matrix": [3, 1], "x": 0, "y": 4 },
{ "matrix": [7, 2], "x": 0, "y": 3 },
{ "matrix": [7, 3], "x": 1, "y": 3 },
{ "matrix": [7, 4], "x": 2, "y": 3 },
{ "matrix": [7, 5], "x": 3, "y": 3 },
{ "matrix": [7, 1], "x": 0, "y": 4 }
{ "matrix": [7, 4], "x": 0, "y": 3 },
{ "matrix": [7, 0], "x": 1, "y": 3 },
{ "matrix": [7, 1], "x": 2, "y": 3 },
{ "matrix": [7, 2], "x": 3, "y": 3 },
{ "matrix": [7, 3], "x": 0, "y": 4 }
]
}
}

View File

@@ -28,13 +28,10 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
* └───┴───┘
*/
[0] = LAYOUT_std(
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_F24,
KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_CAPS,
CAPSWRD, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH, KC_RSFT,
KC_LGUI, KC_LALT, KC_MINS, KC_EQL,
MO(1), KC_LSFT, KC_ENT, TD(0),
KC_LALT, KC_LSFT
RESET, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, MO(3), KC_NO,
KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_NO,
CAPSWRD, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH, KC_NO,
KC_LGUI, KC_LALT, MO(1), KC_LSFT, KC_NO, KC_NO, KC_SPACE,MO(2), KC_NO, KC_NO
),

View File

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

View File

@@ -8,7 +8,7 @@
"keymap": [
{
"name": "Dactyl Miniform",
"author": "Arne Weiß"
"author": "Arne Weiss"
},
[
{

View File

@@ -3,5 +3,5 @@
#VIAL_ENABLE = yes
#VIAL_INSECURE = yes
SPLIT_KEYBOARD = yes
CAPS_WORD_ENABLE = yes
CAPS_WORD_ENABLE = no
TAP_DANCE_ENABLE = yes

View File

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

View File

@@ -4,12 +4,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[0] = LAYOUT_std(
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_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, SH_TG,
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, TD(TD_UE),KC_Y, TT(3), KC_F24,
KC_ESC, TD(TD_AE),KC_R, TD(TD_SS),KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, TD(TD_OE),KC_CAPS,
KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_B, KC_J, KC_L, KC_U, KC_Y, TT(3), KC_F24,
KC_ESC, KC_A, KC_R, KC_S, KC_T, KC_G, KC_M, KC_N, KC_E, KC_I, KC_O, KC_CAPS,
CAPSWRD, KC_Z, KC_X, KC_C, KC_D, KC_V, KC_K, KC_H, KC_COMM, KC_DOT, KC_SLASH, TT(3),
KC_LGUI, KC_LALT, KC_MINS, KC_EQL,
MO(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(2),
OSL(1), KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, MO(2),
KC_LSFT, KC_LSFT, KC_RALT, KC_ENT
),
@@ -20,9 +20,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
_______, KC_ESC, KC_WH_U, KC_WBAK, KC_WFWD, KC_MS_U, KC_PGUP, KC_HOME, KC_UP, KC_END, KC_DEL, KC_ESC,
_______, KC_TAB, KC_WH_D, KC_LSFT, KC_LCTL, KC_MS_D, KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_BSPC, KC_MENU,
_______, KC_WH_L, KC_UNDO, KC_CUT, KC_COPY, C(S(KC_V)), KC_BTN1, KC_BTN2, KC_BTN3, KC_MS_L, KC_MS_R, KC_WH_R,
_______, _______, KC_0, KC_INS,
_______, _______, _______, _______,
_______, _______, _______, _______, _______, _______,
_______, _______, _______, KC_ENT, _______, _______,
_______, _______, _______, _______
),

View File

@@ -1,19 +1,83 @@
#include QMK_KEYBOARD_H
// Tap Dance declarations
enum {
TD_AE,
TD_OE,
TD_UE,
TD_SS,
// Custom keycodes
enum custom_keycodes {
CK_AE = SAFE_RANGE,
CK_OE,
CK_UE,
CK_SS,
};
// Tap Dance definitions
qk_tap_dance_action_t tap_dance_actions[] = {
[TD_AE] = ACTION_TAP_DANCE_DOUBLE(KC_A, RALT(KC_Q)),
[TD_OE] = ACTION_TAP_DANCE_DOUBLE(KC_O, RALT(KC_P)),
[TD_UE] = ACTION_TAP_DANCE_DOUBLE(KC_U, RALT(KC_Y)),
[TD_SS] = ACTION_TAP_DANCE_DOUBLE(KC_S, RALT(KC_S)),
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
static uint16_t key_timer;
switch (keycode) {
case CK_AE:
if (record->event.pressed) {
key_timer = timer_read();
register_code(KC_A);
} else {
unregister_code(KC_A);
if (timer_elapsed(key_timer) < TAPPING_TERM) {
tap_code(KC_A);
}
}
return false;
case CK_OE:
if (record->event.pressed) {
key_timer = timer_read();
register_code(KC_O);
} else {
unregister_code(KC_O);
if (timer_elapsed(key_timer) < TAPPING_TERM) {
tap_code(KC_O);
}
}
return false;
case CK_UE:
if (record->event.pressed) {
key_timer = timer_read();
register_code(KC_U);
} else {
unregister_code(KC_U);
if (timer_elapsed(key_timer) < TAPPING_TERM) {
tap_code(KC_U);
}
}
return false;
case CK_SS:
if (record->event.pressed) {
key_timer = timer_read();
register_code(KC_S);
} else {
unregister_code(KC_S);
if (timer_elapsed(key_timer) < TAPPING_TERM) {
tap_code(KC_S);
}
}
return false;
}
return true;
}
void matrix_scan_user(void) {
if (is_key_pressed(CK_AE) && timer_elapsed(key_timer) > TAPPING_TERM) {
unregister_code(KC_A);
register_code16(RALT(KC_Q));
}
if (is_key_pressed(CK_OE) && timer_elapsed(key_timer) > TAPPING_TERM) {
unregister_code(KC_O);
register_code16(RALT(KC_P));
}
if (is_key_pressed(CK_UE) && timer_elapsed(key_timer) > TAPPING_TERM) {
unregister_code(KC_U);
register_code16(RALT(KC_Y));
}
if (is_key_pressed(CK_SS) && timer_elapsed(key_timer) > TAPPING_TERM) {
unregister_code(KC_S);
register_code16(RALT(KC_S));
}
}
#include "../common_layout.c"