Giter Site home page Giter Site logo

heliboard's Introduction

HeliBoard

HeliBoard is a privacy-conscious and customizable open-source keyboard, based on AOSP / OpenBoard. Does not use internet permission, and thus is 100% offline.

Get it on F-Droid Get APK from GitHub Get it on IzzyOnDroid

Table of Contents

Features

  • 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
  • Customize keyboard themes (style, colors and background image)
    • 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+
  • Customize keyboard layouts (only available when disabling use system languages)
  • Customize special layouts, like symbols, number, or functional key layout
  • Multilingual typing
  • Glide typing (only with closed source library ☹️)
    • 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)
  • Clipboard history
  • One-handed mode
  • Split keyboard (only available if the screen is large enough)
  • Number pad
  • Backup and restore your settings and learned word / history data

FAQ / Common Issues

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

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

  • Multilingual typing (type in multiple languages without switching manually): Enable in 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 (see above for how to add).

  • 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

  • Spell checker is not checking all languages in multilingual typing: Make sure you actually enabled HeliBoard spell checker. Usually it can be found in System Settings -> System -> Languages -> Advanced -> Spell Checker, but this may depend on Android version.

  • 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 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 tp either install the app over itself, or provide a library.

Hidden Functionality

Features that may go unnoticed, and further potentially useful information

  • Long-pressing toolbar keys results in additional functionality: clipboard -> paste, move left/right -> word left/right, move up/down -> page up/down, word left/right -> line start/end, page up/down -> page start/end, copy -> cut, select word <-> select all, undo <-> redo
  • Long-press the Comma-key to access Clipboard View, Emoji View, One-handed Mode, Settings, or Switch Language:
    • Emoji View and Language Switch will disappear if you have the corresponding key enabled;
    • For some layouts it's not the Comma-key, but the key at the same position (e.g. it's q for Dvorak layout).
  • When incognito mode is enabled, no words will be learned, and no emojis will be added to recents.
  • Sliding key input: Swipe from shift or symbol key to another key. This will enter a single uppercase key or symbol and return to the previous keyboard.
  • Hold shift or symbol key, press one or more keys, and then release shift or symbol key to return to the previous keyboard.
  • Long-press a suggestion in the suggestion strip to show more suggestions, and a delete button to remove this suggestion.
  • Swipe up from a suggestion to open more suggestions, and release on the suggestion to select it.
  • Long-press an entry in the clipboard history to pin it (keep it in clipboard until you unpin).
  • Swipe left in clipboard view to remove an entry (except when it's pinned)
  • Select text and press shift to switch between uppercase, lowercase and capitalize words
  • You can add dictionaries by opening the file
    • This only works with content-uris and not with file-uris, meaning that it may not work with some file explorers.
  • Not really a feature, but you can restart the keyboard by going to the settings and swiping it away from recents
  • Debug mode / debug APK
    • Long-press a suggestion in the suggestion strip twice to show the source dictionary.
    • When using debug APK, you can find Debug Settings within the Advanced Preferences, though the usefulness is limited except for dumping dictionaries into the log.
      • For a release APK, you need to tap the version in About several times, then you can find debug settings in Advanced Preferences.
      • When enabling Show suggestion infos, suggestions will have some tiny numbers on top showing some internal score and source dictionary.
    • In the event of an application crash, you will be prompted whether you want the crash logs when you open the Settings.
    • When using multilingual typing, space bar will show an confidence value used for determining the currently used language.
  • For users doing manual backups with 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.

Contributing ❤

Reporting Issues

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

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

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.

To Community

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

Code Contribution

See Contribution Guidelines

To-do

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
  • Ability to enter all emojis independent of Android version (optional, #297)
  • 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
  • Internal cleanup (a lot of over-complicated and convoluted code)
  • Bug fixes

What will not be added:

  • Material 3 (not worth adding 1.5 MB to app size)
  • Dictionaries for more languages (you can still download them)
  • Anything that requires additional permissions, unless there is a very good reason

License

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.

Credits

heliboard's People

Contributors

alexandrius avatar amcoder36 avatar arcarum avatar atrafon avatar bardock88 avatar blackyhawky avatar boffire avatar chuckmichael avatar codokie avatar derhagen avatar devycarol avatar dotsensei avatar dslul avatar helium314 avatar intxgo avatar jnnkb avatar kojid0 avatar lee0701 avatar majeurandroid avatar noscirep avatar qw123wh avatar rhjihan avatar rustzz avatar sandsturm avatar smarquespt avatar syphyr avatar tenextractor avatar tkterris avatar trev0r-sta avatar zmni avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

heliboard's Issues

Key text and Key background theme color broken

Exclusive to this modified version

The bug

  • The Key background color is not working when the key populates multiple characters.
  • Keys are not following the Key text color selected from Adjust theme color.

To Reproduce
Steps to reproduce the behavior:

  1. Select the language Bangla (Bangladesh)
  2. Set any user-defined theme
  3. The keys which populate more than one character are not following the key background color.
  4. Key text color is being followed by only some characters, i.e. © ® language switch key backspace

Screenshots

the key background color broken on Bangla (Bangladesh) Key text not following the selected color

App version
1.4.5

Smartphone:

  • Device: Samsung Galaxy M32
  • OS: Android 13, OneUI 5.1

Additional context
Keys that populate multiple characters on Bangla (Bangladesh):
https://github.com/Helium314/openboard/blob/3f3a2c4230e1519d9c46332d02b1e92e46ab7e4b/app/src/main/res/xml/rowkeys_bengali_unijoy2.xml#L35
https://github.com/Helium314/openboard/blob/3f3a2c4230e1519d9c46332d02b1e92e46ab7e4b/app/src/main/res/xml/rowkeys_bengali_unijoy3.xml#L34
https://github.com/Helium314/openboard/blob/3f3a2c4230e1519d9c46332d02b1e92e46ab7e4b/app/src/main/res/xml/rowkeys_bengali_unijoy3.xml#L54

Please add Korean (Hangeul) support

I'd love to have support for Korean. Korean uses the Hangeul alphabet, which in itself it quite simple with only 24 letters, however where it gets more complex is that these letters can be combined into syllable blocks. For example, for the Korean word for "honeybee" (kkulbeol) you would type the letters ㄲㅜㄹㅂㅓㄹ but it is the two syllables are then combined into two characters and is written as 꿀벌.

I think there was an attempt to bring Korean to Openboard before: https://github.com/Lee0701/openboard/tree/hangul

There's also a Korean keyboard layout in Florisboard, another FOSS Android keyboard: https://github.com/florisboard/florisboard

And there's this Apache licensed Korean keyboard app: https://github.com/RivMt/Openwnn-korean-custom

Constant crashes in settings

Does it happen in OpenBoard, or is it exclusive to this modified version?

it only happens in this fork.

Describe the bug
A clear and concise description of what the bug is.
App crashes when tapping on

  1. Appearance and layout
  2. Dictionaries
  3. Advanced> multilingual typing

To Reproduce
Steps to reproduce the behavior:
Above mentioned

Expected behavior
A clear and concise description of what you expected to happen.

It should open those menus

Screenshots

ScreenRecording_20230818_212045.mp4

App version
Which exact version of this fork is affected?
Latest version

Smartphone (please complete the following information):

  • Device: [Lenovo k6 power]
  • OS: [Android 7.0)

Additional context
Add any other context about the problem here.

Improve language settings

Currently the language related settings are scattered across sevaral places: Languages, Dictionaries, Appearance & Layout / Customized Inout Styles, and Advanced / Multilingual typing.
Ideally there would be one Languages section that contains all 4 of them.

The problem here is that there is no way of enabling an InputMethodSubtype (language and layout) without using the Android System UI (i.e. the current language selection screen) before API 34 (Android 14).
This means that the app can still use several languages / keyboard layouts, but will not be able to tell the sytem about it. The consequence is that the "Input Method Picker" (the popup when long pressing space bar) will not allow selecting the language, but only the app.

When long pressing space from OpenBoard, we can show a customized version still allowing to show the language. But doing the sane in another keyboard app, this will not be possible any more.

If you want to keep the current way of showing each language separately in the Input Method Picker, please comment and/or react with 👎 [Edit: already working on it, reactions/comments won't be considered]

(side note: not using the Android System UI for language selection will fix #12)

Multilingual typing problem

Does it happen in OpenBoard, or is it exclusive to this modified version?
Exclusive to this modified version.

Describe the bug
In French, we often use the word "il" or "un" and it is impossible to choose them because it is proposed instead "I'll" and "In" in English.
In the suggestions popup, these 2 French words also do not appear.


I have consulted the files "en_GB_worldlist.combined" and "en_US_worldlist.combined":

  • The French word "il" exists like this:
    word=il,f=0,not_a_word=true
    shortcut=I'll,f=whitelist

  • The French word "un" exists like this:
    word=un,f=0,not_a_word=true
    shortcut=in,f=whitelist
    and also
    word=UN,f=1,flags=abbreviation,originalFreq=123

  • In file "fr_worldlist.combined", these words are defined as follows:
    word=il,f=191,flags=,originalFreq=191
    word=un,f=198,flags=,originalFreq=198


I tested with experimental dictionaries and here are the results:
Tests were performed with a fresh installation and with the following options enabled:

Self-correction → toggle on
Self-correction confidence → very aggressive

  • With only the French experimental dictionary, same bad behavior: the words "il" and "un" are never suggested and I can't write them;

  • With only US English Experimental Dictionary, the words "il" and "un" are never suggested but I can write them;

  • With the two experimental dictionaries, same behavior as above: the words "il" and "un" are never suggested but I can write them.

Expected behavior
Words considered as not_a_word=true are always proposed if they exist in another language.

Smartphone (please complete the following information):

  • Device: Huawei
  • OS: Android 10

Theming bugged

Does it happen in OpenBoard, or is it exclusive to this modified version?

Describe the bug
A clear and concise description of what the bug is.
Theming ui confusing

To Reproduce
Steps to reproduce the behavior:
Under appearance and layouts
On latest version appear 2 theme variants old and new, and another one for night which is greyed out
This causes confusion.
Must set both to user defined, to be able to adjust theme colors
This kind of ui shouldn't be in the stable version release

Expected behavior
A clear and concise description of what you expected to happen.
There should be only one working theme variant in the stable version

App version
Which exact version of this fork is affected?
Latest released build 1.4.5 v4 as of now

Smartphone (please complete the following information):
Op7tpro, android 12 (original oneplus)

Align to word boundaries for backspace swipe?

Is your feature request related to a problem? Please describe.
When using the backspace swipe gesture, Gboard automatically aligns the selection with word boundaries, so that entire words are selected one at a time when swiping, instead of allowing the cursor to stop in the middle of a word.

Having switched to your fork, I have now realized how practical this behavior is for me!

Describe the solution you'd like
I'd be happy with the fork borrowing the same default behavior.

I appreciate there are higher priority issues to work on, and not sure how much time this change would require, so no pressure, just a suggestion.

Keep up the good work!

Paypal donations link

Hi!
OpenBoard is a fantastic project, but lacks some features (like the auto-correction confidence) that you have now implemented in your fork... I'd like to make a donation, but I cannot see any paypal link... feel free to add in in the project description, I (and I think other people) want you to continue this fantastic work, beacuse as far as I know, this is the best open keyboard out there! Thanks again for your work!

Long press symbols: percent on 'f' and 'q', but no underscore

Does it happen in OpenBoard, or is it exclusive to this modified version?
Also in OpenBoard, see openboard-team/openboard#701
Tested with several German and English layouts, seems to be a problem with something defined in a higher hierarchy level than values_de or values_en. Should be a quick fix but I couldn't figure it out as I'm not enough into the codebase.

Describe the bug
On both letters 'f' and 'q' there's the long press symbol '%', but there's no long press underscore '_' anywhere which would be more useful.

Expected behavior
Personally I'd prefer to have the underscore on 'f' and keep the percent on 'q'.

App version
new 1.4.5 v3 debug
(also happens with original OpenBoard 1.4.4b and 1.4.5 from F-Droid)

Keyboard crashes

Does it happen in OpenBoard, or is it exclusive to this modified version?
It's exclusive to this modified version

Describe the bug
The keyboard crashes when the cursor is positioned over a word that has already been written.
It doesn't matter if there's a spelling mistake on the word.

To Reproduce
Steps to reproduce the behavior:

  1. Write a word and press enter;
  2. Position the cursor on this word;
  3. See error.

Expected behavior
The keyboard must not close.

Video
https://github.com/Helium314/openboard/assets/139015663/1e4f2c8a-253b-40ff-8dbb-d3814d9a57bd

App version
1.4.5_v5

Smartphone (please complete the following information):

  • Device: Huawei & Samsung
  • OS: Android 10 & Android 13

Additional context
This happens in a text editor, in the address bar of a web browser, etc.

Crash report
crash_reports.zip

Issue created at the same time as #111 😅
You can close it.

New name & icon suggestion

LibreBoard or LibreType can be the new name for this forked version.

‍ ‍

Icon will be improved further

Garbage words suggested by glide typing

Does it happen in OpenBoard, or is it exclusive to this modified version?
Not possible in OpenBoard

Describe the bug
When using glide typing (with google library), sometimes words are suggested that are not in any dictionary. This is not 100% reproducible though.

To Reproduce
Steps to reproduce the behavior:

  1. Load google glide typing library
  2. Try glide-typing something like "ecog"
  3. See "exog" as suggestion, which is not in the used dictionary (US English)

Expected behavior
Only "normal" words suggested.

The source of this issue is possibly in the google library I used, but we can't change the library.
The straightforward idea of checking whether the word actually is in dictionary will not work, because words only existing as "shortcut" in dictionary / word lists are seen as not in dictionary. So checking whether something is in dictionary would mean such shortcut words are not suggested, which includes all emojis from the emoji dictionaries.

App version
Probably all, including build from latest source as of today

Smartphone (please complete the following information):

  • Device: Galaxy S4 Mini VE
  • OS: Android 9 / Lineage 16

Make remove word functionality more discoverable

Currently a word can be removed from suggestions by long pressing the suggestion twice: first time shows more suggestions, second time shows the option to remove suggestion.
Without prior knownledge, almost no one will discover the possibility to remove suggestions.

So there should be a more obvious way to remove suggestions, some ideas:

  1. add some kind of "delete" entry to the more suggestions showing up
    This is more tricky to do than I had thought
  2. open the menu with remove suggestion at the same time as the more suggestions
    This is weird and unexpected UX
  3. remove the more suggestions (maybe make the suggestion strip scroll horizontally), and show remove suggestion on long pressing a word
    Likely some users will not like the missing / changes more suggestions

Any ideas / comments?

Issues with language settings

The new language settings introduced in v5 show some inconsistencies / unexpected behavior:

  • when adding a new main dictionary, the built-in dictionary is still shown as used (not greyed out)
  • the enable switch is disabled when there is more than one layout
    • this is intentional because it's not clear what the swtich should actually do when there are several layouts that could be enabled/disabled
    • ideally the swtich should not be greyed out, but just redirect to the same dialog as clicking the language
  • adding / showing layouts is disabled when using system locales
    • this is similar to the old language settings, but still would be nice to have

Impossible to change / add a language

Does it happen in OpenBoard, or is it exclusive to this modified version?
It was usual in last times of original OB

Describe the bug
Tapping on "Languages" button in settings ends in app restart, no way to change / add language.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Settings'
  2. Click on 'Other settings'
  3. Click on 'Langiages & Input', then 'Manage Keyboards', then OpenBoard
  4. Click on 'Languages'
  5. See the app slide on the same screen

Expected behavior
Allow me to change / add language

App version
Last one, downloaded from here

Smartphone (please complete the following information):

  • Device: Xiaomi Redmi 11S
  • OS: Android 13

Dedicated Number Pad

feature request
A dedicated Number Pad will be great if implemented on OpenBoard. The screenshot is from Gboard.
OpenBoard Issues: #221, #555

drawing

Spell checker problem

The bug
Spell checker flags as incorrect when terminating a sentence with a sentence terminator other than a period. Such as flagging a correct word after inserting the Bengali period (U+0964) or U+0965.
Android: 13

@BlackyHawky found (Android 10):
All the numbers are underlined in red, as well as some capitalized words.

In English:

  • 1 dollar --> "1" is underlined in red;
  • A red car --> "A" is underlined in red but if you write "a red car" all is good;

In French:

  • N'y vas pas (don't go in English) --> "N'y" is underlined in red but if you write "n'y vas pas" all is good;
  • À demain (See you tomorrow in English) --> "À" is underlined in red but if you write "à demain" all is good

referral: a1cf043#commitcomment-123452992

How to use glide typing?

How can I turn on glide typing? There is an option in advanced menu in setting but it takes me to download folder, Where can I download libraries from?

Themed Icon

Please add an Themend icon so that it can change the color based on android 13 color settings.(monochrome icon)

Improve multi language support with better pop ups

Is your feature request related to a problem? Please describe.
The keyboard doesn't support the needed character variants from the second language so I cant type words with these unless they get suggested.

Describe the solution you'd like
The same like in Gboard. I'm going to add a screenshot of how Gboard solves this with the pop up selection.
If my keyboard is in German and the second language is Turkish, a long press on s shouldn't just show the German 'ß' but also the Turkish 'ş'. Or in case of 'i' and 'g' I should get the option for 'ı' and 'ğ'.

Use case
I should be able to type words with characters from all my language without the need to switch the keyboard. Typing this sentence should be possible: "Plötzlich ayağımda birşey hissettim, ich schaue auf mein Fuß und da sitzt so ein Hamster drauf digga".

Describe alternatives you've considered
Stick to Gboard which supports this.

Additional context
This should also work with triple languages as requested in #63

How Gboard does it right:
IMG_20230806_110157

How this app does it wrong:
Screenshot_2023-08-06-11-03-23-80_161e5717c2aeeefb0f517e08ce2b0b88

Migrate Holo themes to same style as Material

Currently Holo themes are still using the old theming system instead of the new one with easily adjustable colors. The user-defined Holo theme is just applying color filters on top of this, but with a dark base theme this doesn't work well.

For simplicity and flexibility the Holo themes should use the same style as Material themes, meaning a single (nearly) white layout in resources, which is adjusted by color filters.
This shouldn't be hard, but it's a lot of work as it requires adjusting lots of 9-patch drawables, or replacing them with vector or shape drawables or similar.

Keyboard spacing

There is difference in size between keyboard and emoji board when number row is enabled. Screenshot_20230722-173358
Screenshot_20230722-173417
Also the clipboard too.

Autocorrect Learning

Does it happen in OpenBoard, or is it exclusive to this modified version?
Both

Describe the bug
Correcting the autocorrect suggestion to the originally typed word doesn't make it learn not to autocorrect it.

To Reproduce
Steps to reproduce the behavior:

  1. Have autocorrect confidence set to Modest.
  2. In a text field, type "hum" which the autocorrect will correct to "him".
  3. Press backspace which will revert to the original word.
  4. Performing steps 2-3 again doesn't make a difference in learning.

Expected behavior
Autocorrect should learn and not correct such words in the future.

Screenshots
https://github.com/Helium314/openboard/assets/8820038/bba3cc84-92dd-4da0-8cf9-f7c0a2b72645

App version
1.4.5 v4

Smartphone (please complete the following information):

  • Device: Nothing Phone (2)
  • OS: Android 13

Additional context
N/A

Strange suggestions

Does it happen in OpenBoard, or is it exclusive to this modified version?
Only happens since I installed this version. Didn't happen with the previous debug apk of this version.

Describe the bug
Suggested words are nowhere near the word I'm trying to type. e.g. I type 'valuuble' and the suggestion I get is 'a Oh'. I get a whole bunch of strange suggestions no matter what I type.
e.g.2. I type 'shoukd' and I am suggested 'hi hi you'.

To Reproduce
Steps to reproduce the behavior:
See above.

Expected behavior
Should be suggested words that are close to what I'm trying to type.

Screenshots
If applicable, add screenshots to help explain your problem.
If you add screenshots, please reduce the size or use thumbnails to keep the issue nicely readable.

App version
1.4.5 (not the debug version)

Smartphone:

  • Device: OnePlus 7t
  • OS: Android 12 (LOS)

Additional context
I will try the 1.4.5 debug version.
I wonder if there is a dictionary I need to install, or if my settings are incorrect.

Triple language

Is your feature request related to a problem? Please describe.
It's hard to use three languages at once. I have 2 native languages and want to add some English words sometimes.

Describe the solution you'd like
Like it's possible to select a second language, make a third one possible
Use case
I want to be able to write a sentence using words from three different languages without having to change the keyboard language multiple times during the sentence.

Describe alternatives you've considered
Stick to Gboard which can do it.

Additional context
This should work with swipe trying.

Glide typing

Adding a toggle on/off button for glide typing will be good for ux.
Like this Fork.

[fr] allow us to change the behavior of the utility key.

Is your feature request related to a problem? Please, describe.

there's currently no way to change the default behavior of the utility key.

screenshot_20230714-021128.png

Describe the solution you'd like.

we should be able to change the behavior of that key to do different actions. (ex. switch keyboards, switch languages, etc...)

Use case.

I use a password manager app, so I switch between keyboards all the time... and I can't easily change keyboards with the current behavior of this app.

Describe alternatives you've considered.

you could let the user decide the behaviour of the utility key in the keyboard settings.

Additional context.

for example, both FlorisBoard and Simple Keyboard let you customize that:

FlorisBoard Simple Keyboard
Screenshot_2023-08-25_03-34-34.png screenshot_20230714-103946.png

Customizable clipboard

  1. Ability to delete the clips individually.
  2. Ability to create a new clip from clipboard
  3. Ability to edit the clips which is already copied/cut.

Problematic punctuation suggestion strip

The bug
Immediately after turning off New-word suggestions ! ? , from the suggestion strip do not work properly, It starts working from the : ;. All punctuation suggestions start working after pressing a button.

To Reproduce

  1. Turn off New-word suggestions from Text correction
  2. Immediately after that try to insert ! ? , from the suggestion strip
  3. See error
  4. Then press any button from the alphabet, and all the punctuation suggestions will start working again.

Screen recording

Screen_recording_20230812_082020.mp4

Smartphone

  • Galaxy M32 (Android 13)
  • Nexus S (Android 9) emulator

Spell Checker should remember which language a word was typed in

Happens in OpenBoard

The bug
If I type in two languages one after another the spell checker flags the word from the other language wrong. For example:
Apple is a correct word in English, কথা is correct word in Bengali. If I type Apple first and then type কথা after changing the language, it flags Apple as a wrong spelling. I guess it uses the dictionary from the current language only for spell-checking.

To Reproduce
Steps to reproduce the behavior:

  1. Set English and Spanish/Bengali (Bangladesh).
  2. Type Apple in the English input method.
  3. Then type idioma in the Spanish input method or কথা in the Bengali input method.
  4. Now it flags Apple as a wrongly spelled word.

Screen record

Screen_recording_20230818_202603.mp4

Dictionary available for hinglish??

It may be a really stupid question but I'm unable to find dictionary for hinglish as the names are completely written on dictionary page. So can you tell me which dictionary to download for that? Or it may not be available at all. Sorry if it comes as demanding. I have been trying from yesterday but couldn't find it.

Keyboard Resizing: Emoji and Clipboard Unaffected

Describe the bug
Keyboard resizing from the Appearance & Layouts does not affect the emoji keyboard and clipboard history view.

To Reproduce
Steps to reproduce the behavior:

  1. Enable keyboard resizing
  2. Set keyboard height to less or greater than 100%
  3. Now check the emoji keyboard and clipboard history view

Expected behavior
emoji keyboard and clipboard history view should follow the height set by the Keyboard height scale.

Screenshots

One UI 5.1 (Android 13)

Auto-capitalization is problematic with the languages with different characters in shift state.

The bug
Unlike Latin, indic script layouts with shift keys have different characters on default state and shift state (not just case change of normal state). So it is not necessary for these layouts to have auto-capitalization start of the typing or after sentence terminators (. ? !). So when auto-capitalization is turned on with these layouts pressing the shift key instantly changes to shift state and back to default state. But it is possible with these languages to start a sentence with a character from the shift state. So now with auto-capitalization turned on, it is inconvenient to start a sentence with a character from the shift state. I have to press the shift key twice if I want to start a sentence with a character from the shift state.

To Reproduce
Steps to reproduce the behavior:

  1. Enable Bengali (Bangladesh)/Hindi/Thai language
  2. Make sure Auto-capitalization is enabled.
  3. See the shift key behavior at the beginning of any sentence.

Screen Recording

record.mp4

About this version of OpenBoard [updated]

[update]
My plans for major changes are done, most features appear to be stable enough for a proper release.
So now the when ready can be worked on, with the first thing being a new name

[original below]

The main intention of this version is (was?) implementing and testing changes and improvements that have been developed for OpenBoard, but never made it into a released version.
This is mainly adding dictionaries, multilingual typing, and theming.
The changes appear stable so far, but include changes that should really be thoroughly tested and improved before releasing them to a wider audience.

So far there only have been few issues concerning the new features, but mostly issues about feature requests and bugs that also occur in original OpenBoard. This is totally ok, but not my main focus.
Due to limited resources (especially time) I will ignore some issues, especially non-bugs, for considerable time, and focus on what I consider priority.
Some issues will get a PR label, which indicates that the feature request is accepted and contributors are encouranged to do a related pull request.
Similar things apply to pull requests: PRs are welcome, but consider that reviewing takes time (and it takes much more time for large PRs). Bug fixes and simple / clear changes will get priority here.

I do not plan on renaming or releasing anywhere but on GitHub within the next few months.
Later, when the new features are better tested, this is likely to change.

Emoji Bar Color

Does it happen in OpenBoard, or is it exclusive to this modified version?

It happens in both.

Describe the bug

I use the Black theme of the keyboard, when I press the Emoji symbol to pick an emoji, the Bar above all the emojis that let you browse emoji categories is white colored which makes it very hard to see the categories.

Expected behavior

Change the bar color to black with white icons.

Screenshots

Screenshot_20230806-075043

App version

Latest

Smartphone:

  • Device: Samsung Galaxy A30
  • OS: Android 11

Numpad crash when input field is empty

Does it happen in OpenBoard, or is it exclusive to this modified version?
Only tried on modified version

Describe the bug
Using numpad keyboard, clearing existing number (using backspace) crashes the openboard app. Eg: If '1' is dispayed, pressing backspace will crash the app. However entering '2' (or any other number) after '1' and then deleting '1' works fine.

To Reproduce
Steps to reproduce the behavior:

  1. Go to tasks.org app (any task)
  2. Click on 'Does not repeat' (to select repeating schedule)
  3. Click on 'custom'
  4. On the field to enter number (frequency), numpad opens
  5. Pressing back button (from 1 to empty), app crashes

Expected behavior
Pressing backspace to try to make the field empty should not crash the app. It should just make the field empty to allow entering new number.

Screenshots

Screen_Recording_20230827_013454_Tasks.mp4

App version
Which exact version of this fork is affected?: v4

Smartphone (please complete the following information):

  • Device: Samsung Galaxy S10 Plus
  • OS: Android 12

Rotating screen on emoji keyboard shows broken clipboard view

Does it happen in OpenBoard, or is it exclusive to this modified version?
Also occurs in OpenBoard

Describe the bug
When rotating the device with emoji keyboard showing, a broken version of the clipboard view shows up.

To Reproduce
Steps to reproduce the behavior:

  1. Have auto-rotate on
  2. Go to emoji keyboard
  3. Rotate device
  4. See the layout described above

Expected behavior
See the emoji keyboard,but rotated

App version
Probably all, including build from latest source as of today

Smartphone (please complete the following information):

  • Device: Galaxy S4 Mini VE
  • OS: Android 9 / Lineage 16

Same spacebar size for all layouts

When switching to a keyboard with characters, the space bar is too small in my opinion. Is it possible to add an option to move the _ / < and > characters somewhere to increase the space key?

The Emoji Keyboard Has Grapheme Cluster error

**It Does happen in OpenBoard too

Describe the bug
When you Type any Emoji with zero width joiner it handles the most recent emoji correctly but Creates issue in remaining emoji

To Reproduce
Steps to reproduce the behavior:

  1. Go to Emoji Section
  2. Click on People Category
  3. Scroll down to any Family emoji or colored emoji or Flags Category eg:👩‍👩‍👧👩‍👩‍👧‍👦👩‍👩‍👦‍👦👋🏿👋🏿🇺🇸🇱🇰🇮🇳 it handles the most recent emoji correctly**

Expected behavior
The whole cluster must be removed on backspace pressed the most recent cluster will be removed as in the example 👩‍👩‍👧👩‍👩‍👧‍👦👩‍👩‍👦‍👦👋🏿👋🏿🇺🇸🇱🇰🇮🇳 the Indian flag will be removed correctly other will create issue on backspace press

Screenshots
If applicable, add screenshots to help explain your problem

Smartphone (please complete the following information):

  • Device: Poco X3/Redmi note 9/Honor 6x
  • OS: 12/12/7

Crashes when cursor is on a word

Does it happen in OpenBoard, or is it exclusive to this modified version?
This

Describe the bug
When you write something and move the cursor manually to a word or press backspace to go to a word, OpenBoard crashes.

To Reproduce
Steps to reproduce the behavior:

  1. Type some text in a field.
  2. Touch the screen to select a word.
  3. App will crash.

Expected behavior
To not crash and show the word in the word predictor.

Screenshots
https://github.com/Helium314/openboard/assets/8820038/7ec74004-4eeb-47e1-93d3-5c222999f829

App version
1.4.5 v5

Smartphone (please complete the following information):

  • Device: Nothing Phone (2)
  • OS: Android 13

Additional context
Add any other context about the problem here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.