Skip to content

Instantly share code, notes, and snippets.

@jsomers
Last active September 20, 2024 09:17
Show Gist options
  • Save jsomers/c317e362a8ec181d0293 to your computer and use it in GitHub Desktop.
Save jsomers/c317e362a8ec181d0293 to your computer and use it in GitHub Desktop.
How to use a custom word list with OS X's "Word of the Day" screensaver

OS X's "Word of the Day" screensaver is a great way to passively learn words:

But I've always thought that its word list kind of stunk—it was full of obscure words that I could never really see myself using. I'd prefer something like Norman Schur's 1000 Most Important Words. What if you could plug your own word list into the screensaver?

On a rather obscure comment thread, someone explained where you might find the word list that Apple uses to power the screensaver. It is at /System/Library/Graphics/Quartz\ Composer\ Plug-Ins/WOTD.plugin/Contents/Resources/NOAD_wotd_list.txt. The file looks like this:

m_en_us1282510	quinsy
m_en_us1273791	orbicular
m_en_us1220945	alimony
m_en_us1250517	genome
m_en_us1275124	palimpsest
m_en_us1246836	fibrillate
m_en_us1304617	volant
m_en_us1248876	fraudulent
m_en_us1264803	lunette
m_en_us1244369	entrepot

It is a list of tab-separated entries. On the right you have the word, and on the left, what looks like an ID. But what's it an ID for, and how would you be able to find it for another word not already on the list?

As you might expect, the ID refers to an entry in Apple's default dictionary, the "New Oxford American Dictionary". (That's what "NOAD" stands for in the word-list path above.)

I've played around with Apple's built-in dictionary files before—for my post, "You're probably using the wrong dictionary". You can find them at /Library/Dictionaries. Unfortunately, when you dig around in the dictionary packages, you find promising files—like /Library/Dictionaries/New\ Oxford\ American\ Dictionary.dictionary/Contents/EntryID.data—but these turn out to be in a custom binary format. How to parse them?

A fellow named Joseph Gentle, in a series of blog posts, shows how to get at the underlying data. In his "Apple dictionaries, part 2" post, he points to code that unpacks the binary file into XML. Using the dedict.c and strip.c files found here, and following Gentle's example, I used the following bash commands to get at the NOAD's XML (these commands are run from the directory where you downloaded the dedict.c and strip.c files):

clang dedict.c -Wall -lz -o dedict
clang strip.c -Wall -lz -o strip
./dedict "New Oxford American Dictionary" | ./strip > dict.xml

When I head-ed the first few lines of the dict.xml file, I saw something promising, with entries that looked like this:

<d:entry xmlns:d="http://www.apple.com/DTDs/DictionaryService-1.0.rng" id="m_en_us1219333" d:title="abode" class="entry">

Notice that id param... it's an identifier that looks exactly like the one in the screensaver word list!

I wrote the following Ruby script to parse the XML, and then, using my own word list, create a new screensaver file that maps my own words to their IDs in the dictionary:

raw = File.open("./dict.xml").read
my_words = File.open("./word_list.txt").readlines.map(&:chomp)

word_id_map = {}

raw.scan(/<d:entry .*? id="(.*?)" d:title="(.*?)" class="entry">/).each do |entry|
  word_id_map[entry[1]] = entry[0]
end

my_words.each do |word|
  if id = word_id_map[word]
    puts [id, word].join('	')
  end
end

When I replaced the original screensaver file with this new one, it worked. You can now have a "Word of the Day" screensaver for any word list you'd like.

(See below for my pre-made list using Norman Schur's 1000 Most Important Words. Just copy and paste it into /System/Library/Graphics/Quartz\ Composer\ Plug-Ins/WOTD.plugin/Contents/Resources/NOAD_wotd_list.txt using your favorite text editor. You will need to enter your Administrator password to save the file.)

m_en_us1219234 abate
m_en_us1219259 abdicate
m_en_us1219284 aberrant
m_en_us1219372 abrasive
m_en_us1219380 abrogate
m_en_us1219444 abstruse
m_en_us1219551 accolade
m_en_us1219624 acerbic
m_en_us1219712 acme
m_en_us1219715 acolyte
m_en_us1219732 acquiesce
m_en_us1219752 acrimonious
m_en_us1219760 acronym
m_en_us1219846 adage
m_en_us1220016 admonitory
m_en_us1220055 adroit
m_en_us1220064 adulation
m_en_us1220112 adversity
m_en_us1220146 aegis
m_en_us1220227 affable
m_en_us1220277 aficionado
m_en_us1220248 affinity
m_en_us1220409 aggrandize
m_en_us1220710 alacrity
m_en_us1220985 allay
m_en_us1220997 allegory
m_en_us1221021 alleviate
m_en_us1221048 alliteration
m_en_us1221286 amanuensis
m_en_us1221317 ambience
m_en_us1221320 ambiguous
m_en_us1221326 ambivalent
m_en_us1221343 ambulatory
m_en_us1221356 amenable
m_en_us1221361 amenity
m_en_us1221478 amorous
m_en_us1221479 amorphous
m_en_us1221583 anachronism
m_en_us1221613 analogy
m_en_us1221654 anathema
m_en_us1221693 ancillary
m_en_us1221945 annals
m_en_us1222000 anomaly
m_en_us1222112 anthropology
m_en_us1222114 anthropomorphic
m_en_us1222133 antic
m_en_us1222227 antiquity
m_en_us1222246 antithesis
m_en_us1222358 aphorism
m_en_us1222378 aplomb
m_en_us1222383 apocalypse
m_en_us1222391 apocryphal
m_en_us1222430 apostate
m_en_us1222448 apotheosis
m_en_us1222482 appellation
m_en_us1222542 apposite
m_en_us1222552 apprehend
m_en_us1222565 appropriate
m_en_us1222590 apt
m_en_us1222693 arbiter
m_en_us1222725 arcane
m_en_us1222730 arch
m_en_us1222813 arduous
m_en_us1222861 argot
m_en_us1222883 arid
m_en_us1223026 arrant
m_en_us1223045 arrogate
m_en_us1223058 arsenal
m_en_us1223094 artful
m_en_us1223136 artless
m_en_us1223188 ascetic
m_en_us1223303 asperity
m_en_us1223306 aspersion
m_en_us1223647 atrophy
m_en_us1223677 attenuate
m_en_us1223780 augur
m_en_us1223835 auspicious
m_en_us1223954 autonomous
m_en_us1224056 avuncular
m_en_us1224100 axiom
m_en_us1224418 badinage
m_en_us1224477 bailiwick
m_en_us1224561 baleful
m_en_us1224682 banal
m_en_us1225203 bastion
m_en_us1225243 bathos
m_en_us1225733 behemoth
m_en_us1225822 bellicose
m_en_us1225824 belligerent
m_en_us1226125 bestow
m_en_us1226275 bibulous
m_en_us1227016 blandishment
m_en_us1227058 blatant
m_en_us1228207 bovine
m_en_us1228536 bravado
m_en_us1228716 brickbat
m_en_us1228936 bromide
m_en_us1228980 brook
m_en_us1229011 brouhaha
m_en_us1229114 brusque
m_en_us1229234 bucolic
m_en_us1229510 burgeon
m_en_us1229862 cabal
m_en_us1229963 cadaverous
m_en_us1229978 cadge
m_en_us1230050 cajole
m_en_us1230226 calumny
m_en_us1230363 canard
m_en_us1230405 candor
m_en_us1230468 canon
m_en_us1230488 cant
m_en_us1230495 cantankerous
m_en_us1230906 carnal
m_en_us1230951 carp
m_en_us1231009 carrion
m_en_us1231193 castigate
m_en_us1231225 casuistry
m_en_us1231235 cataclysm
m_en_us1231337 catharsis
m_en_us1231358 catholic
m_en_us1231459 caveat
m_en_us1414800 celibacy
m_en_us1232018 champion
m_en_us1232183 charlatan
m_en_us1232243 chary
m_en_us1232559 chicanery
m_en_us1232594 chide
m_en_us1232673 chimera
m_en_us1233189 churlish
m_en_us1233295 cipher
m_en_us1233336 circumlocution
m_en_us1233343 circumspect
m_en_us1233491 clandestine
m_en_us1233506 claptrap
m_en_us1233626 cleave
m_en_us1233641 clemency
m_en_us1233898 cloy
m_en_us1234264 cogent
m_en_us1234282 cognizant
m_en_us1234426 collation
m_en_us1234493 colloquy
m_en_us1234941 complacent
m_en_us1234945 complaisant
m_en_us1234948 complement
m_en_us1234973 compliant
m_en_us1235154 concomitant
m_en_us1235167 concrete
m_en_us1235222 conduit
m_en_us1235453 consensus
m_en_us1235573 consummate
m_en_us1235619 contentious
m_en_us1235627 context
m_en_us1235722 contretemps
m_en_us1235728 contrite
m_en_us1235745 contumacious
m_en_us1235751 conundrum
m_en_us1235888 co-opt
m_en_us1235922 copious
m_en_us1236145 corollary
m_en_us1236188 corporeal
m_en_us1236218 correlate
m_en_us1236280 coruscate
m_en_us1236337 cosset
m_en_us1236377 coterie
m_en_us1236894 craven
m_en_us1236896 craw
m_en_us1236950 creditable
m_en_us1236962 credulous
m_en_us1237026 crestfallen
m_en_us1237600 culpable
m_en_us1237752 curmudgeon
m_en_us1237787 curt
m_en_us1238027 cynosure
m_en_us1238205 dalliance
m_en_us1238454 daub
m_en_us1238465 dauntless
m_en_us1238658 dearth
m_en_us1238692 debacle
m_en_us1238698 debase
m_en_us1238709 debilitate
m_en_us1238730 debunk
m_en_us1238810 decimate
m_en_us1238893 decorum
m_en_us1238924 deduce
m_en_us1238933 deem
m_en_us1239016 deferential
m_en_us1239043 definitive
m_en_us1239177 delectation
m_en_us1239185 deleterious
m_en_us1239423 denigrate
m_en_us1239429 denizen
m_en_us1239553 deprecate
m_en_us1239594 deracinate
m_en_us1239614 derelict
m_en_us1239619 deride
m_en_us1239622 derisive
m_en_us1239654 derogatory
m_en_us1239688 descry
m_en_us1239689 desecrate
m_en_us1239713 desiccate
m_en_us1239797 desuetude
m_en_us1239799 desultory
m_en_us1239856 detrimental
m_en_us1239859 detritus
m_en_us1239983 dexterous
m_en_us1240118 diaphanous
m_en_us1240150 diatribe
m_en_us1240213 didactic
m_en_us1240292 diffident
m_en_us1240356 digress
m_en_us1240381 dilettante
m_en_us1240423 diminution
m_en_us1240640 disaffection
m_en_us1240722 disconsolate
m_en_us1240764 discursive
m_en_us1240770 disdain
m_en_us1240847 disingenuous
m_en_us1240911 disparate
m_en_us1240986 dissemble
m_en_us1240995 dissertation
m_en_us1241013 dissolute
m_en_us1241060 distraught
m_en_us1241320 doff
m_en_us1241340 dogged
m_en_us1241343 doggerel
m_en_us1241357 dogmatic
m_en_us1241403 doleful
m_en_us1241432 dolt
m_en_us1241478 don
m_en_us1241588 dormant
m_en_us1241623 dossier
m_en_us1241759 doughty
m_en_us1241884 doyen
m_en_us1241909 draconian
m_en_us1242139 droll
m_en_us1242384 dudgeon
m_en_us1242541 duplicity
m_en_us1242963 ebullient
m_en_us1243026 eclectic
m_en_us1243234 effective
m_en_us1243239 effectual
m_en_us1243247 efficacious
m_en_us1243251 efficient
m_en_us1243264 effrontery
m_en_us1243265 effulgent
m_en_us1243315 egregious
m_en_us1243316 egress
m_en_us1243602 elegy
m_en_us1243643 elicit
m_en_us1243644 elide
m_en_us1243718 elucidate
m_en_us1243810 emend
m_en_us1243823 emeritus
m_en_us1243861 emote
m_en_us1243890 empirical
m_en_us1243920 emulate
m_en_us1243997 encomium
m_en_us1244036 endemic
m_en_us1244131 enervate
m_en_us1244205 enigmatic
m_en_us1244229 enmity
m_en_us1244234 ennui
m_en_us1244409 envisage
m_en_us1244462 ephemeral
m_en_us1244488 epicure
m_en_us1244514 epigram
m_en_us1244562 epitaph
m_en_us1244568 epithet
m_en_us1244569 epitome
m_en_us1244597 equable
m_en_us1244654 equitable
m_en_us1244667 equivocal
m_en_us1244769 errant
m_en_us1244778 ersatz
m_en_us1244785 erudite
m_en_us1244850 eschew
m_en_us1244883 esoteric
m_en_us1245021 ethereal
m_en_us1245085 etymology
m_en_us1245123 eulogy
m_en_us1245130 euphemism
m_en_us1245139 euphoric
m_en_us1245347 exacerbate
m_en_us1245442 excoriate
m_en_us1245443 excrement
m_en_us1245452 exculpate
m_en_us1245462 execrable
m_en_us1245479 exegesis
m_en_us1245482 exemplary
m_en_us1245521 exhort
m_en_us1245526 exigency
m_en_us1245564 exonerate
m_en_us1245575 exorcise
m_en_us1245606 expatiate
m_en_us1245639 expiate
m_en_us1245680 expostulate
m_en_us1245696 expropriate
m_en_us1245700 expunge
m_en_us1245715 extempore
m_en_us1245729 extenuate
m_en_us1245746 extirpate
m_en_us1245787 extrapolate
m_en_us1245819 exuberant
m_en_us1245928 facet
m_en_us1245942 facile
m_en_us1245943 facilitate
m_en_us1246121 fallow
m_en_us1246160 falter
m_en_us1246310 farrago
m_en_us1246416 fatuous
m_en_us1246482 feasible
m_en_us1246512 feckless
m_en_us1246514 fecund
m_en_us1246574 feisty
m_en_us1246581 felicitate
m_en_us1246583 felicitous
m_en_us1246584 felicity
m_en_us1246667 feral
m_en_us1246703 ferret
m_en_us1246755 festoon
m_en_us1246800 fey
m_en_us1246819 fiasco
m_en_us1246820 fiat
m_en_us1246895 fiduciary
m_en_us1246987 figurative
m_en_us1247165 finite
m_en_us1247476 flaccid
m_en_us1247487 flagellate
m_en_us1247528 flamboyant
m_en_us1247623 flatulent
m_en_us1247652 flay
m_en_us1247674 fledgling
m_en_us1247898 flout
m_en_us1248205 foment
m_en_us1248220 font
m_en_us1248337 foray
m_en_us1248358 force majeure
m_en_us1248438 forensic
m_en_us1248547 formidable
m_en_us1248608 fortuitous
m_en_us1248669 founder
m_en_us1248774 fractious
m_en_us1249318 fruition
m_en_us1249487 fulminate
m_en_us1249492 fulsome
m_en_us1249628 furtive
m_en_us1249649 fusillade
m_en_us1249744 gadfly
m_en_us1250117 garrulous
m_en_us1250227 gauche
m_en_us1250455 generic
m_en_us1250460 genesis
m_en_us1250523 genre
m_en_us1250647 germane
m_en_us1251553 googol
m_en_us1251620 gormandize
m_en_us1251635 gossamer
m_en_us1252001 gratuitous
m_en_us1252002 gratuity
m_en_us1252004 gravamen
m_en_us1252291 gregarious
m_en_us1252744 guise
m_en_us1253005 habituate
m_en_us1253031 hackneyed
m_en_us1253152 halcyon
m_en_us1253529 harbinger
m_en_us1253672 harridan
m_en_us1419510 hedonist
m_en_us1254205 hegemony
m_en_us1254225 heinous
m_en_us1254588 hermaphrodite
m_en_us1254692 heterogeneous
m_en_us1254723 heuristic
m_en_us1254779 hiatus
m_en_us1254822 hie
m_en_us1255513 homily
m_en_us1255532 homogeneous
m_en_us1255621 honorarium
m_en_us1256139 hubris
m_en_us1256544 hyperbole
m_en_us1256878 iconoclast
m_en_us1256974 idyllic
m_en_us1257017 ignominy
m_en_us1257117 illusory
m_en_us1257165 imbibe
m_en_us1257167 imbroglio
m_en_us1257197 immemorial
m_en_us1257280 impassive
m_en_us1257286 impecunious
m_en_us1257288 impede
m_en_us1257337 implacable
m_en_us1257342 implement
m_en_us1257343 implicate
m_en_us1257346 implicit
m_en_us1257354 imponderable
m_en_us1257359 importunate
m_en_us1257360 importune
m_en_us1257413 impugn
m_en_us1257421 impute
m_en_us1420480 inauspicious
m_en_us1257478 incarnate
m_en_us1257500 inchoate
m_en_us1257511 incipient
m_en_us1257522 inclement
m_en_us1257538 incognito
m_en_us1257565 incongruous
m_en_us1257600 increment
m_en_us1257599 incredulous
m_en_us1257612 incubus
m_en_us1257614 inculcate
m_en_us1257618 incumbent
m_en_us1420690 indecorous
m_en_us1257753 indigenous
m_en_us1257754 indigent
m_en_us1257804 indolent
m_en_us1257875 ineffable
m_en_us1258068 ingenuous
m_en_us1258248 inordinate
m_en_us1258294 inscrutable
m_en_us1421230 insouciant
m_en_us1258425 insular
m_en_us1258452 intangible
m_en_us1258556 interdict
m_en_us1258615 interlocutor
m_en_us1258702 interpolate
m_en_us1258797 intractable
m_en_us1258804 intransigent
m_en_us1258815 intrepid
m_en_us1258847 intuit
m_en_us1258861 inure
m_en_us1258883 invective
m_en_us1258922 inviolable
m_en_us1259315 issue
m_en_us1259713 jejune
m_en_us1259799 jettison
m_en_us1260124 journeyman
m_en_us1260384 juxtapose
m_en_us1260680 keen
m_en_us1260725 ken
m_en_us1261061 kinetic
m_en_us1261203 kite
m_en_us1261210 kitsch
m_en_us1261304 knell
m_en_us1261490 kowtow
m_en_us1261769 lachrymose
m_en_us1261782 laconic
m_en_us1261823 lacuna
m_en_us1261903 lagniappe
m_en_us1262018 lament
m_en_us1262164 languish
m_en_us1262307 lassitude
m_en_us1262345 latent
m_en_us1262412 laudatory
m_en_us1262508 lax
m_en_us1262513 lay
m_en_us1263081 lethargic
m_en_us1263207 lexicon
m_en_us1263551 limn
m_en_us1263576 linchpin
m_en_us1263565 limpid
m_en_us1263770 lissome
m_en_us1263796 litany
m_en_us1263845 litigious
m_en_us1264174 logy
m_en_us1264356 loquacious
m_en_us1264725 lugubrious
m_en_us1264838 lurid
m_en_us1265137 macrocosm
m_en_us1265521 maladroit
m_en_us1265580 malfeasance
m_en_us1265591 malign
m_en_us1265601 malleable
m_en_us1266272 martinet
m_en_us1266432 masticate
m_en_us1266514 matriculate
m_en_us1266584 maw
m_en_us1266585 mawkish
m_en_us1266959 megalomania
m_en_us1267125 mendicant
m_en_us1267241 mercurial
m_en_us1267260 meretricious
m_en_us1267380 messianic
m_en_us1267444 metamorphosis
m_en_us1267447 metaphor
m_en_us1267453 metaphysics
m_en_us1267471 mete
m_en_us1267636 miasma
m_en_us1267695 microcosm
m_en_us1267897 mien
m_en_us1267949 milieu
m_en_us1267965 militate
m_en_us1268244 minutiae
m_en_us1268293 misanthrope
m_en_us1268297 misapprehension
m_en_us1268298 misappropriate
m_en_us1268327 miscreant
m_en_us1268389 misnomer
m_en_us1268393 misogyny
m_en_us1268489 mitigate
m_en_us1268646 modicum
m_en_us1268764 molt
m_en_us1269187 morass
m_en_us1269200 mordant
m_en_us1269417 motif
m_en_us1269515 mountebank
m_en_us1269763 mulct
m_en_us1269926 mundane
m_en_us1270314 nadir
m_en_us1270529 nascent
m_en_us1270788 nebulous
m_en_us1270929 nemesis
m_en_us1271068 nether
m_en_us1271445 niggardly
m_en_us1271497 nihilism
m_en_us1271753 nomenclature
m_en_us1271919 non sequitur
m_en_us1272153 nostrum
m_en_us1272270 noxious
m_en_us1272318 nubile
m_en_us1272376 nugatory
m_en_us1272612 obdurate
m_en_us1272617 obeisance
m_en_us1272628 obfuscate
m_en_us1272673 oblivion
m_en_us1272676 obloquy
m_en_us1272693 obscurantism
m_en_us1272699 obsequies
m_en_us1272722 obstreperous
m_en_us1272731 obtrude
m_en_us1272737 obtuse
m_en_us1272741 obviate
m_en_us1272769 occlude
m_en_us1272905 odious
m_en_us1272961 offal
m_en_us1273305 Olympian
m_en_us1273329 ombudsman
m_en_us1273353 omniscient
m_en_us1273412 onerous
m_en_us1273844 ordure
m_en_us1274143 ostensible
m_en_us1274147 ostentatious
m_en_us1274176 ostracize
m_en_us1274212 otiose
m_en_us1274957 paean
m_en_us1275199 palpable
m_en_us1275231 panache
m_en_us1275285 panegyric
m_en_us1275334 panoply
m_en_us1275352 pantheon
m_en_us1275492 paradox
m_en_us1275542 parameter
m_en_us1275656 pariah
m_en_us1275726 parlous
m_en_us1275739 parochial
m_en_us1275753 paroxysm
m_en_us1275776 parsimonious
m_en_us1275984 pastiche
m_en_us1275994 pastoral
m_en_us1276045 patent
m_en_us1276083 pathos
m_en_us1276109 patrician
m_en_us1276159 paucity
m_en_us1276401 peccadillo
m_en_us1276434 pecuniary
m_en_us1276436 pedagogue
m_en_us1276446 pedant
m_en_us1276455 pedestrian
m_en_us1276632 penchant
m_en_us1276774 penultimate
m_en_us1276776 penurious
m_en_us1276887 peremptory
m_en_us1276913 perfidious
m_en_us1276934 perfunctory
m_en_us1276996 peripatetic
m_en_us1276998 peripheral
m_en_us1277085 peroration
m_en_us1277107 perquisite
m_en_us1277134 persiflage
m_en_us1277143 persona
m_en_us1277188 perspicacious
m_en_us1277210 peruse
m_en_us1277215 pervasive
m_en_us1445216 philistine
m_en_us1277572 phlegmatic
m_en_us1278317 piquant
m_en_us1278425 pithy
m_en_us1278490 placate
m_en_us1278492 placebo
m_en_us1278509 placid
m_en_us1278548 plaintive
m_en_us1278577 plangent
m_en_us1278687 platitude
m_en_us1278705 plaudits
m_en_us1278792 plethora
m_en_us1279164 polemic
m_en_us1279306 polyglot
m_en_us1279433 ponderous
m_en_us1279457 pontificate
m_en_us1279642 portend
m_en_us1279831 postulate
m_en_us1279905 potpourri
m_en_us1279917 potter
m_en_us1280091 pragmatic
m_en_us1280131 prate
m_en_us1280136 prattle
m_en_us1280207 precipitate
m_en_us1280211 precipitous
m_en_us1280233 precursor
m_en_us1280268 predilection
m_en_us1280288 preen
m_en_us1280323 prehensile
m_en_us1280452 presage
m_en_us1426180 prescience
m_en_us1280486 presentiment
m_en_us1280597 prevaricate
m_en_us1280622 priapic
m_en_us1280724 primogeniture
m_en_us1280725 primordial
m_en_us1280850 privy
m_en_us1280893 probity
m_en_us1280924 proclivity
m_en_us1280930 procreate
m_en_us1280948 prodigal
m_en_us1280949 prodigious
m_en_us1280950 prodigy
m_en_us1280972 profane
m_en_us1280995 profligate
m_en_us1281013 prognosis
m_en_us1281015 prognosticate
m_en_us1281061 proliferate
m_en_us1281064 prolific
m_en_us1281066 prolix
m_en_us1281110 prone
m_en_us1281170 prophylactic
m_en_us1281172 propinquity
m_en_us1281175 propitiate
m_en_us1281177 propitious
m_en_us1281197 proprietary
m_en_us1281218 prosaic
m_en_us1281231 proselytize
m_en_us1281283 protean
m_en_us1281352 protracted
m_en_us1281398 proviso
m_en_us1281411 prowess
m_en_us1281441 prurient
m_en_us1281680 puckish
m_en_us1281696 puerile
m_en_us1281743 pulchritude
m_en_us1281837 punctilious
m_en_us1281845 pundit
m_en_us1281906 purgative
m_en_us1281924 purloin
m_en_us1281998 putative
m_en_us1282257 quagmire
m_en_us1282262 quail
m_en_us1282286 quandary
m_en_us1282330 quarry
m_en_us1282381 quaver
m_en_us1282382 quay
m_en_us1282419 quell
m_en_us1282427 querulous
m_en_us1282428 query
m_en_us1282444 queue
m_en_us1282518 quintessence
m_en_us1282549 quixotic
m_en_us1282554 quizzical
m_en_us1282658 raconteur
m_en_us1282762 raffish
m_en_us1282887 rake
m_en_us1282919 rambunctious
m_en_us1282952 rancor
m_en_us1282993 rankle
m_en_us1283005 rapacious
m_en_us1283035 rapt
m_en_us1283390 recalcitrant
m_en_us1283397 recapitulate
m_en_us1283457 reclusive
m_en_us1283483 recondite
m_en_us1283488 reconnoiter
m_en_us1283541 rectify
m_en_us1283543 rectitude
m_en_us1283676 redolent
m_en_us1283681 redoubtable
m_en_us1283693 redress
m_en_us1283861 refractory
m_en_us1283898 regale
m_en_us1284047 rejoinder
m_en_us1284134 remand
m_en_us1284179 remonstrate
m_en_us1284221 renegade
m_en_us1284223 renege
m_en_us1284279 repartee
m_en_us1284295 repertoire
m_en_us1284315 replete
m_en_us1284351 reprehensible
m_en_us1284371 reprobate
m_en_us1284377 reprove
m_en_us1284704 retrograde
m_en_us1284705 retrogress
m_en_us1284715 retrospective
m_en_us1284885 rhetoric
m_en_us1284981 ribald
m_en_us1285098 rife
m_en_us1285288 riposte
m_en_us1285306 risible
m_en_us1286148 rubicund
m_en_us1286196 rue
m_en_us1286255 ruminate
m_en_us1286552 sacrosanct
m_en_us1286628 sagacity
m_en_us1286725 salacious
m_en_us1286769 salient
m_en_us1286865 salubrious
m_en_us1286869 salutary
m_en_us1286888 salvo
m_en_us1286966 sanctify
m_en_us1287079 sanguine
m_en_us1287176 sapient
m_en_us1287281 sartorial
m_en_us1287376 saturnine
m_en_us1287442 savor
m_en_us1287451 saw
m_en_us1287516 scabrous
m_en_us1287704 schism
m_en_us1287853 scion
m_en_us1287919 score
m_en_us1287974 scourge
m_en_us1288140 scurrilous
m_en_us1288155 scuttle
m_en_us1288478 secular
m_en_us1288968 seminal
m_en_us1289111 sentient
m_en_us1289162 septic
m_en_us1289181 sequel
m_en_us1289191 sequester
m_en_us1289224 serendipity
m_en_us1289284 serpentine
m_en_us1289927 shibboleth
m_en_us1290437 sibilant
m_en_us1290790 simile
m_en_us1290838 simulate
m_en_us1291109 skeptic
m_en_us1291198 skittish
m_en_us1291270 slake
m_en_us1291381 slew
m_en_us1291973 sobriquet
m_en_us1292066 sodden
m_en_us1292260 soliloquy
m_en_us1292261 solipsism
m_en_us1292405 sop
m_en_us1292410 sophism
m_en_us1292416 sophomore
m_en_us1292419 soporific
m_en_us1292839 spate
m_en_us1293271 spleen
m_en_us1293377 sporadic
m_en_us1293536 spurious
m_en_us1293558 squalid
m_en_us1294220 stentorian
m_en_us1294948 strident
m_en_us1295116 stultify
m_en_us1295288 sublimate
m_en_us1295344 sub rosa
m_en_us1295457 succor
m_en_us1295463 succubus
m_en_us1295464 succulent
m_en_us1295465 succumb
m_en_us1295623 sully
m_en_us1295806 supercilious
m_en_us1295923 supine
m_en_us1295937 supplicate
m_en_us1296015 surfeit
m_en_us1296037 surmise
m_en_us1296055 surreptitious
m_en_us1296419 sybarite
m_en_us1296460 symbiosis
m_en_us1296577 syntax
m_en_us1296582 synthesis
m_en_us1296712 tacit
m_en_us1296713 taciturn
m_en_us1296735 tactile
m_en_us1296997 tangential
m_en_us1296999 tangible
m_en_us1297253 tautology
m_en_us1297261 tawdry
m_en_us1297460 tedious
m_en_us1297634 temerity
m_en_us1297669 temporal
m_en_us1297704 tendentious
m_en_us1297725 tenet
m_en_us1297926 terse
m_en_us1299091 titular
m_en_us1299132 toady
m_en_us1299533 tortuous
m_en_us1299894 transcend
m_en_us1300092 travesty
m_en_us1300178 tremulous
m_en_us1300181 trenchant
m_en_us1300651 truculent
m_en_us1300673 truism
m_en_us1300699 truncate
m_en_us1301005 turgid
m_en_us1301364 tyro
m_en_us1301399 ubiquitous
m_en_us1301531 umbrage
m_en_us1301772 unconscionable
m_en_us1301811 unctuous
m_en_us1431400 unfathomable
m_en_us1302112 unflagging
m_en_us1302434 unmitigated
m_en_us1302549 unpropitious
m_en_us1302683 unseemly
m_en_us1302800 unsullied
m_en_us1302844 untenable
m_en_us1302881 untrammeled
m_en_us1303321 uxorious
m_en_us1303346 vacillate
m_en_us1303349 vacuous
m_en_us1303369 vagary
m_en_us1303535 vapid
m_en_us1303574 variegated
m_en_us1303760 venal
m_en_us1303773 veneer
m_en_us1303777 venerate
m_en_us1303794 venial
m_en_us1303846 veracious
m_en_us1303891 verisimilitude
m_en_us1303981 vertigo
m_en_us1304133 vicissitude
m_en_us1304244 vignette
m_en_us1304353 virago
m_en_us1304409 virtuoso
m_en_us1304412 virulent
m_en_us1304416 visage
m_en_us1304424 visceral
m_en_us1441060 vitriolic
m_en_us1304529 vituperative
m_en_us1304588 vociferous
m_en_us1304662 voluble
m_en_us1304699 voracious
m_en_us1304716 votive
m_en_us1304822 waft
m_en_us1304824 wag
m_en_us1305044 wanton
m_en_us1305203 waspish
m_en_us1305727 welter
m_en_us1306650 winnow
m_en_us1306653 winsome
m_en_us1306809 wizened
m_en_us1306897 wont
m_en_us1307309 wry
m_en_us1307394 xenophobia
m_en_us1307654 yen
m_en_us1307932 zealot
m_en_us1307964 zenith
@codycodes
Copy link

Very cool stuff! I'm happy to have some useful words showing up on my screen now 👍 . Well, eventually I want to extend this to learning about stenotype chords, but for now, after reading your linked blog post I feel it'd be good to spend some time learning Norman Schur's 1000 most important words, so that I can improve my lexicon.

@drjasonharrison
Copy link

If you're more comfortable with the terminal, and save the word-list.txt file to your Desktop:
cd /System/Library/Graphics/Quartz\ Composer\ Plug-Ins/WOTD.plugin/Contents/Resources/ sudo mv NOAD_wotd_list.txt NOAD_wotd_list.txt.bak sudo cp ~/Desktop/word-list.txt NOAD_wotd_list.txt

@joelbrostrom
Copy link

Could some one make a list off common, yet not overly common, developer terms and acronyms?
It would be a great way to learn tech lingo without thinking about it.
Examples:
IDE
API
:
Fork
Rebase
:
Coupeling
Modualar
:
REST
Asynchronous
:
Etc...

Please PM me if this already exists or if some one actually make it!

@krtenn
Copy link

krtenn commented Nov 30, 2017

Awesome this works thank you to jsomers and drjasonharrison for the details. New word list is 50x better.

@latelylk
Copy link

Hey I can't find this world list to edit on Mac OS High Sierra - do you know if this method is outdated? Thanks for the stuff

@avdyushin
Copy link

Now it's here /System/Library/Screen\ Savers/Word\ of\ the\ Day.saver/Contents/Resources/WordLists/ and in .plist format.

@garfieldnate
Copy link

I poked around in the system calls in the screensaver binary and found references to a "Lexicon Framework" and to a "Linguistic Data Framework", including calls to methods that create language models, iterate over all words in a linguistic data set, and retrieve probabilities for words. I don't know what data source is used for it (maybe all of the text in the dictionary definitions?), but my suspicion is that the screensaver builds a language model from some corpus and then chooses several thousand middling-probability words to go in the candidate list of words of the day. It would be interesting to gain access to these API's somehow.

@pvaelli
Copy link

pvaelli commented Aug 26, 2019

Can we convert the word list above to a .plist format and replace the file in the directory listed by avdyushin? Currently running mac os mojave 10.14.6

@osoyer
Copy link

osoyer commented Dec 11, 2021

Hi Jsomers. Thanks for this wonderful post. I had a similar idea recently, but not for displaying set words, but rather a new list completely. I'm a system biologist, so my idea was to display a gene list of a given organism (as a nerd or outreach feat.).

Looking into your solution, I realise it would only work with the built-in dictionary. In my case, I would have to change both the word list (with gene names) and also the dictionary (with the explanations of the genes, e.g. what they do).

Any ideas on how to create a new dictionary? I looked under 'dictionary' content, but couldn't quite find them there. Also, while I was able to change contents of a word list ".plist" file, creating a new one under "Word of the day" package seems not allowed (even with 'sudo')....any comments/pointers regarding any of this?

@mmccool
Copy link

mmccool commented Jul 10, 2023

Thanks, this is interesting. Now to adapt to my use case: reviewing Japanese vocabulary. The Japanese dictionary provided has a bunch of super-weird and useless words (many used only in writing, for example) when what I really want is review words from the JLPT (Japanese Language Proficiency Test) which from the Japanese person's point of view are really boring and common words. It would also be nice to have both English and Japanese definitions of the meanings. Anyway... to do that I need not only a custom word list but a custom dictionary. But I guess I will start by trying to use a custom word list with the standard dictionary (which only had definitions in Japanese). I'm sure doing even just that I will run in to exciting problems with using UTF encodings, etc...

Anyway, my use case seems similar to some of the above who want custom dictionaries. I may just give up on this and see if I can find - even if I have to pay for it - a customizable screensaver. Anyone know of one?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment