HeliBoard is a privacy-conscious and customizable open-source keyboard, based on AOSP / OpenBoard. Does not use internet permission, and thus is 100% offline.
- Add dictionaries for suggestions and spell check
- build your own, or get them here, or in the experimental section (quality may vary)
- additional dictionaries for emojis or scientific symbols can be used to provide suggestions (similar to “emoji search”)
- note that for Korean layouts, suggestions only work using this dictionary, the tools in the dictionary repository are not able to create working dictionaries
- can follow the system’s day/night setting on Android 10+ (and on some versions of Android 9)
- can follow dynamic colors for Android 12+
- library not included in the app, as there is no compatible open source library available
- can be extracted from GApps packages (“swypelibs“), or downloaded here (click on the file and then “raw” or the tiny download button)
For FAQ and more information about the app and features, please visit the wiki
Whether you encountered a bug, or want to see a new feature in HeliBoard, you can contribute to the project by opening a new issue here. Your help is always welcome!
Before opening a new issue, be sure to check the following:
- Does the issue already exist? Make sure a similar issue has not been reported by browsing existing issues. Please search open and closed issues.
- Is the issue still relevant? Make sure your issue is not already fixed in the latest version of HeliBoard.
- Is it a single topic? If you want to suggest multiple things, open multiple issues.
- Did you use the issue template? It is important to make life of our kind contributors easier by avoiding issues that miss key information to their resolution. Note that issues that that ignore part of the issue template will likely get treated with very low priority, as often they are needlessly hard to read or understand (e.g. huge screenshots, not providing a proper description, or addressing multiple topics). Blatant violation of the guidelines may result in the issue getting closed.
If you’re interested, you can read the following useful text about effective bug reporting (a bit longer read): https://www.chiark.greenend.org.uk/~sgtatham/bugs.html
Translations can be added using Weblate. You will need an account to update translations and add languages. Add the language you want to translate to in Languages -> Manage translated languages in the top menu bar. Updating translations in a PR will not be accepted, as it may cause conflicts with Weblate translations.
Some notes on translations
- when translating metadata, translating the changelogs is rather useless. It’s available as it was requested by translators.
- the
hidden_features_message
is horrible to translate with Weblate, and serves little benefit as it’s just a copy of what’s already in the wiki: https://github.com/Helium314/HeliBoard/wiki/Hidden-functionality. It’s been made available in the app on user request/contribution.
You can share your themes, layouts and dictionaries with other people:
- Themes can be saved and loaded using the menu on top-right in the adjust colors screen
- You can share custom colors in a separate discussion section
- Custom keyboard layouts are text files whose content you can edit, copy and share
- this applies to main keyboard layouts and to special layouts adjustable in advanced settings
- see layouts.md for details
- You can share custom layouts in a separate discussion section
- Creating dictionaries is a little more work
- first you will need a wordlist, as described here and in the repository readme
- the you need to compile the dictionary using external tools
- the resulting file (and ideally the wordlist too) can be shared with other users
- note that there will not be any further dictionaries added to this app, but you can add dictionaries to the dictionaries repository
Planned features and improvements:
- Improve support for modifier keys (alt, ctrl, meta and fn), some ideas:
- keep modifier keys on with long press
- keep modifier keys on until the next key press
- use sliding input
- Less complicated addition of new keyboard languages (e.g. #519)
- Additional and customizable key swipe functionality
- Some functionality will not be possible when using glide typing
- Add and enable emoji dictionaries by default (if available for language)
- Clearer / more intuitive arrangement of settings
- Maybe hide some less used settings by default (similar to color customization)
- Make use of the
.com
key in URL fields (currently only available for tablets)- With language-dependent TLDs
- Bug fixes
What will not be added:
- Dictionaries for more languages (you can still download them)
- Anything that requires additional permissions, unless there is a very good reason
HeliBoard (as a fork of OpenBoard) is licensed under GNU General Public License v3.0.
Permissions of this strong copyleft license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license. Copyright and license notices must be preserved. Contributors provide an express grant of patent rights.
See repo’s LICENSE file.
Since the app is based on Apache 2.0 licensed AOSP Keyboard, an Apache 2.0 license file is provided. The icon is licensed under Creative Commons BY-SA 4.0. A license file is also included.
- Icon by Fabian OvrWrt with contributions from The Eclectic Dyslexic
- OpenBoard
- AOSP Keyboard
- LineageOS
- Simple Keyboard
- Indic Keyboard
- FlorisBoard
- Our contributors
This is the first release after an overhaul of the settings. Most changes only concern the UI, but some parts of the settings now work quite differently (especially languages & layouts and user-defined colors).
You can expect to find some bugs, especially in the new settings. So please make a backup before upgrading to 3.0-alpha1.
If you’re using this version, please look for unexpected / unwelcome changes (mostly in the settings). Potential issues might especially occur with:
- insets (system bars, cutout, …)
- configuration changes like changing screen orientation
- settings that changed significantly – layouts, user-defined colors, dictionaries
- concerns both the screens and upgrading without changing layouts or colors
- dialogs (visual glitches, inaccessible parts)
- theme of the new settings (inconsistencies, bad color combinations)
Changes to settings:
- Implemented in Compose instead of “old” view system, allowing for more flexibility (and more convenient development).
- Search function for finding preferences by name or description.
- Different theme – not yet final, contributions welcome.
- You can have multiple user-defined color sets.
- You can have multiple secondary layouts (functional keys, numpad, phone number, …).
- Languages & layouts settings now show subtypes instead of languages. This allows more flexibility, like configuring multilingual typing or secondary layouts on a per-subtype basis rather than per language.
- Custom layouts for Latin script can now be shared between languages
- Dictionaries are still per language and don’t fit into the new languages & layouts settings, so they have their own settings screen now.
Further changes since 2.3:
- Stricter checks when adding json layouts. Now checks fail for unknown properties, aiding for discovering typos that might break the layout.
- Welcome wizard re-implemented in Compose – does not feel polished enough, contributions welcome.
- Add toolbar key to toggle Split Keyboard, by @PurplePickleMonster (#1218, #1263)
- Improve behavior for language swipe cycling, by @RHJihan / @codokie (#1319)
- Add support for combining accents (Unicode combining diacritical marks) and add some to Greek layout, by @tenextractor (#1240)
- Optionally show popup hints on number row, by @eranl (#1303)
- Add datestamp to backup filename, by @ottosch (#1364)
- Add Hindi Phonetic layout, by @npnpatidar (#1278)
- Add Hebrew 1452-2 layout, by @eranl (#1288)
- Add Arabic Hija’i Layout, by @BinaryQuantumSoul (#1329)
- Add Dargwa (Urakhi) layout by @mekegi (#1127)
- Adjust Bengali Unijoy layout, by @RHJihan (#1321, #1369)
- Improved Bengali Probhat Layout, by @RHJihan (#1382, #1397)
- Added Bengali (India)/Baishakhi layout, by @RHJihan (#1373, #1396)
- Update existing bn-IN layout, by @RHJihan (#1374)
- Add schwa ə for Italian, by @restuccia (#1275)
- Fix link to license file, by @zyachel (#1315)
- Add new groupId -1 for json layouts, allows suppressing additional popups (#1243)
- Add setting to autocorrect shortcuts (#1287)
- Allow setting background image for landscape and portrait separately (#798)
- Add setting for adjusting bottom padding in landscape mode (#??)
- Add side padding scale setting (#1309)
- Allow using user-provided font (#494)
- Add font scale setting (#1149)
- Upgrade emojis to Unicode 16.0
- Use different handling in browsers when pressing backspace but there is nothing before the cursor (#1337)
- Fix crash when using multiTextKey in popups (#1376)
- Fix deletion of pasted text on backspace (#1019)
- Prevent selected text being the first suggestion when overwriting with glide typing (#1284)
- Fix some minor bugs
Sha256 of APKs
release: 0c77b80db000a3c7c7db4a6dc797ebd8fcf6fc477055e97ba61db55eb788a1f7
nouserlib: 314668f7445b0882fc886586fcddff8c99301dbbb7d4a1d8198e31484814b1d5
debug: a27838adfc001ddab180c2fa780b973fc6bb16061db70b51d16b74521160710a