Duh, chaining....

This commit is contained in:
Kyle Brown committed 2019-03-12 00:24:48 -07:00
1 parent a2cfa92f2f
commit 298f9489c2
4 files changed
+21 -36

No files matched your search

+15 -15
View File
@@ -6,21 +6,21 @@ One key if you tap it, one or more modifiers if you hold it!
Just copy the example from New Keycode above your keymap and change KC.SOMETHING to the key that you want when tapped.
After that, just use the new keycode anywhere in your keymap.
|New Keycode | Description |
|---------------------------------------------------------------|-----------------------------------------------------------------|
|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 |
|LALT = KC.MT(KC.SOMETHING, KC.LALT) |`LALT` if held `kc` if tapped |
|LGUI = KC.MT(KC.SOMETHING, KC.LGUI) |`LGUI` if held `kc` if tapped |
|RCTL = KC.MT(KC.SOMETHING, KC.RCTRL) |`RCTRL` 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 |
|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 |
|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 |
|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|
|New Keycode | Description |
|-------------------------------------------------------|-----------------------------------------------------------------|
|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 |
|LALT = KC.MT(KC.SOMETHING, KC.LALT) |`LALT` if held `kc` if tapped |
|LGUI = KC.MT(KC.SOMETHING, KC.LGUI) |`LGUI` if held `kc` if tapped |
|RCTL = KC.MT(KC.SOMETHING, KC.RCTRL) |`RCTRL` 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 |
|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 |
|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 |
|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.HYPR) |`LCTRL` and `LSHIFT` and `LALT` and `LGUI` if held `kc` if tapped|
```python
SHFT_HOME = KC.MT(KC.HOME, KC.LSFT)
+2 -14
View File
@@ -3,13 +3,7 @@ from kmk.kmktime import ticks_diff, ticks_ms
def mt_pressed(key, state, *args, **kwargs):
# Sets the timer start and acts like a modifier otherwise
state.keys_pressed.add(key.meta.mod1)
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.keys_pressed.add(key.meta.mods)
state.start_time['mod_tap'] = ticks_ms()
return state
@@ -17,13 +11,7 @@ def mt_pressed(key, state, *args, **kwargs):
def mt_released(key, state, *args, **kwargs):
# On keyup, check timer, and press key if needed.
state.keys_pressed.discard(key.meta.mod1)
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)
state.keys_pressed.discard(key.meta.mods)
timer_name = 'mod_tap'
if state.start_time[timer_name] and (
ticks_diff(ticks_ms(), state.start_time[timer_name]) < state.config.tap_time
+2 -2
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
'''
return ModTapKeyMeta(kc=kc, mod1=mod1, mod2=mod2, mod3=mod3, mod4=mod4)
return ModTapKeyMeta(kc=kc, mods=mods)
# ModTap
+2 -5
View File
@@ -33,11 +33,8 @@ class LayerKeyMeta:
class ModTapKeyMeta:
def __init__(self, kc=None, mod1=None, mod2=None, mod3=None, mod4=None):
self.mod1 = mod1
self.mod2 = mod2
self.mod3 = mod3
self.mod4 = mod4
def __init__(self, kc=None, mods=None):
self.mods = mods
self.kc = kc