User: Password:
Subscribe / Log in / New account

Module Proposal: Zeitgeist

From:  Seif Lotfy <>
Subject:  Module Proposal: Zeitgeist
Date:  Tue, 17 Apr 2012 22:47:46 +0200
Message-ID:  <>
Archive-link:  Article

*Zeitgeist is an event logging framework. It stores user activity in a
structured manner and provides a powerful DBus API to query and monitor the
log. Zeitgeist as such does not have a graphical component, but is intended
to integrate wherever it makes sense. Just like Tracker, Folks and
GStreamer, Zeitgeist does not provide a UI. And is not a going to be used
by the user directly, but rather would allow developers to harnest the
feature it provides and make something useful out of it in their UX.

*It has been 3 years and 8 month since Zeitgeist started under the GNOME
umbrella. We proposed Zeitgeist for inclusion in 2010 but we got rejected
due to several reasons including but not limited to:

   - Not enough integration with GNOME applications
   - Project hosting difficulties
   - Immaturity of the project.

Zeitgeist is not meant for searching through your files and folders, but
rather as a log for user activities. This can be used for:

   - Sorting search results according to frequency/recency
   - Populating dashboards
   - Finding files/contacts/etc... that are used together
   - History browser
   - Associating locations to items (used at location X or Y)
   - scheduling activities (files/contacts/et...) can be set (See Task

People have expressed interest in using it within GNOME, we want to help
and make it happen. We think all these use cases could be address.

We already have *GNOME specific developments*:

   - We already log everything that pushes into Gtk.RecentlyUsed.
   - For better logging we have Totem, Rhythmbox, and gedit deploying
   loggers as a soft-dependency in the form of plugins.
   - We worked with gedit and some GNOME designers to develop the Dashboard
   plugin [1] to address the empty slate problem.
   - Additionally, the team wrote several plugins for GNOME Shell [2][3][4]
   - Integration with telepathy-folks is currently under development.
   - Discussion about a possible Gtk Recenet Manager revamp with an
   optional Zeitgeist backend. [5]

Another deployment in development is a feature that we think would enrich
the developer story for folks, which is giving folks the ability
to actually provide developers with some interaction details for
each individual. [6] This is under development and hopefully can be merged

We also provide a logger for Telepathy as part of the zeitgeist-datasources
package. It will soon be shipped directly with Telepathy-Logger as a

We have moved to so we can play nicely with GNOME, KDE,
Ubuntu as well as others. [7]

Since we are not a GNOME dependency some projects hesitate to integrate
with us.
It is a chicken and egg problem. Applications don't want to depend on us
since we are not GNOME upstream (thus only soft-dependencies) and GNOME
hesitates to accept Zeitgeist since no application fully depends on it.

For example: We want to use Zeitgeist in GNOME Clocks will to store
"alarms" as scheduled activities. However we are not sure if we can do that
without Zeitgeist being an external dependency.

Another example, Epiphany integration: Zeitgeist could take over
storing Epiphany history. However due to the uncertain state of Zeitgeist
in GNOME we can not move on.
I would like to quote Xan Lopez: if GNOME decides to use it throughout I'd
be happy to add support for it in Epiphany.

*Some interesting facts about Zeitgeist:

   - It is a dependency for Ubuntu Unity
   - Many application specific plugins that make use of what Zeitgeist has
   got to offer.
   - Integration into Phonon, the KDE multimedia framework and
   various deployments within KDE
   - Deploying in Dawati [0]
   - Paid dedicated developers
   - Previously ported from Python to Vala without breaking API

*Proposal to become a blessed dependency
*With this appliation I would like to address the possibility of accepting
Zeitgeist as a blessed dependency.


   - Vala
   - Sqlite
   - Xapian (Soft)
   - python-rdflib (only for compiling the ontologies)

*Resource usage:

   - Bug tracker:
   - VCS:

*Other notes:
*What most people think of as Zeitgeist is split in two processes
zeitgeist-daemon and zeitgeist-datahub. The daemon does not do any active
monitoring for events, it only manages the log database and exposes a DBus
interface for inserting, deleting, querying events, and monitoring for
changes. The datahub monitors the system and pushes events into the daemon.
This architecture makes the datahub expendable if we one day move to an
architecture where apps themselves (or something else) push events into
Zeitgeist. Indeed it's already the case that we have plugins for some apps
that makes them push events into the daemon.

desktop-devel-list mailing list

(Log in to post comments)

Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds