{
  "$type": "site.standard.document",
  "bskyPostRef": {
    "cid": "bafyreibt3jy3cvvuagquhufjp3ru2zsvjzwy5zlka4a42shu7b6dbyjq2m",
    "uri": "at://did:plc:fuaxi56ej27ymlesklypt3ar/app.bsky.feed.post/3mnux3e22prs2"
  },
  "coverImage": {
    "$type": "blob",
    "ref": {
      "$link": "bafkreifwcnneh3l3zn6ahr4m2wfowuq5rwgmpkdck3yuzb2ellefauosci"
    },
    "mimeType": "image/png",
    "size": 326839
  },
  "description": "… proved longer than expected",
  "path": "/good-offline-linux-dictionaries/",
  "publishedAt": "2026-06-09T19:37:34.000Z",
  "site": "https://www.autodidacts.io",
  "tags": [
    "GoldenDict",
    "Artha",
    "Wordbook",
    "pandoc",
    "an equivalent of long-press lookup on ereaders",
    "100DaysToOffload",
    "View more posts in this series."
  ],
  "textContent": "To me, not having access to a good dictionary feels a bit like forgetting to put on clothes. When Flaubert throws a big word at me, I marinate in my own confusion, helpless and vulnerable.\n\nThose of you who rarely disconnect from the internet might be surprised to learn that the dictionaries for many desktop dictionary apps live in the internet, not in the app, and stop working when offline. This seems so silly! The biggest dictionary in the world would be smaller than my `node_modules`.\n\nSince paper dictionaries are passé, and rarely have the word I’m looking for, when travelling, I tend to turn to my Kobo dictionary even if I’m at my computer. It rarely has the word I’m looking for, but at least it’s quick to find out that it doesn’t have it.\n\nAfter going through the rigmarole of selecting and adding dictionaries to KOReader, I thought, how hard can it be to use one of these on Linux? Let’s just say: this is my third attempt.\n\nAs with most things Linux, it’s only hard if you don’t know how to do it. And even the first time, it isn’t hard, per se, it’s just annoying, and confusing, and barely worth it.\n\n### INTERLUDE\n\nHave I mentioned that I don’t like copyright? Anyway: I don’t like copyright. Ever since I read Cory Doctorow’s _Content,_ and probably long before that, I have disliked copyright.\n\nMy main activity in life is creating this tasteless, odorless material called “Intellectual Property”, and then, generally, giving it away.\n\nThe reason configuring a good offline dictionary on Linux is hard is, you guessed it: _copyright_. If there were _good_ dictionaries that were public domain, distributions would bundle them. As it is, there’s Wiktionary and Wordnet, and the excellent but hopelessly out of date Websters 1913.\n\nIf you want a really good dictionary — say, a comprehensive Oxford — you have to bring it yourself. You have to decide which one you want, and then buy it in the right format, or download inscrutable, volunteer-converted, possibly virus-riddled `dict.dz` and `.idx` files of uncertain copyright status from an obscure MobileRead post.\n\nThe contenders:\n\n  * gnome-dictionary (online by default, but supports dictd servers)\n  * dict (command line, online by default) and dictd\n  * stardict (GUI) and sdcv (command line)\n  * GoldenDict\n  * Artha\n  * Wordbook (untested)\n\n\n\nIf you are content with Wordnet, `sudo apt install artha` and you’re done. (N.B. Artha is technically a thesaurus.) It has some cool features like hotkey lookup that just works, and regular expression search.\n\nOr, the less attractive but more powerful GoldenDict:\n\n\n    sudo apt install goldendict goldendict-wordnet\n\n\nI am not content with Wordnet. I am also not content with a GUI only app, because part of the motivation for this project was that I wanted to export my Kobo vocabulary builder table, and generate an Anki deck of flashcards with the words I had saved on one side, and a good definition on the other.\n\nYou can easily add bought/pirated/out-of-copyright dictionaries to GoldenDict (Edit > Dictionaries, and click add), and it seems to take the same format as KOReader.\n\n### Command Line Usage\n\nTo get sdcv working, you need to install it (`sudo apt install sdcv`), and add dictionaries to `/usr/share/stardict/dic`. Or, go where your dictionaries are, and run:\n\n\n    ln -s /path/to/dictionaries/this-is-the-dictionary-i-want/* /usr/share/stardict/dic\n\n\nNote that linking to top-level folder into `dic` doesn’t work: it needs the individual files in there.\n\nYou can then run `sdcv --list-dicts` to check that they added successfully. You can also use a specific dictionary in future commands, using what shows up here.\n\nMy next surprise was that `sdcv` output raw HTML on the command line.\n\nThis is probably because I’m using the wrong conversion, but my bandaid solution was to pipe it through pandoc, and into a pager (since good dictionaries tend to have exhaustively long entries):\n\n\n    sdcv --use-dict \"this-is-the-dictionary-i-want\" test | pandoc -f html -t plain | less\n\n\n### Hotkey Lookup with GoldenDict\n\nThere was one final feature that I wanted: an equivalent of long-press lookup on ereaders.\n\nGoldenDict probably has this built-in, but I didn’t get it working. Instead, I added a custom keyboard shortcut, with the following contents:\n\n\n    bash -c \"goldendict \\\"$(xsel | tr '\\n' ' ' | sed -r 's/^[^[:alpha:]]*([-[:alpha:]]*).*$/\\1/')\\\"\"\n\n\nDon’t ask me _how_ it works: it works, and that is enough.\n\n****Note:**** this post is part of #100DaysToOffload, a challenge to publish 100 posts in 365 days. These posts are generally shorter and less polished than our normal posts; expect typos and unfiltered thoughts! View more posts in this series.\n\n\n",
  "title": "The search for a good offline dictionary for Linux",
  "updatedAt": "2026-06-09T20:02:51.493Z"
}