This month Collabora has been sponsering zeitgeist for one year, here is the story about how that came to be and what happened during that year.
How I got in contact with Collabora?
I met Rob McQueen, Phillippe Khalaf, Sjoerd and some from the Telepathy team during Gran Canaria Desktop summit. I needed help with an idea (Teamgeist) and a couple of months later I was introduced to Youness Alaoui (until this day I consider a very good and close friend) as well as Sumana Harihareswara (from whom I learned a lot about organizing).
How I got sponsored?
Collabora saw Zeitgeist as a promising technology and observed the development for a while. They wanted to leverage it in GNOME more. After I tried to do some work on GNOME Shell last year, I was approached by them and they offered to sponsor my work, integrating Zeitgeist into GNOME as well as work on Zeitgeist. They also put two of their developers, Abner Silva and JP Whiting, to work on the Zeitgeist Qt bindings for a while.
What I did during the year?
I mainly get sponsored for working on Zeitgeist and related stuff for GNOME and KDE (development, bug fixing and specs definition). Some of the things I worked on were:
- Zeitgeist extensions for GNOME Shell: The purpose of the extensions is to integrate some Zeitgeist experience into GNOME Shell. The experience comes in form of three extensions (you can grab the source from here)
- Jumplists: Displays the recently/most used files used with the apps displayed in GNOME Shell. The extension has been uploaded to extensions.gnome.org
- Journal: Zeitgeist based activity-history journal as a gnome-shell overview tab. It allows you to access you files via GNOME Shell and sorts them for you in chronological order. The extension has been uploaded to extensions.gnome.org
- Search: Makes the Shell search via Zeitgeist and and categorize the results better. I will upload it to the extensions website when the highlighting issue is fixed.
- El Loco: A Tool to browse you activities at a current Location. Go on the map and click on the town or street and you will be able to see what/who you interacted with there. It is pretty unique in what it offers but needs more UI design, since until now it served primarily a demo application, Ted Gould and I ported it to Gtk3 (https://code.launchpad.net/~seif/+junk/ellocco) as well as to Qt (https://code.launchpad.net/~seif/+junk/qt-lav).
- Activity Log Manager: Due to popular demand we needed to hack on a privacy tool. Along side Manish Sinha, JP Lacerda, Stefano Candori and Siegfried Gevatter, we developed ALM. It is a graphical user interface which lets you easily control what gets logged by Zeitgeist. It supports setting up blacklists according to several criteria (such as application or file types), temporarily stopping all logging as well as deleting recent events. ALM will be seeing deeper integration into Ubuntu and hopefully GNOME too soon. You can grab the code from here.
- Gedit Dashboard: Michal Hruby’s idea during the hackfest has become reality, after Hylke Bons and I spent almost a month working on it from scratch. The idea was to have a “Google Chrome”-like dashboard for gedit as well as a quick search. The patient and kind Gedit folks helped me clean up the code and now its part of gedit-plugins. This is my favorite plugin for gedit now. You can get it from http://git.gnome.org/browse/gedit-plugins.
- libqzeitgeist (now maintained by the amazing Trever Fischer): libqzeitgeist was developed by Abner Silva and JP Whiting. It allows easier development for KDE apps. It is used in Trever’s plugin for KDE Activity Manager to push events directly into Zeitgeist. Trever is now maintaining the library and added QML support. You can find the work here.
- Zeitgeist Engine: Of course since all the previous work is powered by Zeitgeist we had to work on getting Zeitgeist better and better. They sponsored my development and maintenance with the team for the 0.7 and 0.8 series and backed up our GNOME sponsored hack-fest. The biggest accomplishment was done when we ported Zeitgeist to Vala, resulting in less memory consumption and much better start-up times.
- Epiphany Zeitgeist History (under development): I am working on patching Epiphany to use Zeitgeist as it main storage for History and “Frecency Search”. The Epiphany guys already have a history rewrite branch in which I am sneaking in some code to replace their SQLite back-end. In the end its less code then what they have
- Gtk-RecentManager (worked on designing the API with Federico, Siegfried and Michal Hruby): One of the tasks that emerged during the Desktop Summit was replacing the Gtk.RecentManager logic (which has some flaws). We started designing and discussing the issues at hand on LGO. Implementation is now being done by Siegfried and Federico.
What is next?
Collabora currently also sponsors Siegfried Gevatter for his work on Zeitgeist since last March. I will be trying to do some more GNOME related work. Currently I am trying to work on prototypes for the GNOME Design team to help them evaluate their designs. I will also be experimenting with some internal Zeitgeist algorithms stuff soon. I don’t really know what is next. But I hope we can go further into integrating more with GNOME applications and becoming a blessed GNOME module.
Fun fact?
I used GAJ to write down my Zeitgeist development hours for Collabora. Pretty helpful tool. I can tell how long a file was open and how many times I modified it.










Great stuff. Any chance to see more integration into KDE software, though? AFAIK the only module Zeitgeist is currently somewhat integrated is the media framework Phonon.
http://blog.martin-graesslin.com/blog/2011/12/experience-from-porting-kickoff-to-qml/ tells about a rewrite of Plasma’s “start menu”. In a comment I suggested to use Zeitgeist in the “Recently used” tab but Martin won’t do it because he wants to learn QML and not rewrite back-ends.
Any chance you guys do that?
Well. The is some impressive work! Zeitgeist need to be more GNOMEy to be fully integrated and accepted though.
Bring all of Zeitgeist to git.gnome.org, talk with the GNOMErs about future directions. With a little love it will be ready for inclusion i 3.6.
Why not?
I get a 404 error when trying to go to the Journal page in extensions.gnome.org. The link you posted goes to Jumplists. Your userpage there lists Journal, but click there and bam: 404.
Anyway, impressive work! Thanks!
@turtleface: Don’t you think it might be better to keep desktop independent software seperate from single desktop environment? Isn’t freedesktop exactly meant for this? Like mentioned in the blog posts, Zeitgeist is also used by non-Gnome applications.
There’s one aspect of Zeitgeist in particular that’s somewhat frustrated me, in my experimenting with it as an activity/history logger. Unless I’m missing something or doing something wrong, it appears to only display history information about files that are currently still present on the filesystem, and discards or ignores any data for files that have since been removed. As a “Recent Files” type system, this is ideal (no bad links!), but as a history timeline or activity tracker it can be rather problematic.
Certain classes of my file activity fit a consume-and-discard pattern. (Think media files, in a DVR-style single-use system where files are typically deleted immediately after viewing.) When I view my activity in Zeitgeist, I see no record of these files. Similarly, if I download a file to my Desktop so I can quickly examine it, then file it away in its proper location once I’ve determined it of interest, any record Zeitgeist had of my viewing that file is seemingly lost. I don’t necessarily expect Zeitgeist to follow the file when I move it (though that would be an interesting feature!), I can manually track it down in its new location. But for me to be able to do that, there needs to be some residual indication that I ever saw it.
I’m just curious if this is something that’s come up among the Zeitgeist developers, and whether there are any thoughts or plans regarding the issue.
@FeRD

The history is there, even if the file is unreachable the history is there… The UI chooses if it wants to display the history of non existent files or not
So if you tell me which apps you are using I can either patch them for you or talk to the maintainers
Cheers
Seif
Thanks for responding, Seif — sorry I didn’t spot this for so long.
I guess the answer to the question of “which apps?” is… well… all of them! That I’ve tried, at least.
I assume we’re talking about the application that’s consuming the Zeitgeist history, not the ones that are “creating” it (for lack of a better word). In which case, mainly I’ve tried the GNOME Activity Manager, which I realize I conflated with “Zeitgeist” in my original comment, sorry for the confusion there. But I’m now using the gnome-shell Journal extension you mention in this article, and find that it also omits since-deleted files from the history display.
Those are really the only Zeitgeist apps I’ve encountered, so far, other than the gnome-shell Jump Lists extension — But in that case, of course, ignoring deleted files is absolutely the correct thing to do.
Hi,
i love your gnome-shell extensions….
Here a small guide for install some of these.
http://marcofalchi.blogspot.com/2012/02/how-to-install-zeitgeist-geekyogre.html
Thanks
Adoro me mostrar peladinha na web cam