Skip to content
Helium314 edited this page Jan 13, 2025 · 8 revisions

Add a dictionary

First download the dictionary file, e.g. from here. Then go to language settings, click on the language, then on + next to dictionary the add and select the file. Alternatively you can open a .dict file in a file explorer with HeliBoard and then select the language. Note that the latter method does not work with all file explorers.

Unwanted words are suggested

A simple way is removing the suggestion by long-pressing the suggestion and then tapping the bin icon. This will remove words from personal and history dictionaries, and add them to an internal blacklist in case they are in contacts or main dictionaries. In case you want to investigate where the words are coming from, you can enable debug settings by first pressing the version number in About several times, and then go to Advanced -> Debug settings. Here you can dump dictionary contents to log output (use a log tool or save the logs in About), and you can enable Debug mode. When you long press a suggestion twice when in debug mode, you will get a popup informing you from which dictionary (type and langauge) the suggestion is coming. You can have up to 4 dictionary types:

  • main: this can be an internal dictionary bundled with the app, or use-provided dictionary (see above).
  • history: contains words typed by the user, including next-word data. This dictionary is not filled in incognito mode, and will be deleted when disabling personalised suggestions. When using multilingual typing, the user history dictionary may occasionally add words to the wrong language.
  • personal (user) dictionary: device dictionary where users can add words. You can manage the words in device settings -> System -> Langauges & input -> Personal dictionary, or in HeliBoard -> Text correction -> Personal dictionary. Optionally you can let HeliBoard automatically add words to the personal dictionary. Words are added when they are not in the main dictionary, and they are in the history dictionary with a certain internal frequency value (i.e. you are repeatedly typing the same word).
  • contacts dictionary: this dictionary contains names of your contacts. It's disabled by default.

Emoji search

You can get addon dictionaries for emoji suggestions in the dictionaries repo. An actual search function does not exist yet.

Cannot switch / choose layout

This is only possible when use system languages is disabled. You can select the layout when tapping on the language.

How to customize layout

Go to layout selection and use the + button, then you can add a custom layout, either from a file or you can copy and edit an existing layout.

No suggestions for some language

Check dictionaries repo whether a dictionary is available. If there is one, download it and add it in the language settings for this language.

No suggestions in some app / text field

This app respects the no suggestions flag set by some input fields, i.e. the developer does not want you to see suggestions here. Best do in issue report for that app if you think this behavior is wrong. Alternatively you can enable the always show suggestions setting that overrides the no suggestions flag.

Missing or unwanted autocorrect

You can tune the autocorrect confidence, i.e. how likey autocorrect will kick in, in Text correction settings. With the More auto-correction setting you can enable autocorrect in text fields where autocorrection might not be wanted, like mail addresses.

Multilingual typing (type in multiple languages without switching manually)

Go to Languages & Layouts, select the main language, and tap the + button next to multilingual typing to add a language. Note that the selection is limited to languages with the same script as the main language, and to languages that have a dictionary. So if you want e.g. Finnish as secondary language, first go to Finnish in Languages & Layouts and add a dictionary.

How to enable glide typing

There is no glide typing built into this app, but you can load compatible libraries: Go to advanced settings -> load gesture typing library and point to a file (setting not available in nouserlib version). You can extract the file from GApps packages ("swypelibs"), or download one here. Make sure to use the correct version (app will tell you in the dialog to load the library).

Glide typing is not working after loading a library

Possibly the download was corrupted, or you downloaded the wrong file. If you get a "unknown file" confirmation popup, it is likely you are not using the correct file (or you might be using a different version of the library). In rare cases, there might be crashes when the file is not in internal storage, or some Samsung-specific problems.

German layout with / without umlauts

German (Germany) layout has umlauts, German layout doesn't

Enable / disable / change the spell checker (red underlined words)

You can set the spell checker in System (not HeliBoard) Settings -> System -> Languages -> Advanced -> Spell Checker. The exact location may vary, with exact Android version. Here you can set the app doing the spell check, and the language to check. Note that HeliBoard spell checker ignores the selected language, and instead uses whatever keyboard langauges are currently active (including secondary languages when using multilingual typing).

Spell checker is not checking all languages in multilingual typing

Make sure you actually enabled HeliBoard spell checker (see above).

Words added to Gboard dictionary are not suggested

Gboard uses its own dictionary instead of the system's personal dictionary. See here for how to export the words.

What is <word> from settings?

  • Layout: typically refers to the letters / letter arrangement on the keyboard without special keys like shift or space, but there are also other layouts
  • Popup (key): additional keys shown on long press
    • Pop-up on key press: short preview popups when you press a key
  • Hint: Symbol on top right of a key indicating one of the popup keys
  • Functional hint: ... indicator on bottom right of the key indicating special functionality
  • Style: general look of the keys, font, and icons
  • Toolbar: the bar on top of the keyboard that shows some buttons/keys instead of suggestions.
  • Pinned toolbar key: toolbar key that is also shown on "normal" suggestion strip.
  • Gesture typing: type by sliding through the letters. Also known as glide typing, swipe typing, swyping, and other words.
  • Floating preview: preview of the current gesture typing word shown above the finger.
  • Rapid typing cooldown: time during which gesture typing is blocked after a key tap.

What is the nouserlib version?

The normal version (release) allows the user to provide a library for glide typing, while the nouserlib version does not. Running code that isn't supplied with the app is dynamic code loading, which is a security risk. Android Studio warns about this:

Dynamically loading code from locations other than the application's library directory or the Android platform's built-in library directories is dangerous, as there is an increased risk that the code could have been tampered with. Applications should use loadLibrary when possible, which provides increased assurance that libraries are loaded from one of these safer locations. Application developers should use the features of their development environment to place application native libraries into the lib directory of their compiled APKs.

The app checks the SHA256 checksum of the library and warns the user if it doesn't match with known library versions. A mismatch indicates the library was modified, but may also occur if the user intentionally provides a different library than expected (e.g. a self-built variant). Note that if the the app is installed as a system app, both versions have access to the system glide typing library (if it is installed).

App crashing when using as system app

This happens if you do not install the app, but just copy the APK. Then the app's own library is not extracted from the APK, and not accessible to the app. You will need to either install the app over itself, or provide a library.

Where on disk are the files stored (when having root access)

Starting at Android 7, some files and the main shared preferences file are not in the default location, because the app is using device protected storage. This is necessary so the settings and layout files can be read before the device is unlocked, e.g. at boot. The files are usually located in /data/user_de/0/<package_id>/, though the location may depend on the device and Android version.