mirror of
https://github.com/Helium314/HeliBoard.git
synced 2025-04-20 14:19:08 +00:00
Added contribution guidelines, TODOs and more in README
This commit is contained in:
parent
43dc6e9575
commit
58606e6dc5
1 changed files with 92 additions and 44 deletions
136
README.md
136
README.md
|
@ -1,72 +1,120 @@
|
||||||
<h2 align="center"><b>OpenBoard</b></h2>
|
<h1 align="center"><b>OpenBoard</b></h1>
|
||||||
<h4 align="center">100% FOSS keyboard, based on AOSP.</h4>
|
<h4 align="center">100% FOSS keyboard, based on AOSP.</h4>
|
||||||
<p align="center"><img src='fastlane/metadata/android/en-US/images/icon.png' height='128'></p>
|
<p align="center"><img src='fastlane/metadata/android/en-US/images/icon.png' height='128'></p>
|
||||||
<p align="center"><a href="https://github.com/openboard-team/openboard/actions/workflows/android-build.yml"><img src="https://img.shields.io/github/workflow/status/openboard-team/openboard/Build" alt="GitHub Workflow Status"></a>
|
<p align="center">
|
||||||
<a href="https://github.com/openboard-team/openboard/releases"><img src="https://img.shields.io/github/v/release/openboard-team/openboard" alt="GitHub release (latest by date)"></a>
|
<a href="https://github.com/openboard-team/openboard/actions/workflows/android-build.yml"><img src="https://img.shields.io/github/workflow/status/openboard-team/openboard/Build" alt="GitHub Workflow Status"></a>
|
||||||
<a href="https://github.com/openboard-team/openboard/releases"><img src="https://img.shields.io/github/release-date/openboard-team/openboard" alt="GitHub Release Date"></a>
|
|
||||||
<a href="https://github.com/openboard-team/openboard/commits/master"><img src="https://img.shields.io/github/commits-since/openboard-team/openboard/latest" alt="GitHub commits since latest release (by date)"></a>
|
|
||||||
<a href="https://hosted.weblate.org/engage/openboard/"><img src="https://hosted.weblate.org/widgets/openboard/-/openboard/svg-badge.svg" alt="Translation status"></a>
|
<a href="https://hosted.weblate.org/engage/openboard/"><img src="https://hosted.weblate.org/widgets/openboard/-/openboard/svg-badge.svg" alt="Translation status"></a>
|
||||||
<a href="https://matrix.to/#/#openboard:matrix.org?via=matrix.org"><img src="https://img.shields.io/matrix/openboard:matrix.org" alt="Matrix"></a></p>
|
<a href="https://matrix.to/#/#openboard:matrix.org?via=matrix.org"><img src="https://img.shields.io/matrix/openboard:matrix.org" alt="Matrix"></a></p>
|
||||||
<p align="center"><a href='https://f-droid.org/packages/org.dslul.openboard.inputmethod.latin'><img src='https://fdroid.gitlab.io/artwork/badge/get-it-on.png' alt='Get it on F-Droid' height='60'></a>
|
<p align="center">
|
||||||
|
<a href="https://github.com/openboard-team/openboard/releases"><img src="https://img.shields.io/github/v/release/openboard-team/openboard" alt="GitHub release (latest by date)"></a>
|
||||||
|
<a href="https://f-droid.org/packages/org.dslul.openboard.inputmethod.latin"><img alt="F-Droid Version" src="https://img.shields.io/f-droid/v/org.dslul.openboard.inputmethod.latin?color=green&logo=f-droid"></a>
|
||||||
|
<a href="https://play.google.com/store/apps/details?id=org.dslul.openboard.inputmethod.latin"><img alt="Google Play Version" src="https://img.shields.io/endpoint?logo=google-play&url=https%3A%2F%2Fplayshields.herokuapp.com%2Fplay%3Fi%3Dorg.dslul.openboard.inputmethod.latin%26l%3Dgoogle-play%26m%3D%24version"></a>
|
||||||
|
<a href="https://github.com/openboard-team/openboard/releases"><img src="https://img.shields.io/github/release-date/openboard-team/openboard" alt="GitHub Release Date"></a>
|
||||||
|
<a href="https://github.com/openboard-team/openboard/commits/master"><img src="https://img.shields.io/github/commits-since/openboard-team/openboard/latest" alt="GitHub commits since latest release (by date)"></a></p>
|
||||||
|
<p align="center">
|
||||||
|
<a href='https://f-droid.org/packages/org.dslul.openboard.inputmethod.latin'><img src='https://fdroid.gitlab.io/artwork/badge/get-it-on.png' alt='Get it on F-Droid' height='60'></a>
|
||||||
<a href='https://play.google.com/store/apps/details?id=org.dslul.openboard.inputmethod.latin&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' src='https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png' height='60'/></a></p>
|
<a href='https://play.google.com/store/apps/details?id=org.dslul.openboard.inputmethod.latin&pcampaignid=pcampaignidMKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' src='https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png' height='60'/></a></p>
|
||||||
|
|
||||||
## Community chat
|
# Table of content
|
||||||
|
|
||||||
|
- [Community](#community)
|
||||||
|
- [Contribution ❤](#contribution-)
|
||||||
|
* [Issue reporting](#issue-reporting)
|
||||||
|
* [Translation](#translation)
|
||||||
|
* [Dictionary creation](#dictionary-creation)
|
||||||
|
* [Code contribution](#code-contribution)
|
||||||
|
+ [Getting started](#getting-started)
|
||||||
|
+ [Guidelines](#guidelines)
|
||||||
|
+ [Current TODO list](#current-todo-list)
|
||||||
|
+ [Project's side tools](#tooling)
|
||||||
|
- [License](#license)
|
||||||
|
- [Credits](#credits)
|
||||||
|
|
||||||
|
# Community
|
||||||
Join our [matrix] channel [here](https://matrix.to/#/#openboard:matrix.org?via=matrix.org).
|
Join our [matrix] channel [here](https://matrix.to/#/#openboard:matrix.org?via=matrix.org).
|
||||||
|
|
||||||
<img src="images/matrix_qr.png" alt="Matrix QR Code" height="128">
|
<img src="images/matrix_qr.png" alt="Matrix QR Code" height="128">
|
||||||
|
|
||||||
## Contribute
|
# Contribution ❤
|
||||||
|
|
||||||
### Translate OpenBoard
|
## Issue reporting
|
||||||
|
|
||||||
|
Whether your encountered a bug, or want to see a new feature in OpenBoard, you can contribute to the project by opening a new issue [here](https://github.com/openboard-team/openboard/issues). 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](https://github.com/openboard-team/openboard/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 missing key informations to its resolution.
|
||||||
|
|
||||||
|
*Please avoid opening issues to ask for a release date, for more activity on the project, for PR reviews/merges, or worth for more contributors. If you have any interrogations on these topics, read [this comment](https://github.com/openboard-team/openboard/issues/619#issuecomment-1179534276) from issue [#619](https://github.com/openboard-team/openboard/issues/619).*
|
||||||
|
|
||||||
|
## Translation
|
||||||
You can help in translating OpenBoard in your language through our [Weblate project](https://hosted.weblate.org/engage/openboard/).
|
You can help in translating OpenBoard in your language through our [Weblate project](https://hosted.weblate.org/engage/openboard/).
|
||||||
[](https://hosted.weblate.org/engage/openboard/)
|
|
||||||
|
|
||||||
### Create a dictionary
|
[](https://hosted.weblate.org/engage/openboard/)
|
||||||
You can use [this tool](https://github.com/remi0s/aosp-dictionary-tools) to create a dictionary. You need a wordlist, as described [here](dictionaries/sample.combined). The output .dict file must be put in [res/raw](app/src/main/res/raw), its wordlist in [dictionnaries](/dictionaries).
|
|
||||||
|
|
||||||
For your dictionnary to be merged, you need to provide the wordlist you used, as well as its license if any.
|
## Dictionary creation
|
||||||
|
To create or update a dictionary for your language, you can use [this tool](https://github.com/remi0s/aosp-dictionary-tools). You will need a wordlist, as described [here](dictionaries/sample.combined). The output .dict file must be put in [res/raw](app/src/main/res/raw), its wordlist in [dictionaries](/dictionaries).
|
||||||
|
|
||||||
### APK Development
|
For your dictionary to be merged into OpenBoard, **you must provide the wordlist you used**, as well as its license if any.
|
||||||
|
|
||||||
#### Linux
|
## Code contribution
|
||||||
|
|
||||||
Install java:
|
### Getting started
|
||||||
```sh
|
|
||||||
sudo pacman -S jdk11-openjdk jre11-openjdk jre11-openjdk-headless
|
|
||||||
```
|
|
||||||
|
|
||||||
Install Android SDK:
|
OpenBoard project is based on Gradle and Android Gradle Plugin. To get started, you'll just need to install [Android Studio](https://developer.android.com/studio), and import project 'from Version Control / Git / Github' by providing this git repository [URL](https://github.com/openboard-team/openboard) (or git SSH [URL](git@github.com:openboard-team/openboard.git)).
|
||||||
```sh
|
|
||||||
sudo pacman -S snapd
|
|
||||||
sudo snap install androidsdk
|
|
||||||
```
|
|
||||||
|
|
||||||
Configure your SDK location in your `~/.bash_profile` or `~/.bashrc`:
|
Once everything got setted up correctly, you're ready to go !
|
||||||
```bash
|
|
||||||
export ANDROID_SDK_ROOT=~/snap/androidsdk/current/AndroidSDK/
|
|
||||||
```
|
|
||||||
|
|
||||||
Compile the project. This will install all dependencies, make sure to accept
|
### Guidelines
|
||||||
licenses when prompted.
|
|
||||||
|
|
||||||
```sh
|
OpenBoard is a complex application, when contributing, you must take a step back and make sure your contribution :
|
||||||
./gradlew assembleDebug
|
- **Uses already in-place mechanism and take advantage of them**. In other terms, does not reinvent the wheel or uses shortcuts than could alter the consistency of the existing code.
|
||||||
```
|
- **Has the lowest footprint possible**. OpenBoard code has been written by android experts, tested and runned on millions of devices, the existing code will always be safer than the 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 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**.
|
||||||
|
|
||||||
Connect your phone and install the debug APK
|
In addition to previous points, OpenBoard must stick to [F-Droid inclusion guidelines](https://f-droid.org/docs/Inclusion_Policy/).
|
||||||
```sh
|
|
||||||
adb install ./app/build/outputs/apk/debug/app-debug.apk
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Generate KeyboardTextsTable.java
|
### Current TODO list
|
||||||
Make your modifications in [tools/make-keyboard-text/src/main/resources](tools/make-keyboard-text/src/main/resources)/values-YOUR LOCALE.
|
In no particular order, here is the non-exhaustive list of known wanted features :
|
||||||
|
- [x] ~~Updated emoji support~~
|
||||||
|
- [ ] MaterialYou ([M3](https://m3.material.io/)) support
|
||||||
|
- [x] ~~One-handed mode feature~~
|
||||||
|
- [ ] Android [autofill](https://developer.android.com/guide/topics/text/ime-autofill) support
|
||||||
|
- [x] ~~Clipboard history feature~~
|
||||||
|
- [ ] Text navigation/selection panel
|
||||||
|
- [ ] Multi-locale typing
|
||||||
|
- [ ] Emoji search
|
||||||
|
- [ ] Emoji variant saving
|
||||||
|
- [ ] Glide typing
|
||||||
|
|
||||||
Generate the new version of [KeyboardTextsTable.java](app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardTextsTable.java):
|
### Tooling
|
||||||
```sh
|
|
||||||
./gradlew tools:make-keyboard-text:makeText
|
|
||||||
```
|
|
||||||
|
|
||||||
## Credits
|
#### 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](app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardTextsTable.java) file.
|
||||||
|
To do so :
|
||||||
|
1. Make your modifications in [tools/make-keyboard-text/src/main/resources](tools/make-keyboard-text/src/main/resources)/values-YOUR LOCALE.
|
||||||
|
2. Generate the new version of [KeyboardTextsTable.java](app/src/main/java/org/dslul/openboard/inputmethod/keyboard/internal/KeyboardTextsTable.java) by running Gradle task 'makeText' :
|
||||||
|
```sh
|
||||||
|
./gradlew tools:make-keyboard-text:makeText
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Update emojis
|
||||||
|
|
||||||
|
See make-emoji-keys tool [README](tools/make-emoji-keys/README.md).
|
||||||
|
|
||||||
|
# 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](/LICENSE) file.
|
||||||
|
|
||||||
|
# Credits
|
||||||
- Icon by [Marco TLS](https://www.marcotls.eu)
|
- Icon by [Marco TLS](https://www.marcotls.eu)
|
||||||
- [AOSP Keyboard](https://android.googlesource.com/platform/packages/inputmethods/LatinIME/)
|
- [AOSP Keyboard](https://android.googlesource.com/platform/packages/inputmethods/LatinIME/)
|
||||||
- [LineageOS](https://review.lineageos.org/admin/repos/LineageOS/android_packages_inputmethods_LatinIME)
|
- [LineageOS](https://review.lineageos.org/admin/repos/LineageOS/android_packages_inputmethods_LatinIME)
|
||||||
|
|
Loading…
Add table
Reference in a new issue