
InkBoard is an on-screen keyboard designed for use with a digital pen. InkBoard allows you to:
- type using strokes instead of taps
- minimize hand movement while typing
- avoid the randomness of handwriting-recognition
InkBoard is available for free under an open source license (GPL). It runs on Windows and Linux and will be ported to Mac OS X. Read on to find out how InkBoard works, how to get started or where to get the source.
Note that InkBoard is an experiment. There are quite a few things that need to get done. If you try out InkBoard, please share your experiences! You can leave a comment below or join the mailing list. If you have a question, you can also check the FAQ.
If you are curious about the ongoing development of InkBoard, check the developer's blog, in particular, this post about the design of InkBoard.
How does InkBoard work?
The idea behind InkBoard is simple. You type by chosing characters from a nested radial menu. The trick is that in this way you can type multiple characters with a single stroke.
The InkBoard window looks as show below. The large circle on the left shows you the eight menu items and the eight entries each of the contains. The large circle serves only as a preview, to let you find the characters. The small circle on the right is where you type!
Now, let's look at an example: we will type the character 'a'.




The important thing is that you can chain these moves together to type long sequences of characters with a single stroke. A few examples are these.

When you try out inkboard and want to type a word, take a moment to figure out what the simplest stroke is to produce that word. A training program to guide you through all of these is in the works!
If you are looking for characters that are not visible in the menu, tap the InkBoard once with your pen. This will switch to a different layer of the InkBoard where all capital letters and a number of special characters can be found. Modifier keys such as Alt and Ctrl are not supported yet, but they are coming soon.
Three more things, before you move on to try out InkBoard:
- Using InkBoard effectively requires systematic training. A training program to lead the user through this is in the works.
- A lot of care has gone into designing the layout of the board. But there is room for improvement and for this I could use your feedback! In particular I would like to know which sequences of menu items you find easy to stroke and which sequences feel awkward.
- InkBoard is experimental (pre-alpha) software. You may find many bugs. Please let me know about them! Via the comments, the mailing list, the GitHub issue tracker or by contacting me directly.
Installation and getting started
The latest development release is InkBoard 2011.01.10 which should work on Windows and Linux. (It may even work on OS X, but I have not been able to test that.)
You need to have Java installed on your system to use it. Also, you need a digital pen or tablet. InkBoard will not work with a mouse!
To run InkBoard, you have to unzip the archive and then execute inkboard.jar
, either by double clicking on it or by running
java -jar inkboard.jarfrom within the extracted directory. On Linux you may have to execute
export LD_LIBRARY_PATH=.beforehand.
As already mentioned InkBoard is experimental software. As such there are some pitfalls. See the FAQ below for details.
- On Linux a US English QWERTY keyboard layout is mandatory! Even with such a keyboard, many special characters may not be typed correctly.
- On Windows, all characters should be typed correctly in most applications, however InkBoard will not work at all with some programs such as Emacs.
- If InkBoard does not appear to respond to your pen, then it may be that the pen library, JPen, cannot find your pen. Check the console output for more information. You may also check out the JPen demo. If you cannot get that one to work, then InkBoard won't work either.
Development
InkBoard is written in Clojure. It uses JPen for handling pen input and Java 2D for the visuals.
The source code is available on GitHub and licensed under the GPL. If you want to work on InkBoard, please fork the GitHub repository and drop me a line! There is a mailing list for InkBoard set up on Google Groups.
For more information about InkBoard development, you may also want to check out the developer's blog, in particular the post on the motivation behind InkBoard.
ToDo List
- Create a training program and/or an in-depth tutorial.
- Rewrite generation of virtual key strokes. The current approach based on Java's Robot class is error prone.
- Add configuration options. In particular for the scaling of the preview and menu as well as for left-handed use.
- Add modifier keys.
- Revise the inkboard layout. For this an accurate model of the difficulty of the different strokes has to be developed.
- Add more and, in particular, international characters to the layout.
FAQ
Why type with a pen?
There are several situations where using an ordinary keyboard may be impractical. For example when you are on the move and need one of your hands to hold the tablet. Also, my tablet PC has neither a keyboard nor a touch screen, so all I have to enter text with is my pen. The standard on-screen keyboards or handwriting recognition, however, do not agree with me in all cases.
Is typing with InkBoard efficient?
That remains to be seen! Typing with InkBoard certainly requires training. A proper training program is next on my ToDo list. My hope is that with InkBoard you can write faster and more comfortably than with standard on-screen keyboards.
InkBoard does not react to my input!
First: InkBoard does not work with a mouse. A digital pen is required. In particular this means that if InkBoard does not recognize your pen, then it won't work. To check this, run InkBoard from the console and look at its output. Make sure that your tablet drivers are working (e.g., make sure pressure sensitivity works in the GIMP)! Make sure that you start InkBoard from the directory inkboard.jar resides in! On Linux, make sure that the current directory is on the LD_LIBRARY_PATH
! Finally, try the JPen Demo - if that doesn't work, InkBoard won't either.
InkBoard produces weird characters! Or no characters at all!
Yes, that may happen. InkBoard relies on Java's Robot class to generate virtual keyboard strokes. This class is prone to errors. Most importantly it does not work properly with international keyboard layouts: there is no way to figure out which keys to press (virtually) to generate a given character on the current keyboard layout. So the keyboard layout is assumed to be US English QWERTY. Nonetheless, even with such a keyboard layout configured, some characters are not generated correctly and apparently Robot is to blame. On Windows I could resort to an ugly hack which has the advantage that it works correctly on all keyboard layouts but it may have unwanted side-effects. In particular, on Windows InkBoard cannot be used with Emacs at all.
So, an alternative to Robot has to be found. If anybody knows of one, please do tell me! I suspect I may have to write my own platform-dependent JNA code in the end.
InkBoard does not work with Emacs!
Yes, on Windows this is true. Unfortunately. See above.