Zeitgeist is an event logger which keeps a track of your activities while you are using your computer (any supported computing device). This information can then be used for various of useful cases like logs, statistics etc
What is Zeitgeist
Zeitgeist is an event logger which keeps a track of your activities while you are using your computer (any supported computing device). Events such as opening files, closing files, receiving calls, sending a message on Instant Messenger (GTalk, Yahoo etc) are logged by Zeitgeist. The logging can be configured, so you have the complete control on what is logged and what is not.
This data can then be used for variety of useful activities. Some of the possibilities are having a complete Skype, Empathy, Pidgin call log and then finding out who you converse the most with, etc. You can also check which applications you launch the most and how many times you have opened a specific file, etc.
What Zeitgeist is not
Zeitgeist is not a search engine. If you have some file on your system, then don't expect Zeitgeist to search for it. It is not the work of Zeitgeist to scan you disks and find files. Its work is to track your activities and log it.
As opposed to general misconception, Zeitgeist doesn't track files. Zeitgeist deals with events and not files. There are events where no file is involved like receiving a call.
Technologies used in Zeitgeist
Zeitgeist is written using Vala and uses SQLite to store the events. It exposes an API using DBus using which other applications can communicate with it.
Below the hood, it is basically dependent on glib which makes Zeitgeist portable. Get a proper port of DBus and GLib on Windows and Zeitgeist should run there without much issues.
Zeitgeist Daemon
At the core of Zeitgeist is an engine which stores all the events and acts as the store. It receives and provides relevant information (events) to the process. The information is exposed via a DBus Session bus. If the Zeitgeist server is not running, the first time an application invokes a method over DBus, the daemon is started.
Datahub
It is a passive logger which runs with the daemon and inserts events after fetching it from GtkRecentManager. These events correspond to the files you have opened.
Dataproviders
Dataproviders are small extension/addins/addons/plugins into applications which can push events to zeitgeist. Datahub cannot push everything to the daemon. It mostly tracks opening of files by double-clicking from file browser. Using data-providers more relevant events can be added like "Creating a new playlist", "Buying a track from foo music store"
Language bindings
Zeitgeist has bindings for Python, Mono, Qt, JavaScript and C/Vala.
(Gnome)Activity Journal
Activity Journal (formerly knows as Gnome Activity Journal) is a dashboard or global viewer for your activities. You can pin event, find out what else you were doing when you received a call or which files you had opened when you opened a particular website.