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
Download InkBoard
version 2011.01.10
for Windows and Linux

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

1. We start our stroke in the center of the small circle and move our pen to the rightmost menu entry. The position of the pen is shown as a red dot in the magnified menu.
2. When we hit the rightmost entry, the corresponding submenu is expanded. We see that we have to select the top-right entry next, in order to type 'a'. Note that we could also type character sequences such as 'tion' all at once. 'EN' stands for the 'Enter' key.
3. As soon as our stroke reaches the top-right entry, 'a' is typed on the virtual keyboard. The last characters we typed are shown in the center of the magnified menu for convenience. Also we are immediately back at the root of the menu and can continue typing other characters with the same stroke.
4. It is often (but not always) a good idea to return to the center of the menu with the pen after a character has been typed. Notice that to type 'a' we just had to make a single tiny circular stroke!

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:

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.jar
from within the extracted directory. On Linux you may have to execute

As already mentioned InkBoard is experimental software. As such there are some pitfalls. See the FAQ below for details.


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


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.


blog comments powered by Disqus