Long ago, Obsidian used to keep the custom dictionary in the
.obsidian folder where it was easy to keep in sync across multiple devices.
This is no longer the case; you now have a unique
Custom Dictionary.txt file per host that you use Obsidian on.
I use obsidian heavily on a few computers but access one vault or another from time to time across many computers and I got tired of having to keep adding various project names and custom words to the dictionaries on each computer… so I took a few precious spare hours to make the task of synchronizing the custom dictionary files on every computer a bit less tedious.
sync.py from this repo is the trick.
It’s a very crude/basic tool but it does what I need it to do: merge all of the words in a local
Custom Dictionary.txt with a global list and then overwrite the local dictionary with the master dictionary.
The global list is kept in sync across all my devices so when I add a new word to the dictionary on one computer, I just run the script and about 1 second later, the master dictionary - on all my computers - has the new word. I can run the same script as needed to update the local dictionary on the other devices.
Not elegant, but it’s all the time I had. I haven’t done any serious JS work in about a decade so that’s why it’s implemented in python.
I would love to see somebody turn this into a native plugin for obsidian; I am pretty sure the API to manipulate the
Custom Dictionary.txt is available to obsidian plugins. Or, better yet, I’d love to see custom dictionary sync come back to obsidian natively.