My friend Marc Jones was kind enough to get the ball rolling on a little coding idea I had. It’s (currently) a small Python script that grabs lines from a tab-separated text file and displays them as little pop-ups using the notify bubbles that most operating systems have.

A flashcard for 工资 showing in Linux Mint
You can see / download the script here:
You run it with:
python txt_file_notifier.py 5
With 5 being the interval between flashcards in minutes. It’s in very, very early stages right now: just the basic functionality and nothing else. You’ll need to put a file called vocab.txt in the same folder. This should be tab-separated, with vocab, reading and definition in that order. E.g.:
正月 zheng1yue4 the first month of the lunar calendar
营 ying2 battalion; encampment; operate; strive for
駕駛 jia4shi3 to drive; to pilot (a ship; an airplane; etc.)
Suggestions and criticisms are very welcome in the comments.
The idea is that you give it your vocab list (e.g. exported from Anki or Skritter) and it displays little flashcards every now and then whilst you get on with other things. It only takes you a second to glance at the pop-up, but you get more chance to see and remember the vocabulary you’re studying throughout the day.
It already has this core functionality, just nothing else. I currently have it set to run at start-up and it works well.
Development ideas
Here’s a few ideas for where I’d like to take this:
- Option to play a sound with each flashcard
- Show images with each flashcard
- More customisation with the interval etc.
- Customise what the pop-up shows from the text file
- Use Anki deck as input
- GUI
Naming
I also need to think of a name for this thing. It should probably be something involving the words “vocab”, “notify” and “flashcards”.
- Vocabify
- Notivo
- Vocabflash
Or something similarly ridiculous.
Give it a try if you like and let me know what you think.
If you found this useful, consider helping me out in return.



cool stuff. I look forward to seeing how this progresses.
nice one! i’m using this now with a set of recently learnt words.
here’s a ruby script to build the tab seperated file from a file with a chinese word per line. it fetches the pinyin and english from the ccedict dictionary.
=================================================================
# encoding: utf-8
require ‘zidian’
$stdin.each_line do |line|
word = line.strip
matchedWords = Zidian.find(word)
# if word not found print it and move to next
if (matchedWords == nil or matchedWords.length == 0)
print word + “\n”
next
end
matchedWord = matchedWords.first
print [word, matchedWord.pinyin, matchedWord.english].join(“\t”)
print “\n”
end
===============================================================
To use it:
– install ruby
– install zidian gem (“gem install zidian”)
– “ruby fetch_hanzi_details.rb words.tsv”
Thanks man! That’s a useful idea, I’ll see about converting it to Python to include it.
I love reading your blog and the idea for this script is good, too – it’s just not new. Popling does the exact same thing …
Ah yeah, I’d forgotten about Popling. Well, it’s good to have competition! The thing I dislike about Popling is that it uses the pop-ups to show adverts as well as your vocab.
What I want to make is a totally free, open-source option with the aim of helping people learn, not making money.
[...] that as it’s open source it’ll improve more rapidly, and be useful to more people.Meiqi pointed out that Popling does exactly the same thing as Vocabify. However, Popling is commercial and uses the [...]