nightkr / flickboard

Flicking keyboard for Android
GNU Affero General Public License v3.0
112 stars 21 forks source link

Repeated actions on hold #17

Open MisterE123 opened 7 months ago

MisterE123 commented 7 months ago

If I circle around the backspace key, it currently deletes one word. That's good. However, if after circling around backspace, I hold my finger on backspace, it should wait a moment, and then start deleting entire words until I stop holding.

The same should apply to pressing and holding the backspace key (repeated single character deletion), space, and the movement guestures

nightkr commented 7 months ago

Space navigation is already covered by the fast actions system. We could enable the same thing for backspace, but that would conflict with the circle gesture.. :/

MisterE123 commented 7 months ago

Specifically, the issue is for repeated actions when a gesture is held (the finger does not lift after the gesture) for a second

MisterE123 commented 6 months ago

The fast actions system is... annoying, for me personally. I prefer the precise navigation controls that messagease provided (that are mostly implemented by flickboard with fast actions disabled): Swipe on spacebar for "move cursor 1 character" and back-forth swipe to "move 1 word".

With fast actions disabled, it would be nice to implement repeated actions on hold.

The feature request is as follows:

All with fast actions disabled:

swipe on spacebar, then do not lift finger: causes the keyboard to wait 1 second, then begin to move the cursor in the direction of the swipe, slowly at first, and after 3 seconds, faster

back-forth swipe on spacebar, then do not lift finger: does the same as above, but moves the cursor by entire words at a time.

Swipe on backspace key, then do not lift finger: same as moving the cursor on the spacebar, but deletes the character. Waits a second, then moves slowly, then moves faster.

Circle on backspace key, then do not lift finger: Deletes entire words in the same manner as the "Back-forth swipe on spacebar"

Consider adding similar functionality to the up and down arrows

MisterE123 commented 6 months ago

Perhaps the movement options should be in a dropdown, and you can select one of:

nightkr commented 6 months ago

I'm not saying you're wrong or that this doesn't have value, I'm just not quite sure how "wait to release at the precise right moment" (especially when the timing changes after a while as you propose) is more precise than "drag as far as you desire" (letting you adjust the speed dynamically by.. changing how fast you move). Especially when, in the latter case, correcting your mistake is a matter of just moving back slightly, as opposed to having to start a whole new gesture in the other direction.

Maybe I'm missing something. I probably am. But I'd rather understand the problem domain better and people's problems with the current solutions before implementing another 500 modes.

MisterE123 commented 6 months ago

I'm not saying you're wrong or that this doesn't have value, I'm just not quite sure how "wait to release at the precise right moment" (especially when the timing changes after a while as you propose) is more precise than "drag as far as you desire" (letting you adjust the speed dynamically by.. changing how fast you move). Especially when, in the latter case, correcting your mistake is a matter of just moving back slightly, as opposed to having to start a whole new gesture in the other direction.

Maybe I'm missing something. I probably am. But I'd rather understand the problem domain better and people's problems with the current solutions before implementing another 500 modes.

Thanks for clarifying, yes, I see that I wasn't clear.

In general, I like to have the precise control of "1 swipe == 1 space" and "1 back-forth-swipe == 1 word"

However, sometimes I do not care about precision (not as often as I do care). In those cases, I just want to move. The gesture-then-hold input allows me to have imprecise movement when I need it, but retain the precise control for the majority of uses.

So you are correct, the gesture-then-hold is not more precise than the fast-keys gesture, but it has the advantage of not preventing/overriding the precise gestures. Personally, I would rather have access to the precise gestures than have only imprecise gestures, if forced to choose.

MisterE123 commented 6 months ago

Also, I find it difficult to adjust my finger's position for a fine-tuned control of where the cursor is... whether I adjust the position by dragging the cursor in the system UI, or by dragging my finger on the spacebar/backspace key.

I much prefer the idea of one action = one input, for the most part. But sometimes I do want to have imprecise input ... but not at the expense of disabling precise input control.

MisterE123 commented 6 months ago

One important feedback feature was that there was a vibration whenever any "repeated action" occured, so you could feel how many times the action had occured so far

nightkr commented 6 months ago

What do you think about an option like "only enable fast actions in shift mode" or "only enable fast actions on numpad side"?

MisterE123 commented 6 months ago

I don't like shift because it's not predictable (you can't enable it and then expect it to stay on) ... but the numpad idea might work.

One concern is that for moving or deleting entire words at a time, I could know that 3 vibrations meant 3 words exactly, and still have somewhat precise control, (feeling the feedback) whereas with fast actions ... I do not have access to moving or erasing entire words at once at all.

The other concern is that with repeated actions on hold, the user input is a function of time (length of hold, with number of vibrations as feedback), whereas with fast-keys, the user input is a function of space (distance swiped, also with number of vibrations as feedback). I find the time-based input easier to control.

Anyhow, its not a big deal either way.

Crazy-Unicooorn commented 6 months ago

I want to comment a problem that I have, seems related and should add more context:

I'm used to the Samsung keyboard, where I would long press on the backspace key to delete whole words/sentences…

I do this machinally, it's natural, but with flickboard long pressing does nothing and I find myself having to press repeatedly on the backspace, one character at a time.

It sounds like the fast actions offers a similar solution, but how, as a user, am I supposed to know what to do? Even me, who knows about the existence of fast actions and follows the GitHub, I have no clue what they are and what's a way to delete whole sentences…

At least here I learn that I can circle around the backspace to delete a whole word, which is a good start! But is something I would have never guessed…

MisterE123 commented 6 months ago

I want to comment a problem that I have, seems related and should add more context:

I'm used to the Samsung keyboard, where I would long press on the backspace key to delete whole words/sentences…

I do this machinally, it's natural, but with flickboard long pressing does nothing and I find myself having to press repeatedly on the backspace, one character at a time.

It sounds like the fast actions offers a similar solution, but how, as a user, am I supposed to know what to do? Even me, who knows about the existence of fast actions and follows the GitHub, I have no clue what they are and what's a way to delete whole sentences…

At least here I learn that I can circle around the backspace to delete a whole word, which is a good start! But is something I would have never guessed…

yeah, A tutorial would be good. You can also swipe back and forth on the spacebar to move the cursor an entire word, and circle from any center letter to capitalize it, or swipe towards any edge letter, and return to the center to capitalize the edge letter. To delete an entire sentence, circle up and around from the clipboard key to select the entire text… then you can delete it with the backspace.