Tuesday, 13 February 2007

Nautilus & Metadata, love at first sight

Last week, John Stowers and I spoke about Tracker and Nautilus integration. After looking at Affinity and some of my mockups, he pointed me to some excellent work he, and others, had been doing to get Tracker more integrated with the GNOME Desktop.

This gave me some ideas, so I agreed to try and see what I could do to help the effort, and after some pointers from John's current work on emblem support, Jamie's help on #tracker, and a Alex's help in #nautilus, I can bring you this:

What you see there is a 'metadata tile', which goes and fetches metadata from Tracker about the currently selected file in Nautilus. It is all done asynchronously, so you do not feel a difference while browsing, even when you frantically click folder after folder looking for a file (which I still manage to do, even with Beagle & Tracker installed :-s ). Also, if it cannot find any metadata, it will hide itself, letting you have more viewing space.

This is extremely alpha software ATM, so no released code yet, expect some by Sunday/Monday. It doesn't crash Nautilus or anything that sinister, but I need to clean up the code, and also complete support for Documents, Videos, & Images.

You may also notice the little 'Tags' label at the bottom. Well, this works exactly like on all those web 2.0 sites. Clicking the label with allow you to edit the tags in an GtkEntry. You just type in all the relevant tags, separated by spaces, and it will update them for you. This, together with planned better support for tags around GNOME, will have you tagging anything & everything.

Regarding the UI, please bear in mind that this is alpha software ATM, I need to make the edit ting capabilities more apparent for the user, plus the font weights & sizes need to be sorted out. Also, I haven't touched this with cairo yet ;), so expect some 'eye-candy' stuff soon.

The tile also supports folder.jpg/png files, as most of my Music collection & Video collection is organised like this!

Here are some ideas which I am aiming for:
* Beagle support (if possible).
* Let the user specify which fields to show.
* Editing of Tags & Comments (and maybe some other fields also).
* Document tile which shows a snippet of the document (together with the usual Author, Word Count etc).
* Video tile which shows various video metadata.
* Picture tile which shows EXIF metadata, and failing that, basic picture metadata.
* Proper thumbnailing support for PDFs, Videos, Pictures etc.
* Be able to read the album art from the file directly.
* Allow it to be disabled from the menu.

There are more ideas, but I cannot think of them right now! If you have ideas, express them here, or mail me, I am especially open to UI ideas right now, as I want to decide on a set UI scheme soon. I am also intrested to hear what you want to see in the tile for different mimetypes.

That's about it for now, I am going to hack Awn for the rest of the evening, as I have been neglecting it, so expect a blog post for new Awn features sometime soon!


Anonymous said...

I like the way this is going :)
(even if I don't use anymore Nuatilus because I switched to xfce, I'm really fond of tracker).

Keep up the good work!

AWN is really nice too for a dev release, it just need more configuration-possibilities and some usability.


Anonymous said...

Hi! Thank You for the work. I use AVN and look forward to see new breathtaking features & functionality in Linux.

all the best


Anonymous said...

Hi Neil, congratulations for this too!

I'd suggest another possible field of integration between Nautilus and Tracker: the file property dialog. While John Stowers is taking care of the Emblems/Tags part, I'd like to know your opinion about implementing something like this next:


Neil J. Patel said...

Hi all!

Thanks for the compliments!

@ago : _more_ configuration ? lol, whats left ;)!

@pollycoke : Yep, that looks very do-able, it can actually be a nautilus-extension, so no need to mess around with nautilus internals. I think it will make a nice choice for those people not interested in the tile, I'll be sure to knock something like that up when I get some more time!

Jack Kerouac said...

Certainly interesting, but when I followed th directions, I got:

dpkg-deb: building package `tracker-search-tool' in `../tracker-search-tool_0.5.4-1_i386.deb'.
tar: -: file name read contains nul character
dpkg-genchanges -b
dpkg-genchanges: warning: unknown information field `Xb-Python-Version' in input data in package's section of control info file
dpkg-genchanges: binary-only upload - not including any source code
dpkg-buildpackage: binary only upload (no source included)

Sigh! ;(

Kenneth Rohde Christiansen said...

You really need to implement the GTK theme instead :-) I really cannot wait!

Mike Jones said...

"That's about it for now, I am going to hack Awn for the rest of the evening, as I have been neglecting it, so expect a blog post for new Awn features sometime soon!"

Cant wait for the new awn features! :-)

DeXtA said...

love to see that tagging use libleaftag. Hope you go down that path.

Roumano said...

This is very nice improvement,
But i hava a question : if we select more than one file ( can we see & edit some information about it ? )
Like select all mp3 of a album & change the name of the artist ?

Anonymous said...

Sweet! Some suggestions:

- make tags clickable, so that clicking a tag opens nautilus/tracker-search-tool with all files matching that tag

- Add some visual clue to the users that they can actually edit the tags (but it sounds like you are already thinking about this)

Nice work. Cheers,
kamstrup // grillbar.org

zbrox said...

It would be cool if it supported album art not only through folder.jpg files, but also through cover.jpg, .cover.jpg, and .folder.jpg.
These are the only ways I've seen players store cover art. There may be more, but I think these are the most popular.

Anonymous said...

It kills! (can I say that in english? You get the meaning I think)

Nice job! Can't wait to see that in Nautilus. For photos, please don't forget the super useful info for bad photographers like me: speed/aperture/focal length. But if you explain that you can customize the fields the way you want, maybe my request is useless.

Anyway, good job, Linux really needs an efficient indexer/search engine/metadata management system, and that looks promising.

Anonymous said...

Thank you for your work!

What do you think to adopt directly XMP to store the image metadata?

I did a little gui to manage some basic fields


Neil J. Patel said...

@patrick: hmm, not sure about that...maybe ask on tracker-list?

@dexta: ATM its using trackers in built tagging support, but it should be very easy to implement a new provider once I restructure the code.

@roumano: I think that feature is better implemented as a nautilus-extension. I however want to implement support of group tagging & recursive tagging.

@anon: "make tags clickable" - good idea, let me see what I can do.
"Add some visual clue ..." - yes, I am thinking about this, and I think i've cracked it. Stay tuned for the next update!

@grigio: Thats agood idea, to allow external editors of the file metadata. Let me see what I can do!

Anonymous said...

regarding the Tags, it would be nice to have a cloud created as well.

ie: http://thepiratebay.org/searchcloud

Anonymous said...

Really cool feature!

I think this should be implemented on a side pane. Possibly on a second side pane, at the right of the window, and with autohide/exapand/collapse features.

Anonymous said...

Thanks for the nice post!

erkin said...

Hey Neil, great work!
It's been some time since you posted this. Are you still working on it? Any news on when we can expect to see this or some similar functionality?

Anonymous said...

Yeah... any updates. Man, tagging files and documents and music in nautilus... that would rock so much.

Anonymous said...

Alas, it's 2010 and we still don't have this

Seb said...

Yes, I'm curious what happened to this.. Tagging & file management is love at first sight for me, but I'm only finding half finished solutions.. see also topic here; http://ubuntuforums.org/showthread.php?t=1474739