Skip to content
Jan 2 / kkrizka

CellWriter: Handwritting Recognition for GNOME

Windows Vista and, I presume, Windows XP comes with a very nice onscreen keyboard to be used with the Tablet PCs. It supports handwriting recognition and keyboard emulation, which makes it a very good application. Linux does not come with such an onscreen keyboard by default, because there aren’t any mainstream ones. Sure, there is GNOME’s Onboard, but frankly I never managed to get it work. Also there is xstroke, but I can’t even find that in the Ubuntu repository. Luckily I managed to stumble across a new project that was planning to implement such a think for Linux, using the GTK library which made it perfect to be used with Ubuntu. I first stumbled across CellWriter while reading Danny’s blog. The following video is a small demonstration of the functionality of cellwriter.

CellWriter supports both handwriting recognition and keyboard emulation. It is quite good at handwriting, but it does not come with any default samples so you have to train it before you can use it. Also it is at an early stage, so many fancy features are missing. For example, there is no auto-completion. But other than that, it is fully functional. Also it has a system tray, so you can hide it while you are in laptop mode.

To install it on Ubuntu Linux, all you have to do is type in:
sudo aptitude install cellwriter
And execute it from the menu, where it can be found as Applications->Universal Access->CellWriter. The application will open as a window that is always on top, but you can also configure it to dock at the bottom or top like Yakuake. It does not support automatic hiding yet, but hopefully later versions will.

It is also possible to start it at the login window, so you do not need a keyboard to login. A bit of work is required to accomplish it and you will loose the ability to have a fancy login theme. If you use any of the picture based themes, CellWrite will always be hidden behind it. So the first step is to enable a simple theme. You do this by opening the Login Window tool located under System->Administration. Then press the Local tab, look for a setting called “Style” and set it to “Plain with Face Browser”. You do not need the face browser, but it is very convenient because it allows you to tap the username instead of having to type it in. Close the window.


The next step is to add CellWriter to the list of applications to be exectued when GDM (the login manager) starts up. You do this by editing one of the files located in the /etc directory. To be more specific, you need to open up the /etc/gdm/Init/Default file by typing in the following into a Terminal window:
sudo gedit /etc/gdm/Init/Default
Then at the end of the file, but before exit 0, type in the following line:
Make sure to end it with the & symbol, because otherwise the script won’t progress further and GDM will not start.


That is it! Next time you want to login, you will be able to use CellWriter to write in your password using your stylus. You will also need to train it again, because it is not running as a specific user so it does not have access to his writing samples. But other than that it is perfect. Oh, and I recommend you use one of the docking options to dock CellWriter to the bottom of the screen. I find that it gives the maximum usability.


Leave a comment
  1. Tyler / Jun 14 2008

    Thanks so much! My school just got X61 Lenovo Tablets and I’m so glad I found this.

    I really want to major in CS and Business. I’m learning C right now and I’m working for a web dev company doing PHP.

    I’ve watched a good amount of videos from MIT OCW and from various other universities and haven’t found any evidence that actual language are taught in school.

    What language is CellWriter written? Did you learn it in school or on your own?


    • Karl Hegbloom / Jan 6 2009

      Here’s the Cellwriter Author’s code repository on You can C it for yourslef.

  2. Vincent Fischer / Oct 23 2009

    I am using Cellwriter in a themed gdm. if you start cellwriter with –show-window, it should be in front of the theme backgrounds.

    ps.: i dont think that cellwriter isnt running on a specified user. it runs as root.
    If you want to use your well trained profile start cellwriter with something like “–profile=/home/user/.cellwriter/profile” .

    The –read-only option is also not bad if you are not that focused on proper writing and dont want cellwriter to save the trained samples.

    Hope that helps….


  3. Michael / Mar 1 2010

    Thanks for this, it was exactly what I was looking for.

    I have a question: when I set this up for GDM, Cellwriter ends up running two instances when I log in – one from the GDM (which will not show the Cellwriter window) and one from my startup script.

    Is there any way to kill the instance running as root from the GDM once you have logged in?

  4. Karol Krizka / Mar 1 2010

    Hi Michael,

    I don’t think there is a way to kill it after you login. I haven’t used cellwriter in GDM for a long time, since I switched to fingerprint authentication.

  5. Dan Saint-Andre / Dec 2 2010

    Can anyone tell me how to lauch CellWriter as a side effect of “going tablet”?
    I put a drawer-applet on the panel with xournal and cellwriter and pencil and other
    applications that are stylus friendly, but panel-anything is so “naughties”.

    I never use CellWriter unless I have moved into “tablet mode” –> screen in portrait orientations, mechanical keyboard obscured.

    I’d love to get fingerprint login working well for those tablet times. I’m not very likely
    to use sudo when working tablet and so I don’t really value fingerprints for that.
    (… unless they have the gnarley bits sorted out.)

    Thanks in advance,
    ~~~ 0;-Dan

    “naughties” — A name given to the calendar decade “two thousand + ‘naught’ + 0-9”.
    The previous decade was the “nineties” and the current decade is the “teens”…
    … or so they tell me. (grin)

    • Karol Krizka / Dec 4 2010

      That’s not a bad idea. I thought about something similar previously, but instead I wanted cellwriter to start up when I popped out the stylus. But I am not sure what the best way to accomplish this is.

      Right now I have a slight idea about using the acpi event generated by “swivel-down” and “swivel up” actions with the table to generate an X11 key event, which then you can bind to launching cellwriter. Similar to what the old screen rotation scripts do. But there is a bug in acpi_fakekey that prevents it from working. When this bug gets fixed (usual Ubuntu time frame for bugs: never), I might write a tutoral on how to accomplish this.

Trackbacks and Pingbacks

  1. ThinkPad X61 Tablet and Ubuntu Karmic Koala | Karol Krizka
Leave a comment