zeitgeist team mailing list archive
-
zeitgeist team
-
Mailing list archive
-
Message #00299
Re: GIO And the Magical Patch: A Zeitgeist Story
On Fri, 2009-11-20 at 17:16 +0100, Seif Lotfy wrote:
> We will have the focus problem still running. Getting focus can only
> be done over wnck and some plugins for apps to get the focus of tabs.
> GIO could lead to our current work since we have a set of plugins for
> apps coming. Also i am interested in knowing how much info of the lets
> say mimetypes etc can we pull out of the GIO patch. Will we be able to
> know if documents were closed or stopped being used? Keep in mind:
> Applications know more about their data than GIO.
I did not mean to imply that you could not run your other stuff in
addition to GIO. I am okay with keeping (and adding to) everything you
have now. This is merely to improve what Zeitgeist can know.
Things this patch can provide you with:
- The name of the application the user launched (localized if desired)
- How to launch it
- What it was launched with
- What mime types it supports
- A description of the application (localized if desired)
- The name of the binary that was launched
- The flags the application was launched with
Probably more...
>
> I think using GIO andd application plugins together could be a
> solution, Especially because GIO will allow us to even know when a
> user launched an app. This we dont have now. We only know if he
> launches a document.
Agreed
>
> Although I feel it could make most of our app plugins redundant i can
> still live with it.
> One dataprovider that does all the work is a good idea. We can just
> use the plugins to determine close and focus events and stuff that can
> not be covered by the GIO patch.
> I need to think it through more....
> Keep up the good work guys :)
>
Once again, I was not suggesting removing any of the things you already
have, just using this in addition to what you have.
>
>
> 2009/11/20 Jason Smith <jason.smith@xxxxxxxxxxxxx>
>
> On Fri, 2009-11-20 at 07:48 +0100, Mikkel Kamstrup Erlandsen
> wrote:
> > 2009/11/19 Jason Smith <jason.smith@xxxxxxxxxxxxx>:
> > > Zeitgeist Developers,
> > >
> > > There is an amazing amount of activity surrounding the
> happenings of
> > > Zeitgeist. Lots of excitement going on and obviously
> Zeitgeist will
> > > continue to be an important part of the linux experience
> in the coming
> > > years. Zeitgeist has not been without issues, there have
> been two major
> > > ones I can think of.
> > >
> > > - The API is too complex
> > > - The information quality is fairly low without lots of
> item providers
> > >
> > > The API issue has been largely addressed with the 0.3
> release and I hope
> > > the API can be stabilized almost completely at this point.
> The
> > > information quality issue has also received considerable
> attention,
> > > however I believe more can be done.
> >
> > I think you are right about this, and it is basically also
> what we
> > agreed on in the hackfest.
> >
> > About the Zeitgeist API I actually think the new API is
> pretty sound
> > (at least InsertEvent, GetEvent, and FindEventIds - we have
> not worked
> > a lot on the last parts of the API). Just yesterday we
> landed a branch
> > of mine adding a client lib (in Python for now) on top of
> the DBus
> > interface. I think that it makes it pretty much as easy as
> it gets
> > (modulo the fact that there are no sync methods in the API,
> only
> > async; synchronous methods are made of evil).
> >
> > When we have some more experience with the client API in
> Python I'll
> > start on a client lib in C/GObject. It is my hope that I can
> line it
> > up with the inclusion of GVariant+GDBus in GLib, but I don't
> intend to
> > block on it if the inclusion drags out.
> >
> > > In short I believe the problem with Zeitgeist is it works
> largely at the
> > > application level. Getting individual applications to
> provide
> > > information to Zeitgeist, or watching applications through
> wnck.
> > > Instead, I believe a lot more can be achieved at the
> toolkit level with
> > > a relatively small patch (or perhaps set of patches) to
> GIO and
> > > libgnome-desktop.
> >
> > Indeed! I am glad you bring this up. I have been wanting to
> go down
> > that route myself for a while - like hooking into
> GtkRecentManager
> > etc. I have not looked much into it because we have been
> busy
> > finalizing the API though.
> >
> > > By patching these parts of the toolkit, we can be notified
> easily of
> > > every file the user intentionally opens, every
> applications they launch,
> > > every process they use, quickly and efficiently with very
> little code. I
> > > have attached a GIO patch that adds a new extension point
> into GIO that
> > > allows a loadable GIO Module to track all launches
> of .desktop files.
> > > This patch is early and should be considered beta quality,
> however it
> > > provides the needed interface to begin writing a GIO
> module that will be
> > > extremely useful to Zeitgeist. I have also included a
> skeleton (and very
> > > quickly written) GIO module that essentially does nothing
> using this
> > > extension point.
> > >
> > > I believe there to be good reason to look into getting
> this patch
> > > upstreamed, and I believe it can be done in a reasonable
> time frame. The
> > > benefit to Zeitgeist really could be amazing.
> >
> > I had a quick look at the patch and it looks pretty solid. I
> have not
> > found the time to take it for a test spin though.
> >
> > I think it could be a good idea to write down a list of
> things we want
> > to hook into in the lower levels to find out just how much
> hacking we
> > need done to get to Zeitgeist nirvana. Off the top of my
> head I can't
> > come up with anything more than app launching and
> GtkRecentManager,
> > but it needs some more thought[1]. Then there are
> application level
> > plugins off course, we track those on
> >
> https://blueprints.launchpad.net/zeitgeist/+spec/zeitgeist-external-dataproviders.
> >
>
>
> Mikkel
>
> With regard to your weariness to using GIO to track IO, I
> think you are
> very prudent. The reason I chose to hook into .desktop file
> launches is
> that this will also get fired when you do something like
> double click a
> document in nautilus since it goes out and finds the default
> application
> and launches it through the .desktop file. Basically this is
> the awesome
> side effect of getting exclusively user initiated IO.
>
> GtkRecentManager would be interesting but I think we should
> push for one
> patch at a time. After looking over my patch again I think it
> needs a
> quick modification to also provide a list of the uri's that
> the .desktop
> file was launched with. A simple oversight to be sure, but
> still
> something we should fix.
>
> I hope we can begin to push this patch for upstream inclusion
> very very
> soon so that we can get zeitgeist using it even sooner.
>
> Jason Smith <jason.smith@xxxxxxxxxxxxx>
>
>
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~zeitgeist
> Post to : zeitgeist@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~zeitgeist
> More help : https://help.launchpad.net/ListHelp
>
>
Follow ups
References