kmk_firmware icon indicating copy to clipboard operation
kmk_firmware copied to clipboard

Add auto shift on key hold similar to QMK's auto_shift

Open CupricReki opened this issue 2 years ago • 9 comments

Add the ability to hold a key for a predetermined time to send the shifted keypress.

https://docs.qmk.fm/#/feature_auto_shift

The feature could be improved upon by having the ability to control auto shift enabled by layer. For example, disabling autoshift on my gaming layer where I'll need to be holding keys without them being shift modified.

CupricReki avatar Dec 29 '22 18:12 CupricReki

I'd be interested in making this happen. I'll take a look tomorrow and see what all would be involved. Might be able to get this to work using existing modules. Might need a maintainers input as well.

doesntfazer avatar Dec 30 '22 04:12 doesntfazer

What did you find? Does it seem like it would be difficult to implement?

CupricReki avatar Jan 07 '23 18:01 CupricReki

What did you find? Does it seem like it would be difficult to implement?

It doesn't seem to be too difficult to implement. It's going to take me some time though. remodeling my basement at the moment and my computer stuff is put up right now. All I have is my work computer.

But also, I just realized when I got the email who this was. Just looked at your username, it took a minute for it to click, It's funny running into you here though after our heated discussion we had on discord lol.

doesntfazer avatar Jan 07 '23 18:01 doesntfazer

Either way I'll send you the PR when I'm done with it.

doesntfazer avatar Jan 07 '23 18:01 doesntfazer

So you can pretty much get the same functionality using modtap. These are the setting that I found worked the best to accommodate quick typing.

ASQ = KC.MT(KC.Q, KC.LSFT(KC.Q), prefer_hold=False, tap_interrupted=True, tap_time=180)
ASW = KC.MT(KC.W, KC.LSFT(KC.W), prefer_hold=False, tap_interrupted=True, tap_time=180)
ASE = KC.MT(KC.E, KC.LSFT(KC.E), prefer_hold=False, tap_interrupted=True, tap_time=180)

I am going to continue to work on a module that would do this. Although it will probably end up being a submodule to holdtap.

doesntfazer avatar Jan 07 '23 21:01 doesntfazer

With Autoshift enabled, KC.LT will not return to previous layer.

Autoshift should be AutoShift

KC.N0 - KC.N9 Should autoshift to symbols

Thanks for adding this module! Much appreciated.

CupricReki avatar Jun 13 '23 10:06 CupricReki

prefer_hold=False, tap_interrupted=True That is what I was searching for, Thanks👍

Boshimanu avatar Jun 16 '23 15:06 Boshimanu

It would be helpful if you could set if autoshift was enabled on symbols and/or numbers, like https://docs.qmk.fm/#/feature_auto_shift?id=auto_shift_symbols-predefined-key-group

dgvigil avatar Nov 30 '23 16:11 dgvigil

It would be helpful if you could set if autoshift was enabled on symbols and/or numbers, like https://docs.qmk.fm/#/feature_auto_shift?id=auto_shift_symbols-predefined-key-group

https://github.com/KMKfw/kmk_firmware/issues/665#issuecomment-1589050645

CupricReki avatar Nov 30 '23 17:11 CupricReki