What exactly does Zeitgeist index?

I am not clear on this. Does Zeitgeist index the contents of my document so searches are more relevant? Or is Zeitgeist only searching the name/extension of my documents?


In a nutshell Zeitgeist is an event log. It does not deal with files. It deals with events. It does NOT store the contents of the file. That is not the work of zeitgeist

What Zeitgeist does

Examples of events are

  • File opened/closed/deleted/saved
  • New voice call received/dialed
  • Committing a git/bzr repo
  • Opening a firefox page
  • Downloading a file
  • Starting an IM Chat
  • Music Play, Pause, Stop

Just imagine any event and zeitgeist can log it.

Now just because zeitgeist can log something does not mean it will log it. It is a daemon which exposes a D-Bus API. This API provides methods, to log, retrieve, filter or delete events.

Zeitgeist Datahub

Now you need external applications to log events to zeitgeist. A second daemon named zeitgeist-datahub keeps running on your system which monitors

  • All file activity logged to GtkRecentManager and pushes it to zeitgeist daemon
  • All application launches and logs it
  • All files downloaded in Downloads directory

For applications which doesn't use GtkRecentManager, there are extensions/plugins/addins/addons provided which push the relevant events to Zeitgeist. These components are called dataproviders because they supply zeitgeist daemon with data.

Usage of logged events

Now you have applications which can use this data for their usage. There are a few good things which can be done with the data. e.g.

  • Find the most recent files opened (because every event stored contains a timestamp)
  • Find all the recent files opened by a specific application (because every event stored also contains the name of the application which trigered the event). This can be used to populate the recently used files for every application File Menu
  • Application launchers like Synapse, Do and Unity Dash can use this to sort the list of applications when the user types the name
  • The application can populate the most often used files. e.g. gedit-dashboard uses zeitgeist to populate this list. You need to install package gedit-plugins to enable this gedit plugin. Click on New file to use it

Full Text Search

Zeitgeist comes with a Full Text Search API too, which only searches the contents of the event and not the file itself. If you played a track of Beethovan, then the event logged would contain

  • TimeStamp
  • Did the user explicitly click on Run or was the event scheduled (Playlist)
  • What was the event about - Track started
  • Which application did this
  • How is the resource (media file) stored as. In this case as a File
  • A freeform string as the Title which can contain the track name, genre, artist, year etc.
  • The mimetype of the media file

Then the Full Text Search API provided with zeitgeist only looks at the fields of the event for search and does not look into the file.

Remember Zeitgeist is not a file search of a file tracker