I use Gboard.
The main things I like about it are:
- Very customizable (I like having number row always visible, and having long press for symbols on each letter).
- Has gif support built in.
My biggest pain point is:
- It auto corrects words that are spelled correctly to other words. I type “our” and it changes to “out”, I recently typed “purpose” and it changed it to “purple”. Autocorrect is awesome and necessary, but I hate that it corrects words to other words and not just typos. I wish I could find a keyboard that has the things I like without this annoyance.
Am I looking for a unicorn? Let me know! 😄
It’s customizable, though you can’t, say, arbitrary drag keyboard keys around on an Android device. There are add-on layouts, and it’s possible to create those.
I don’t know what “GIF” support involves. It has some support for various Unicode emojis. If this is some sort of Android-native rich text field functionality to embed arbitrary image files, not that I’m aware of, but I may also just not use any apps that support it…I think all the apps I use may just edit regular text.
It does not support swiping, something that I don’t use but which some people do rely on.
The two most-significant things that it doesn’t do that I would like:
-
It does not have the ability to attach arbitrary macro text strings to a key (well, absent from creating a new keyboard, I suppose), something that I have wanted.
-
It doesn’t support the “drag on spacebar to move cursor in a text field” functionality that some Android software keyboards have.
Of the open-source keyboards, it’s the one that I find the best.
I believe – not in front of my device – that you can adjust the aggressiveness of text correction or disable it.
You can set it up to keep numbers visible.
I just don’t like correcting words into other words.
So, the normal way to deal with this – I don’t remember whether Gboard supports this, but I suspect it does, and Anysoft definitely does – is that autocorrecting keyboards don’t correct a word that they recognize as a word into another word. The thing is that they won’t recognize every word out there. So what you do is to create a “user dictionary”, and add your word to it. Then the keyboard knows that your brand name or technical term or whatever is a real word. With Anysoft, you see a list of corrections immediately above the keyboard, and you can tap on the word in its uncorrected form to add it to the user dictionary. You can go into the keyboard settings to view and delete or edit terms in the user dictionary. I don’t know about Gboard, whether this is an Android-wide convention or not, but with Anysoft, if you hit space after a word and get an unwanted correction, you can, before hitting any other keys, hit backspace and it’ll delete the space and revert the correction; you can then tap space again and continue with the uncorrected word, if you only want a single uncorrected word and don’t want to add it to your user dictionary.