-
-
Notifications
You must be signed in to change notification settings - Fork 40.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Auto Shift: emit holding key before release #7048
Comments
What do you want exactly to be done? As you've resolved the problem already from what I can see, what else do you have on your mind? Would you like a single #define to turn that functionality on or off? |
Yes, something like AUTO_SHIFT_TIMEOUT and NO_AUTO_SHIFT_SPECIAL. |
I have just finally decided to give Auto-Shift a try and found it weird that I have to release the key for the shifted character to appear. It makes me hold the desired key artificially longer than I probably have to because I want to make sure I'm holding it long enough. From what I can see there's no real reason for Auto Shift to wait for release of the key, so in my opinion it should be the default behavior that the shifted key appears as soon as AUTO_SHIFT_TIMOUT is reached. |
It may be more complicated, but I think the flush should just register the keycode. Let the process_record_user function handle the upstroke. Or you have the same issue. |
This issue has been automatically marked as stale because it has not had activity in the last 90 days. It will be closed in the next 30 days unless it is tagged properly or other activity occurs. |
I'd still really like for this to be addressed, so please don't close this stale bot 🙂 |
I've been using the solution suggested by OP for a few weeks now and it's been working perfectly fine so far. In my opinion this is the way AutoShift should be working. Anything I'm missing? |
@drashna What do you mean 'you have the same issue'? If you mean the physical upstroke, that would cause keyrepeat to occur for shifted keycodes, but either way that's not how AutoShift currently works. |
+1 to not sending |
Instead of waiting for the next record to tap the autoshiftable key, expose a matrix_scan function that will check the timeout and register the key immediately if the timeout period has elapsed. This means the user gets immediate feedback about their press and doesn't have to guess whether it's been long enough. Additionally, don't unregister the keypress immediately. This means that auto-shifted keys can be held down. Fixes qmk#7048
Instead of waiting for the next record to tap the autoshiftable key, expose a matrix_scan function that will check the timeout and register the key immediately if the timeout period has elapsed. This means the user gets immediate feedback about their press and doesn't have to guess whether it's been long enough. Additionally, don't unregister the keypress immediately. This means that auto-shifted keys can be held down. Fixes qmk#7048
This issue has been automatically marked as stale because it has not had activity in the last 90 days. It will be closed in the next 30 days unless it is tagged properly or other activity occurs. |
!stale - waiting for maintainers to look at the PR (though I've given up keeping in sync with qmk_firmware/develop until someone is actually looking). |
Looks like change have been approved. Any eta when this Will get merged? |
FWIW, I've rebased the PR on develop again, so it should apply cleanly. Still waiting for the QMK collaborators to merge it, perhaps @noroadsleft can give an ETA. @IsaacElenbaas - any chance you can test in the meantime? The rebase had a bunch of conflicts (not 100% confident I merged them all right) and it's been a while since we manually tested anyway. |
I should have some free time today to go through edge cases. I used the custom shifts branch, |
|
Everything I can think to test works. Only things I think could even be addressed before it's merged is the define names. |
Okay, I've removed
Yep, we should keep
Which preprocessor names would you change? |
Personally I think they're all fine, but you had suggested merging |
Instead of waiting for the next record to tap the autoshiftable key, expose a matrix_scan function that will check the timeout and register the key immediately if the timeout period has elapsed. This means the user gets immediate feedback about their press and doesn't have to guess whether it's been long enough. Additionally, don't unregister the keypress immediately. This means that auto-shifted keys can be held down. Removes the 'autoshift_on' function (which had external linkage but was not exposed in the header). Fixes qmk#7048
Fixes #7048. Co-authored-by: IsaacElenbaas <[email protected]>
Closing, apparently #9826 has resolved this. |
Fixes qmk#7048. Co-authored-by: IsaacElenbaas <[email protected]>
Feature Request Type
Description
Currently, Auto Shift didn't send the capital char to screen until the key released. If we do it once taping-time-out, users will get a feedback that they do the long pressing successfully. That's also the holding processing strategy in Tap Dance.
That can be done with a timing key-flushing task. Here's my solution:
It would be better if someone could turn it into a simple configurable switch.
The text was updated successfully, but these errors were encountered: