This commit is contained in:
parent
25f7499ecb
commit
88e81b81c9
|
@ -20,22 +20,14 @@
|
||||||
// enable NKRO by default
|
// enable NKRO by default
|
||||||
#define FORCE_NKRO
|
#define FORCE_NKRO
|
||||||
|
|
||||||
// many settings taken from https://github.com/getreuer/qmk-keymap
|
|
||||||
|
|
||||||
// don't confuse apps
|
|
||||||
#define TAP_CODE_DELAY 5
|
|
||||||
|
|
||||||
// home row mods
|
// home row mods
|
||||||
#define TAPPING_TERM 170
|
#define CHORDAL_HOLD
|
||||||
#define TAPPING_TERM_PER_KEY
|
|
||||||
#define PERMISSIVE_HOLD
|
#define PERMISSIVE_HOLD
|
||||||
|
#define TAPPING_TERM 250
|
||||||
|
|
||||||
// no auto repeat stuff
|
// no auto repeat stuff
|
||||||
#define QUICK_TAP_TERM 0
|
#define QUICK_TAP_TERM 0
|
||||||
|
|
||||||
// enable streak detection
|
|
||||||
#define ACHORDION_STREAK
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// underglow configuration
|
// underglow configuration
|
||||||
//
|
//
|
||||||
|
|
|
@ -89,65 +89,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// many settings taken from https://github.com/getreuer/qmk-keymap
|
|
||||||
|
|
||||||
uint16_t get_tapping_term(uint16_t keycode, keyrecord_t* record) {
|
|
||||||
switch (keycode) {
|
|
||||||
// slower for slow fingers
|
|
||||||
case CC_N:
|
|
||||||
case CC_S:
|
|
||||||
case CC_E:
|
|
||||||
case CC_I:
|
|
||||||
return TAPPING_TERM + 15;
|
|
||||||
default:
|
|
||||||
return TAPPING_TERM;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#include "features/achordion.h"
|
|
||||||
|
|
||||||
bool process_record_user(uint16_t keycode, keyrecord_t* record) {
|
|
||||||
if (!process_achordion(keycode, record)) { return false; }
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void matrix_scan_user(void) {
|
|
||||||
achordion_task();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool achordion_chord(uint16_t tap_hold_keycode,
|
|
||||||
keyrecord_t* tap_hold_record,
|
|
||||||
uint16_t other_keycode,
|
|
||||||
keyrecord_t* other_record) {
|
|
||||||
// follow the opposite hands rule.
|
|
||||||
return on_left_hand(tap_hold_record->event.key) !=
|
|
||||||
on_left_hand(other_record->event.key);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
uint16_t achordion_timeout(uint16_t tap_hold_keycode) {
|
|
||||||
switch (tap_hold_keycode) {
|
|
||||||
default:
|
|
||||||
return 800; // Use a timeout of 800 ms.
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
uint16_t achordion_streak_chord_timeout(
|
|
||||||
uint16_t tap_hold_keycode, uint16_t next_keycode) {
|
|
||||||
// Disable streak detection on LT keys.
|
|
||||||
if (IS_QK_LAYER_TAP(tap_hold_keycode)) {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Otherwise, tap_hold_keycode is a mod-tap key.
|
|
||||||
const uint8_t mod = mod_config(QK_MOD_TAP_GET_MODS(tap_hold_keycode));
|
|
||||||
if ((mod & (MOD_LSFT | MOD_RSFT)) != 0) {
|
|
||||||
return 100; // A short streak timeout for Shift mod-tap keys.
|
|
||||||
} else {
|
|
||||||
return 220; // A longer timeout otherwise.
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef NO_LED
|
#ifndef NO_LED
|
||||||
|
|
||||||
void keyboard_post_init_user(void) {
|
void keyboard_post_init_user(void) {
|
||||||
|
|
|
@ -5,10 +5,9 @@
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
// Returns true if `pos` on the left hand of the keyboard, false if right.
|
char chordal_hold_handedness_user(keypos_t key)
|
||||||
static bool on_left_hand(keypos_t pos)
|
|
||||||
{
|
{
|
||||||
return pos.row < MATRIX_ROWS / 2;
|
return (key.row < MATRIX_ROWS / 2) ? 'L' : 'R';
|
||||||
}
|
}
|
||||||
|
|
||||||
// layout helper macro, we just use 42 keys
|
// layout helper macro, we just use 42 keys
|
||||||
|
|
|
@ -5,10 +5,9 @@
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
// Returns true if `pos` on the left hand of the keyboard, false if right.
|
char chordal_hold_handedness_user(keypos_t key)
|
||||||
static bool on_left_hand(keypos_t pos)
|
|
||||||
{
|
{
|
||||||
return pos.row < MATRIX_ROWS / 2;
|
return (key.row < MATRIX_ROWS / 2) ? 'L' : 'R';
|
||||||
}
|
}
|
||||||
|
|
||||||
// layout helper macro, we just use 42 keys
|
// layout helper macro, we just use 42 keys
|
||||||
|
|
|
@ -5,10 +5,9 @@
|
||||||
|
|
||||||
#include QMK_KEYBOARD_H
|
#include QMK_KEYBOARD_H
|
||||||
|
|
||||||
// Returns true if `pos` on the left hand of the keyboard, false if right.
|
char chordal_hold_handedness_user(keypos_t key)
|
||||||
static bool on_left_hand(keypos_t pos)
|
|
||||||
{
|
{
|
||||||
return (pos.row < 3) || (pos.row == 3 && pos.col < 3) || (pos.row == 7 && pos.col > 2);
|
return ((key.row < 3) || (key.row == 3 && key.col < 3) || (key.row == 7 && key.col > 2)) ? 'L' : 'R';
|
||||||
}
|
}
|
||||||
|
|
||||||
// layout helper macro, we just use 42 keys
|
// layout helper macro, we just use 42 keys
|
||||||
|
|
Loading…
Reference in a new issue