- What is Toki Pona Keyboard?
- How I made it
- The layout
- Installation
- Help improve this project
- Support me
Toki Pona Keyboard is an android application that adds an input method specifically for writing in Sonja Lang's toki pona language. The keyboard uses the hieroglyphic writing system called sitelen pona. This means that the users enter entire words rather than typing one letter at a time.
This keyboard was built using the standard android libraries. It types plain text and therefore it can be used anywhere to type in toki pona. The keys themselves also contain simple text but are styled into hieroglyphics with the linja pona 4.2 font. This font is also active on some of the screenshots, but the way the words are rendered is completely dependent on the app that the text is on.
The chosen words for each keys is heavily influenced by this data on word frequency in toki pona that was compiled together by Stephen Lavelle. He analyzed data from #toki-pona-taso on the ma pona pi toki pona discord server.
The keyboard is made up of three sections:
Word keys - These are the 8 most commonly used words. These keys simply type out the corresponding words.
Special keys - These all have a tap and long press function. Which is how you can achieve , : and ! by long pressing [ . and ? respectively.
Letter keys - These have both a word and letter associated to them. The word is the one displayed on the key, and the corresponding first letter of that word. When a letter key is pressed, nothing is typed and the view of the keyboard changes. For example, if you tap pi you are presented with this:
Here, you are presented with more word keys that will simply type the word, as well as:
Unofficial (non pu) words - which are essentially word keys.
Unfinished words - These act like letter keys and will change to a new view.
Basic rules of the layout:
- Any non word key will type the word that is displayed on it if it is tapped twice.
- The first key to press to find a word is always its first letter.
- All shortcuts are made from letters that belong to that word.
The linja pona 4.2 font uses OpenType features to dynamically compose compound glyphs. This means that you can create compound glyphs from any two words. To create a compound glyph you simply need to slide from one glyph to the next:
Some keys have their own special behaviors:
- The 「 (open) key will automatically change to a 」 (close). For most applications this is desirable, but in the rare case you might have nested quotes, you can simply long press the 」 (close) to force a 「 (open) to be typed.
- Long pressing the ➤ key will open the "select input method" dialog, which allows you to quickly switch to a different keyboard such as Gboard.
- Long pressing a key essentially acts as a slide onto itself, this is useful in some rare cases. For example: typing jan-jaki requires you to start your slide on jan and to finish on jan to change to the j view where you can find jaki.
This app is in development and only in the Alpha Testing phases. You cannot search for this app on the Play Store yet but you can become an Alpha Tester to gain access to it by joining the Alpha Testing group and then getting the app from here:
Alternatively, I also upload the APK for each version on the releases page.
To build this project from source you need an up to date Android Studio.
Clone the repository:
git clone https://github.com/timeopochin/tokiponakeyboard.git
Open the project with android studio:
Wait for Gradle to finish syncing then go to Build > Build Bundle(s) / APK(s) > Build APK(s)
Done! You now have an APK in: <path to cloned repository>/tokiponakeyboard/app/build/outputs/apk/debug
If you want to sign your APK you can learn more here.
By becoming an Alpha Tester you will immediately start helping improve this project. Bring up any issues, bugs or suggestions here.
Also, feel free to suggest changes to the code if you have any experience in developing for android. This is my first ever app and I imagine I have lots to learn.
Toki Pona Keyboard is completely free and open source under the GNU General Public License, it was made out of love for the language and the desire for an elegant and efficient way to write it. However both time and money has gone into this project, namely paying the registration fee to get the app on the Play Store, so if you would like to donate to support this project's development, that would be hugely appreciated!
If you wish to donate you can do so with PayPal: