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
andUnity 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 packagegedit-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