Stupid offline console dictionary

OBSD-7.1-cur Gaanu/Linux X11

2022-05-15


I have been looking for a simple offline non-GUI dictionary for couple of weeks initially I have set up dictd-server and dictd-client dict(1) (both are in ports) using tldp guide. Since it's on OBSD, had to create priviledged environment under /var for a non login user _dickd to start client rc script

To top that off, I found supported databases *.dict.dz and *.index only for moby thesaurus

I shared this info to my friend, bet it was surprise and disbelief. Why would a stupidly simple task need all these! I can just grep a huge txt file and with multiple grep I can have variety of dictionary too!

looking at dictd-server again today, found an argument for testing across all databases dictd -t <word>, it pukes log as stdout and results as stderror!

moving on, I spent hours to find pre archived databases since all the ftp servers are down! (even freebsd removed dict-databases from their ports)

thanks to ferdnyc for archiving varity of databases, cloned to my ~ and dictd config follows

# /etc/dictd.conf 
# dictd 1.9.15/rf on OpenBSD 7.1
# Copyright 1997-2002 Rickard E. Faith (faith@dict.org)
#

database mb {
    data "/home/hisacro/dictd-dicts/moby-thesaurus.dict.dz"
    index "/home/hisacro/dictd-dicts/moby-thesaurus.index"
}

database devils {
    data "/home/hisacro/dictd-dicts/devils.dict.dz"
    index "/home/hisacro/dictd-dicts/devils.index"
}

# word_net
database wn {
    data "/home/hisacro/dictd-dicts/wn.dict.dz"
    index "/home/hisacro/dictd-dicts/wn.index"
}

from the looks of it, most gaanu/linux distors pack server and client together but only dictd is needed

I could make use of search history too, so shell fucntion

dic() {
	dictd --test $1 2> cat #suppress log 
	echo $1 >> /home/hisacro/.dic_history
}

a sample

x201$ dic cat
From Moby Thesaurus II by Grady Ward, 1.0 [mb]:

128 Moby Thesaurus words for "cat":
   Abyssinian cat, Adamite, Angora cat, Argus, Cheshire cat,
   Chinchilla cat, Himalayan cat, Maltese cat, Manx cat, Persian cat,
   ...

From The Devil's Dictionary (1881-1906) [devils]:

CAT, n.  A soft, indestructible automaton provided by nature to be
kicked when things go wrong in the domestic circle.

    This is a dog,
        This is a cat.
    This is a frog,
        This is a rat.
    Run, dog, mew, cat.
    Jump, frog, gnaw, rat.
                                                             Elevenson


From WordNet (r) 2.0 [wn]:

cat
     n 1: feline mammal usually having thick soft fur and being unable
          to roar; domestic cats; wildcats [syn: {true cat}]
     2: an informal term for a youth or man; "a nice guy"; "the
        guy's only doing it for some doll" [syn: {guy}, {hombre},
        {bozo}]
     3: a spiteful woman gossip; "what a cat she is!"

Beautiful!

I thank my obsd mirror for stalling snapshot ports otherwise I would have spent another half a day looking at dic(k)o

very interested to see how others have setup dictionary, I still feel like missing something very obvious

edit

chances are precompiled dictd package on your repo/ports is >1.13.0 and doesn't have optin for --testing, reason why obsd still ships 1.9.15 is lack dependency of libmaa for later versions.

sourceforge archive of dictd-1.9.15,

$ cd dictd-1.9.15
$ ./configre
$ # only in the need of server so
$ make dictd
$ # place system wide config at /etc/dictd.conf 
$ ./dictd --testing <word> 
$ # modify shell func accordingly