Duh, chaining....

This commit is contained in:
Kyle Brown 2019-03-06 18:56:35 -08:00
parent a2cfa92f2f
commit 298f9489c2
4 changed files with 21 additions and 36 deletions

View File

@ -7,7 +7,7 @@ Just copy the example from New Keycode above your keymap and change KC.SOMETHING
After that, just use the new keycode anywhere in your keymap. After that, just use the new keycode anywhere in your keymap.
|New Keycode | Description | |New Keycode | Description |
|---------------------------------------------------------------|-----------------------------------------------------------------| |-------------------------------------------------------|-----------------------------------------------------------------|
|LCTL = KC.MT(KC.SOMETHING, KC.LCTRL) |`LCTRL` if held `kc` if tapped | |LCTL = KC.MT(KC.SOMETHING, KC.LCTRL) |`LCTRL` if held `kc` if tapped |
|LSFT = KC.MT(KC.SOMETHING, KC.LSFT) |`LSHIFT` if held `kc` if tapped | |LSFT = KC.MT(KC.SOMETHING, KC.LSFT) |`LSHIFT` if held `kc` if tapped |
|LALT = KC.MT(KC.SOMETHING, KC.LALT) |`LALT` if held `kc` if tapped | |LALT = KC.MT(KC.SOMETHING, KC.LALT) |`LALT` if held `kc` if tapped |
@ -16,11 +16,11 @@ After that, just use the new keycode anywhere in your keymap.
|RSFT = KC.MT(KC.SOMETHING, KC.RSFT) |`RSHIFT` if held `kc` if tapped | |RSFT = KC.MT(KC.SOMETHING, KC.RSFT) |`RSHIFT` if held `kc` if tapped |
|RALT = KC.MT(KC.SOMETHING, KC.RALT) |`RALT` if held `kc` if tapped | |RALT = KC.MT(KC.SOMETHING, KC.RALT) |`RALT` if held `kc` if tapped |
|RGUI = KC.MT(KC.SOMETHING, KC.RGUI) |`RGUI` if held `kc` if tapped | |RGUI = KC.MT(KC.SOMETHING, KC.RGUI) |`RGUI` if held `kc` if tapped |
|SGUI = KC.MT(KC.SOMETHING, KC.LSHFT, KC.LGUI) |`LSHIFT` and `LGUI` if held `kc` if tapped | |SGUI = KC.MT(KC.SOMETHING, KC.LSHFT(KC.LGUI)) |`LSHIFT` and `LGUI` if held `kc` if tapped |
|LCA = KC.MT(KC.SOMETHING, KC.LCTRL, KC.LALT) |`LCTRL` and `LALT` if held `kc` if tapped | |LCA = KC.MT(KC.SOMETHING, KC.LCTRL(KC.LALT)) |`LCTRL` and `LALT` if held `kc` if tapped |
|LCAG = KC.MT(KC.SOMETHING, KC.LCTRL, KC.LALT, KC.LGUI) |`LCTRL` and `LALT` and `LGUI` if held `kc` if tapped | |LCAG = KC.MT(KC.SOMETHING, KC.LCTRL(KC.LALT(KC.LGUI))) |`LCTRL` and `LALT` and `LGUI` if held `kc` if tapped |
|MEH = KC.MT(KC.SOMETHING, KC.LCTRL, KC.LSFT, KC.LALT) |`CTRL` and `LSHIFT` and `LALT` if held `kc` if tapped | |MEH = KC.MT(KC.SOMETHING, KC.LCTRL(KC.LSFT(KC.LALT))) |`CTRL` and `LSHIFT` and `LALT` if held `kc` if tapped |
|HYPR = KC.MT(KC.SOMETHING, KC.LCTRL, KC.LSFT, KC.LALT, KC.LGUI)|`LCTRL` and `LSHIFT` and `LALT` and `LGUI` if held `kc` if tapped| |HYPR = KC.MT(KC.SOMETHING, KC.HYPR) |`LCTRL` and `LSHIFT` and `LALT` and `LGUI` if held `kc` if tapped|
```python ```python
SHFT_HOME = KC.MT(KC.HOME, KC.LSFT) SHFT_HOME = KC.MT(KC.HOME, KC.LSFT)

View File

@ -3,13 +3,7 @@ from kmk.kmktime import ticks_diff, ticks_ms
def mt_pressed(key, state, *args, **kwargs): def mt_pressed(key, state, *args, **kwargs):
# Sets the timer start and acts like a modifier otherwise # Sets the timer start and acts like a modifier otherwise
state.keys_pressed.add(key.meta.mod1) state.keys_pressed.add(key.meta.mods)
if key.meta.mod2:
state.keys_pressed.add(key.meta.mod2)
if key.meta.mod3:
state.keys_pressed.add(key.meta.mod3)
if key.meta.mod4:
state.keys_pressed.add(key.meta.mod4)
state.start_time['mod_tap'] = ticks_ms() state.start_time['mod_tap'] = ticks_ms()
return state return state
@ -17,13 +11,7 @@ def mt_pressed(key, state, *args, **kwargs):
def mt_released(key, state, *args, **kwargs): def mt_released(key, state, *args, **kwargs):
# On keyup, check timer, and press key if needed. # On keyup, check timer, and press key if needed.
state.keys_pressed.discard(key.meta.mod1) state.keys_pressed.discard(key.meta.mods)
if key.meta.mod2:
state.keys_pressed.discard(key.meta.mod2)
if key.meta.mod3:
state.keys_pressed.discard(key.meta.mod3)
if key.meta.mod4:
state.keys_pressed.discard(key.meta.mod4)
timer_name = 'mod_tap' timer_name = 'mod_tap'
if state.start_time[timer_name] and ( if state.start_time[timer_name] and (
ticks_diff(ticks_ms(), state.start_time[timer_name]) < state.config.tap_time ticks_diff(ticks_ms(), state.start_time[timer_name]) < state.config.tap_time

View File

@ -679,11 +679,11 @@ make_argumented_key(
) )
def mod_tap_validator(kc, mod1=None, mod2=None, mod3=None, mod4=None): def mod_tap_validator(kc, mods=None):
''' '''
Validates that mod tap keys are correctly used Validates that mod tap keys are correctly used
''' '''
return ModTapKeyMeta(kc=kc, mod1=mod1, mod2=mod2, mod3=mod3, mod4=mod4) return ModTapKeyMeta(kc=kc, mods=mods)
# ModTap # ModTap

View File

@ -33,11 +33,8 @@ class LayerKeyMeta:
class ModTapKeyMeta: class ModTapKeyMeta:
def __init__(self, kc=None, mod1=None, mod2=None, mod3=None, mod4=None): def __init__(self, kc=None, mods=None):
self.mod1 = mod1 self.mods = mods
self.mod2 = mod2
self.mod3 = mod3
self.mod4 = mod4
self.kc = kc self.kc = kc