Skip to content

odmfl/openboard

 
 

Repository files navigation

OpenBoard upgrade, WIP

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...

consider all releases as beta

Changes:

Plan / to do:

  • upgrade dependencies
  • upgrade NDK, openboard-team#782
  • maybe: rename (package, app, icon), so it can be installed parallel to OpenBoard, and published on F-Droid
  • user-selectable dictionaries, openboard-team#578
    • make additional dictionaries available for download (from OpenBoard PRs)
    • more dictionaries
    • proper icon for preference Helium314/HeliBoard#10
  • multi-lingual typing, openboard-team#586, openboard-team#593
    • maybe improve way of merging suggestions from both languages
    • test whether it works reasonably well in non-latin scripts
  • suggestion fixes, openboard-team#694, openboard-team#795, openboard-team#660
  • improve auto-space insertion, openboard-team#576
  • emoji prediction/search, openboard-team#749 (better use emoji dictionaries, this is more flexible)
  • theming, openboard-team#124
    • fix emoji view not themed properly
    • fix ABC buttons in emoji and clipboard view have wrong text color
    • allow adjusting colors without requiring manual reload of keyboard
    • fix issues in more suggestions view, Helium314/HeliBoard#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#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#3
    • license issues, require using an external library
  • move/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 suggestions

OpenBoard

100% FOSS keyboard, based on AOSP.

GitHub Workflow Status Translation status Matrix

GitHub release (latest by date) F-Droid Version Google Play Version GitHub Release Date GitHub commits since latest release (by date)

Get it on F-Droid Get it on Google Play

Table of content

Community

Join our [matrix] channel here.

Matrix QR Code

Contribution ❤

Issue reporting

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.

Translation

You can help in translating OpenBoard in your language through our Weblate project.

Translation status

Dictionary creation

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.

Code contribution

Getting started

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 !

Guidelines

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.

Current TODO list

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

Tooling

Edit keyboards content

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 :

  1. Make your modifications in tools/make-keyboard-text/src/main/resources/values-YOUR LOCALE.
  2. Generate the new version of KeyboardTextsTable.java by running Gradle task 'makeText' :
    ./gradlew tools:make-keyboard-text:makeText

Update emojis

See make-emoji-keys tool README.

License

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.

Credits

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 58.1%
  • C++ 32.2%
  • Kotlin 8.8%
  • Python 0.5%
  • Makefile 0.3%
  • Shell 0.1%