Spellcheck User Dictionary Suggestions

Joplin 1.4.12 (prod, win32)
Sync Version: 2
Profile Version: 34
Keychain Supported: Yes
Revision: 0f0c50a17 (master)

Been trying out the spellchecker with the Markdown editor and no problems have been found. As I have gone through the my notes I have added many, many words to my user dictionary. I did not fancy doing that all over again on every desktop client so I thought I would just copy across the user dictionary from one machine to the other. Eventually I found it at:

C:\Users\<username>\AppData\Roaming\@joplin\app-desktop\Custom Dictionary.txt

Not looked on Linux yet...

I copied it to the same location on another Windows client and it worked.

I had also added a word that I shouldn't have added. There currently does not appear to be a way to edit the user dictionary through Joplin. When opening Custom Dictionary.txt it was apparent that the file contents have been "checksummed". I deleted the word and found that the file was replaced by a backup copy of the dictionary (current up to the last addition) found in the same folder, effectively putting the word back. I assume that this was triggered by the checksum failure. The checksum appears to be MD5 (16 bytes) but I have not yet had any luck in manually calculating one that the spellchecker will accept.

I can imagine that over time this file could become very important to users as they personalise their dictionaries. It is not something that I would like to undertake again from the beginning...

Suggestions for consideration / future development:

  • Adding the ability to edit the user dictionary.
  • Any plans to develop a Joplin backup package should include this file.
  • It would be useful if it was possible to sync this data between clients automatically so that adding a word in any client would propogate to all the user's clients. I am guessing that this one would not be an easy task but I just thought I would mention it as I am sure others will!!
3 Likes

Although this is 8 months old, I've just started using Spell Check and include the Linux path for others who may want to backup their custom dictionary:

$HOME'/.config/@joplin/app-desktop/Custom Dictionary.txt'

I have come across the same problem except I cannot find the "Custom Dictionary.txt" file, so apparently things have changed. This file exists but has not been updated recently:

~/.config/@joplin/app-desktop/Dictionaries/en-US-9-0.bdic

Has anyone come up with a solution for finding and editing the dictionary?

It looks like the use of /@joplin/ was dropped a while back. The custom dictionary is now found at

~/.config/Joplin/Custom Dictionary.txt

I believe that this method of removing entries still applies.

1 Like

Copy your Custom Dictionary.txt file (~/.config/Joplin/Custom Dictionary.txt) to another location where you can work on it.

Delete the last line that starts checksum_v1 =. Then remove whatever words you want but do not add any.

When you are finished, save the file making sure that there is a single empty line at the end of the file.

Like this:
blank_line

Then run this command:

echo -n "checksum_v1 = $(md5sum "Custom Dictionary.txt" | cut -c-32)" >> "Custom Dictionary.txt"

This calculates the checksum and appends it and the checksum_v1 = text to the end of the file.

Like this:
checksum

Quit Joplin, backup the existing ~/.config/Joplin/Custom Dictionary.txt, replace it with the Custom Dictionary.txt file you just made, start Joplin.

It has worked for me so far, but no promises (hence the need to backup the original file) :slight_smile:


If for some reason you want to add words as well I believe that you will need to sort the file before adding the checksum. I've not tested this very much and not at all for any language other than english. Also I do not know if adding a word which is already in the main dictionary will cause problems.

You can do this using:

LANG=C sort -u -o "Custom Dictionary.txt" "Custom Dictionary.txt"

This sorts your file contents in a manner which is case-sensitive (like the original), removes any duplicate entries (just in case it causes problems) and saves the modified file using the same filename.

Thanks for the clarification!

btw, Don’t you just hate file and directory names with spaces in them? They always break shell scripts that rely on the unix default of splitting on white space. Ugh…