This is an attempt to integrate changes / improvements into OpenBoard that have been sitting around for a long time due to low dev activity. Might end up on F-Droid...
This is mostly a development version. On updates there may be changes that reset some settings. Consider all releases as beta quality at best.
The rough plan for this project:
- Theming
- improve user-defined coloring
- add pre-defined themes
- make automatic theme switch work with the new themes
- Multilingual Typing
- fix some bugs preventing proper usage in some cases (especially concerning key popups)
- possibly has some undiscovered bugs, more testing required
- Dictionaries
- semi-independent in a separate repository: https://codeberg.org/Helium314/aosp-dictionaries
- Language settings
- currently they are scattered across mulitple places (languages, custom input styles, multilingual typing, dictionaries)
- Clean up the xml files
- the current state look rather messy, with many useless / duplicate entries that make changes needlessly tricky
- Make suggestion removal functionality more discoverable
- Fix some bugs along the way
Once above is done, we can think about renaming and properly releasing the app. First just in this repository, and later on F-Droid.
Changes to OpenBoard:
- Updated dependencies
- Debug version can be installed along OpenBoard
- Allow users to add and replace built-in dictionaries
- modified / improved from openboard-team/openboard#569 and openboard-team/openboard#578
- some AOSP dictionaries are available here
- experimental dictionaries with next-word suggestions created from sentence lists are also available, but they may contain unwanted words, and may be missing other features
- dictionary files starting with "main_" replace the built-in dictionary for the language, all other names work as add-on dictionaries
- add Arabic dictionary for download, from openboard-team/openboard#450
- add Hebrew dictionary for download, from openboard-team/openboard#300
- add Galician dictionary for download, from openboard-team/openboard#291
- Fix suggestions after some characters, openboard-team/openboard#694, openboard-team/openboard#795
- Fix suggestions sometimes not being shown, openboard-team/openboard#709
- Reduce amount of unwanted automatic space insertions, openboard-team/openboard#576
- Exit shift-symbol view on space (same as normal symbol view)
- Add multi-lingual typing, slightly modified from openboard-team/openboard#586, openboard-team/openboard#593
- Allow loading an external library to enable gesture typing, openboard-team/openboard#3
- based on wordmage's work
- tested with Google libraries and others (when building with the rename)
- Allow adjusting keyboard colors, openboard-team/openboard#124
- Optionally make the navigation bar follow current theme, Helium314#4
- Remove suggestions by long pressing on suggestion strip while the more suggestions popup is open, openboard-team/openboard#106
- suggestions get re-added if they are entered again
- Optionally add typed words to system personal dictionary
- Allow using contacts for suggestions (enable in spell checker settings), openboard-team/openboard#374
- Re-arranged comma-long-press-menu, Helium314#7
- Make Bengali spell check work, Helium314#11
- Fix azerty layout in landscape mode on tablets, openboard-team/openboard#791
- Improve issues with emoji deletion (still happens with delete gesture), Helium314#22
- Add Unicode 15 emojis, openboard-team/openboard#25
- Improved experimental emoji dictionary for download
- Better currency selection, Helium314#21 / https://github.com/Helium314/openboard/commit/0d1106649f95ecbd7d8f6d950428547666059564
- Reduce space between keys, Helium314#8
- Fix number row not split in split keyboard view, Helium314#27
- Fix white background of emoji tab selector on AMOLED theme for some Android versions, Helium314#26
- Fix issue with spell checker incorrectly flagging words before a period as wrong on newer Android versions, openboard-team/openboard#679 (maybe not properly fixed)
- Fix always-dark settings on some Android versions, Helium314#69
- Fix bug with space before word being deleted in some apps / input fields, https://github.com/Helium314/openboard/commit/ce0bf06545c4547d3fc5791cc769508db0a89e87
- Allow using auto theme on some devices with Android 9
- Add auto theme for the new theming system
Further plan / to do:
upgrade dependencies- upgrade NDK, openboard-team/openboard#782
- maybe: rename (package, app, icon), so it can be installed parallel to OpenBoard, and published on F-Droid
user-selectable dictionaries, openboard-team/openboard#578make additional dictionaries available for download (from OpenBoard PRs)- more dictionaries
proper icon for preferenceHelium314#10
multi-lingual typing, openboard-team/openboard#586, openboard-team/openboard#593- maybe improve way of merging suggestions from both languages
- test whether it works reasonably well in non-latin scripts
suggestion fixes, openboard-team/openboard#694, openboard-team/openboard#795, openboard-team/openboard#660improve auto-space insertion, openboard-team/openboard#576emoji prediction/search, openboard-team/openboard#749 (better use emoji dictionaries, this is more flexible)theming, openboard-team/openboard#124fix emoji view not themed properlyfix ABC buttons in emoji and clipboard view have wrong text colorallow adjusting colors without requiring manual reload of keyboardfix issues in more suggestions view, Helium314#9 (comment)(not 100% fixed, but should not be noticeable)- fix buttons on long-press action key not themed
- fix icons on long-press comma key not themed
delete suggestions, openboard-team/openboard#106- make functionality more discoverable, e.g. add a button to the more suggestions menu, or replace long-press menu and show more suggestions by scrolling suggestion strip
gesture typing, openboard-team/openboard#3license issues, require using an external library
copy use contacts setting from well hidden spell checker settings to text correction settings- add emojis to user history, to be used for next word
Join our [matrix] channel here.
Whether you encountered a bug, or want to see a new feature in OpenBoard, you can contribute to the project by opening a new issue here. Your help is always welcomed !
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.
- Is the issue still relevant ? Make sure your issue is not already fixed in the latest version of OpenBoard.
- Did you use the issue template ? It is important to make life of our kind contributors easier by avoiding issues that miss key informations to their resolution.
Please avoid opening issues to ask for a release date, for PR reviews/merges, for more activity on the project, or worth for more contributors. If you have any interrogations on these topics, read this comment from issue #619.
You can help in translating OpenBoard in your language through our Weblate project.
To create or update a dictionary for your language, you can use this tool. You will need a wordlist, as described here. The output .dict file must be put in res/raw, and its wordlist in dictionaries.
For your dictionary to be merged into OpenBoard, you must provide the wordlist you used, as well as its license if any.
OpenBoard project is based on Gradle and Android Gradle Plugin. To get started, you'll just need to install Android Studio, and import project 'from Version Control / Git / Github' by providing this git repository URL (or git SSH URL).
Once everything got setted up correctly, you're ready to go !
OpenBoard is a complex application, when contributing, you must take a step back and make sure your contribution :
- Uses already in-place mechanism and take advantage of them. In other terms, does not reinvent the wheel or uses shortcuts that could alter the consistency of the existing code.
- Has the lowest footprint possible. OpenBoard code has been written by android experts (AOSP/Google engineers). It has been tested and runned on millions of devices. Thus, existing code will always be safer than new code. The less we alter existing code, the more OpenBoard will stay stable. Especially in the input logic scope.
- Does not bring any non-free code or proprietary binary blobs. This also applies to code/binaries with unknown licenses. Make sure you do not introduce any closed-source library from Google.
- Complies with the user privacy principle OpenBoard follows.
In addition to previous elements, OpenBoard must stick to F-Droid inclusion guidelines.
In no particular order, here is the non-exhaustive list of known wanted features :
-
Updated emoji support - MaterialYou (M3) support
-
One-handed mode feature - Android autofill support
-
Clipboard history feature - Text navigation/selection panel
- Multi-locale typing
- Emoji search
- Emoji variant saving
- Glide typing
Keyboards content is often a complex concatenation of data from global to specific locales. For example, additional keys of a given key, also known as 'more keys' in code, are determined by concatenating infos from : common additional keys for a layout (eg. numbers), global locale (eg. common symbols) and specific locale (eg. accents or specific letters).
To edit these infos, you'll need to generate the KeyboardTextsTable.java file. To do so :
- Make your modifications in tools/make-keyboard-text/src/main/resources/values-YOUR LOCALE.
- Generate the new version of KeyboardTextsTable.java by running Gradle task 'makeText' :
./gradlew tools:make-keyboard-text:makeText
See make-emoji-keys tool README.
OpenBoard project 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.