Spell Checker for Sylpheed

Introduction | Back-Port to Sylpheed | Latest Developement News


The electronic mail is one of the first global and cheapest communication tools ever invented. With it, everyone can send any kind of information to anyone in the world very quickly. In many countries this amounted in very lax spelling in emails. Emails made it easier to communicate instantly with people speaking a different language, and people needed to write more often in foreign languages, even if they are not so comfortable with them. So misspelling is not uncommon in electronic mail, in contrast to traditional mail where people pay more attention to what and to how they write.

Paper dictionaries are very valuable tools, but for the quasi live communication, they are not suitable. Electronic spell checkers are now a common feature in word processor and mail user agents. Free dictionaries are of very good quality, and new algorithms for suggesting alernative spellings do now an excellent jobs. If a spell checker is not a must in a mail client, it is certainly a helpful feature.

When I first found the Sylpheed Mail User Agent, it impressed me with its speed, qualities and features. It had a basic spell checker based on the old but excellent ispell spell checker. The interface was minimalistic, yet functional: misppelled words were highlighted while typing, and clicking on them with the mouse's right-button provided a list of suggested words. Nevertheless, I found that it has some limitations: i) it was not possible to change the language during message composition, ii) it was driven exclusively with the mouse, and iii) it could not use the newer aspell spell checker. The first point was rather important to me, as I often have to write mails in different languages, and particularly in a language I never learnt to write (Italian). Sometimes, I have two different languages in the same message, too. The second point was also crucial for me, for I was addicted to the flyspell mode in XEmacs that I used to write my thesis. Keyboard controlled actions will always be faster than mouse driven control, especially for someone who is perhaps dyslexic. The last point was a logical enhancement: aspell can be controlled by the pspell library, which can also use the older ispell spell checker.

So I began coding and adapting the spell checker to pspell, and then provided a patch to Sylpheed-Claws, the bleeding-edge branch of Sylpheed. Six months later, Sylpheed-Claws has a rather featureful and easy to use spell checker. It's handling is in some aspects quite different from the spell checkers of other applications, but it was taylored to my needs, and never had critics on it (may be it's not used?). And just copying all what other can only stop innovation and original ideas.

Back-Port to Sylpheed

The spell checker is integrated in Sylpheed-Claws, but it did not make its way to Sylpheed-Main, although it's now more than six months that it is in the Claws branch. There are few issues that may have prevented the merge: pspell has some installation issues and is sensitive to the libltdl library. This results in systematic crashes, if the libraries are not compatible. (One possible solution could also to use the same libltdl that was used when compiling pspell). I never had this problem. One workaround, is to compile pspell without dynamic linking, this would prevent crashes. The second point, is the coding style. I think, the code need some cleaning. Maybe some reorganisation, too. There is also a small issue, that I could not resolve: when using the "Check while typing" feature, the text flickers. This can be annoying on slow machines. Moreover, I'm not pushing Sylpheed's author to do it, as it's not a crucial feature.

As the developement cycle of Sylpheed is quite fast, I decided not to create a back-port from Claws to each Sylpheed-Main version. The current version is based on the version 0.7.2 from cvs. If you have the developement tools, you can apply the patch to any version from that one to the current one (please notify me if it's no more the case). If not, send a request on the Sylpheed mailing list, and if sufficient persons are interested or if I have sufficient time, I'll do a version specific patch that does not need developement packages.


A patch for 0.7.6 can be downloaded from here (sylpheed-0.7.6.pspell.patch.gz. Apply the patch using gzip -dc sylpheed-0.7.6.pspell.patch.gz | patch -p1 then configure with the additional option --enable-pspell. Then make and install as usual. Read the accompanying README.pspell for important information (see below for a link).

0.7.2cvs and later

A patch for 0.7.2cvs and later can be found here (sylpheed-0.7.2cvs.pspell.patch.gz). Once the patch applied, run ./autogen.sh, then run ./configure with the --enable-pspell option appended. Then proceed as usual with make and make install.


0.7.1 can be found here (sylpheed-0.7.1.pspell.patch.gz) or at the Sylpheed Patch Homepage.

Download it, gunzip it and then apply the patch within Sylpheed directory using the -p1 option for patching.
Check the README.pspell for installation instructions.

0.6.6 - 0.7.0

As I am working on a new implementation of the spell checker code in Sylpheed Claws (see the Latest News), I will not have time to make a backport to the recent versions of Sylpheed, until Claws' code stabilizes.

Hint: the 0.6.5 patch could be used to patch 0.6.6 and 0.7.0. The hunk to ./configure won't patch correctly, it is not important as the autogen.sh script can recreate it. But please don't ask for help for this.


There is a backport to Sylpheed. It can be found at the Sylpheed Patch Homepage or directly here (sylpheed-0.6.5.pspell.patch.gz).

Download it, gunzip it and then apply the patch within Sylpheed directory using the -p1 option for patching.
Check the README.pspell for installation instructions.

Latest Developement News