Skip to content

Add additional swipe mode - actions on swipe (i.e. Fleksy mode)#1898

Open
ndom91 wants to merge 25 commits intofuto-org:masterfrom
ndom91:fleksy-swipe-mode
Open

Add additional swipe mode - actions on swipe (i.e. Fleksy mode)#1898
ndom91 wants to merge 25 commits intofuto-org:masterfrom
ndom91:fleksy-swipe-mode

Conversation

@ndom91
Copy link

@ndom91 ndom91 commented Feb 22, 2026

  • Closes Add More Swiping Gestures to Keyboard #1065
  • Modify's swipe settings to be an enum with 2 options (mutually exclusive) + Disabled
    • Pre-existing "Swipe Typing" mode
    • New "Swipe Actions" mode
  • The new "Swipe Actions" mode basically copies the Fleksy behaviour which means:
    • Swipe Up: Move auto-suggestion back 1
    • Swipe Down: Move auto-suggestion forward 1
    • Swipe Back: Backspace character / word
    • Swipe Forward: Apply suggestion / space / punctuation
  • Keeps a cache of the auto-suggestions from previous word, because swiping up/down (even after a space) should swipe through the suggestions of the previous word, not through "the next word in the sentence" suggested after the previously finished word.
  • Works best with / emulates Flesky feeling best with:
    • "Automatic Spaces Mode" set to disabled
    • Long press delay reduced from 300ms -> 100ms and/or disable all of those long press key options if you're not using them anyway.
  • Refactored the automatic spaces mode dropdown a tiny bit to use a native dropdown instead of the "inline" dropdown that would cause large layout shifts with a slightly awkward animation when opening/closing - hope thats alright!
  • Added support for subtitles to the SettingsRadio component for this new settings section.
  • I've signed the CLA
  • This PR was created with the help of AI

Question:

  1. What's the best way update the translations for the new strings? (I'm happy to update these for my new strings, just don't know where to make the change - via https://i18n-keyboard.futo.org/?)
  2. What should I do with the KeyboardTextsTable.java changes that seem to keep automatically happening? Can I ignore those? They seem to just be shifting things around in the file and not making any actual changes
CleanShot 2026-02-22 at 13 01 19

@magvag
Copy link

magvag commented Feb 22, 2026

Really excited to see this merged.

A UI suggestion: it's best to use radio buttons for mutually exclusive options. Maybe something like

Swipe input

  • Swipe typing
  • Swipe actions
  • Disabled

@ndom91
Copy link
Author

ndom91 commented Feb 22, 2026

Really excited to see this merged.

A UI suggestion: it's best to use radio buttons for mutually exclusive options. Maybe something like

Swipe input

  • Swipe typing
  • Swipe actions
  • Disabled

Yeah good shout - let me update this

@Zvonimir-FUTO Zvonimir-FUTO added Enhancement Request for a new feature UI/UX labels Feb 23, 2026
@magvag
Copy link

magvag commented Mar 4, 2026

@ndom91 hi! since it may take a while to be merged, would you mind sharing the APK for your branch? I’d love to use this feature and report any bugs, but no particular interest in installing the tools to build it :)

@ndom91
Copy link
Author

ndom91 commented Mar 8, 2026

@magvag no problem. Let me know if there's anything you think we should tweak. I've been daily-driving it since opening this PR and am pretty happy with it at this point.

Recommended "Keyboard & Typing" settings to emulate Fleksy behaviour include:

  • Swipe mode: "Swipe Actions (alpha)" (required to enable this at all)
  • "Automatic Spaces Mode" disabled
  • "Long press keys" -> delay reduced from 300ms -> 100ms and disable all of those long press key options if you're not using them.
    • Not strictly necessary, but significantly helped me feel like I was getting closer to the typing speed I had with Fleksy
  • "Undo autocorrect on backspace" disabled
  • "Double space full stop" enabled

Apk can be found on my gdrive here: https://drive.google.com/file/d/1U04Gr2siSExq_0H-rmcYY_TZK5RiWsXE/view?usp=sharing

@magvag
Copy link

magvag commented Mar 8, 2026

@ndom91 thanks! so far so good, will come back with feedback later!

@magvag
Copy link

magvag commented Mar 8, 2026

first bug! horizontal swiping on space bar should be a separate zone with its own triggers. right now both swiping and long pressing do not work as language switcher and cursor mover.

edit: same goes for swipes from backspace, not sure it should be addressed.

@magvag
Copy link

magvag commented Mar 8, 2026

2: a swipe to the left removes spaces as a separate instance. e.g. "two words" will require 3 swipes to remove.

3: a swipe up to restore original spelling makes the cursor go wild. if you swipe up in the middle of some paragraph, the cursor ends up glued to the start of a next word. If you swipe in the end of that paragraph, cursor jumps to the next line.

4: swiping up past original spelling of the last word starts spamming next word suggestions (or is it the end of the list of autocorrection suggestions?)

5: currently the swipe to the left feels like "selecting a word manually and removing it". I can even see the blue highlighter and it feels rather slow on my low-ish end device. Would be easier to just reuse the logic under the "Backspace behaviour while holding or swiping: delete whole words" setting (will solve bug №2 as well)

if you are feeling like making a whole new feature, an "Add/remove last word to personal dictionary" action PR would be terrific. Currently it's very cumbersome to add words to dictionary since it requires going into settings. And with this functionality it would be trivial to replicate Fleksy behaviour of adding or removing words to dictionary with a swipe up (bug №4)

overall thanks for your marvellous contribution. if you need reproduction steps or videos, I'll be glad to make them

@magvag
Copy link

magvag commented Mar 8, 2026

  1. moving cursor on another word and swiping up/down will replace this word with a correction for the last typed word. e.g. type "well hellp", move cursor on "well" and swipe down – resulting text is "hello hellp"

If you look how Fleksy manages swipe corrections, you will see that it stores suggestions and original spelling for every word in a typed (in one session) text block, so if you move you cursor to another word, you will see its state and corrections. Having this type of structure is a fundamental change, might not be mergeable – but at the very least the swipe correction should be disabled if the word under/before it is not the target one

@ndom91
Copy link
Author

ndom91 commented Mar 9, 2026

Amazing, thanks for the detailed feedback! I'll try to knock some of the low hanging fruit ones out this week and come back with a more detailed response when I have a bit more time 🙏

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA-signed Enhancement Request for a new feature UI/UX

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add More Swiping Gestures to Keyboard

3 participants