Tracker

Tracker is a synergy of technologies that are designed to provide a highly sophisticated, innovative and integrated desktop.

For installation, see MetaTracker on the help.ubuntu.com wiki

Tracker provides the following:

  • Indexer for desktop search (for more details see this spec : https://wiki.ubuntu.com/IntegratedDesktopSearch)

  • Tag database for doing keyword tagging of any object

  • Extensible metadata database for apps like gedit and rhythmbox which need to add custom metadata to files

  • Database for first class objects allows using tracker's database for storage and implementation of First Class Objects and the Gnome 3.0 Model.

A nice summary of how tracker can make your desktop work better is given below :

  • Imagine downloading an mp3 file to have it automatically appear in Rhythmbox, complete with artist and track information.
  • Imagine shooting a photo on your digital camera and having it appear in f-spot, without having to be imported.
  • Like tagging? Tracker lets you apply tags to files, freeing you from an endless hierarchy of folders.
  • Tracker not only allows you to search for files based upon what's inside them, but also by properties which describe them (metadata).
  • Tracker is smart. By treating files as first class objects, it knows that Photos have widths, while Music files have artists. Tracker knows that Documents have authors and Videos have durations.

  • Want to find photos taken with your SLR digital camera, but exclude those taken with your webcam? No problem!
  • Want to find all Openoffice documents created in December, with more than 10 pages, containing the word "cheese"? No problem, tracker can do it.
  • Tracker is the glue that helps developers connect GNOME together, and another reason users will love the GNOME and Ubuntu platforms.

Tracker is written in 100% C and is designed to be both fast and efficient with your system's resources. Tracker's performance profile includes:

  • Small - <5mb RAM, great for low-end systems, and easily meets Ubuntu Feisty's RAM usage targets.

  • Fast - hundreds of searches per second will not slow your computer, drain your battery or waste your system resources.
  • High-performance indexing - can index your files faster than most other indexers (especially when run with --turbo).
  • Standards compliant - tracker has a dbus interface and utilizes the FDO technologies and specs.

Current Plans and integration with Gnome apps:

  • We already provide an excellent and efficient desktop search capability for files with its own tracker-search-tool, nautilus integration (with "Find" tool and "Tag" file option) and deskbar integration. We will be expanding on this to include emails, chat logs and applications in the next month or two.
  • We will be expanding our T-S-T GUI to provide more advanced searches using specific metadata and extensible metadata/tags.
  • We will in the near future provide SLAB, tiles library and a snazzy GTKFileChooser replacement which will all exploit tracker's features including tags.
  • RhythmBox already provides tracker as a plug-in but the maintainer is also keen to exploit our first class object technology and extensible metadata capability by utilizing tracker instead of its current XML database.

  • Epiphany wants to use tracker's first class objects for bookmarks and history management whilst also providing searches for them.
  • Deskbar applet is planning on using tracker's database for storage needs.
  • Leaftag maintainer happy to use tracker as a backend for tags.
  • Longer term we plan on creating our own file manager for tracker which can fully exploit tracker's full potential.

Comments and Discussion

How to disable tracker globally :

  1. Disabling tracker for globally (for all users)
    1. Edit /etc/xdg/autostart/trackerd.desktop file with root priviledges (sudo vim, gksudo gedit ...)
    2. Add "Hidden=true" to the end of the file
    3. Do the same for /etc/xdg/autostart/tracker-applet.desktop if you want
  2. Disabling tracker for your user only
    1. Enter the directory "~/.config/autostart", create it if it does not exist
    2. Create a file named trackerd.desktop
    3. Paste the following into the file, save and exit

      [Desktop Entry]
      Encoding=UTF-8
      Name=Tracker
      Hidden=true

- Gokdeniz Karadag

Kdvolder: This all sounds great. But one comment I have on the current integration with Nautilus in Ubuntu Gutsy is that it comes at a dear price of making the most common usecase impossible/hard to do:

Use case: I am browsing with Nautilus and want to search for a file whose name contains "account". I press CTRL-F and enter "account" in the search box. Now I get a long list of irrellevant results, presumably files which contain the word "account" some where in there contents. Result: I cannot find the file I want because I'm overwhelmed with spurious results. I don't give and start trying to figure out a way to make my search more specific, but there doesn't appear to be any. Frustrated to no avail I search the net on a way to disable tracker. I decide to uninstall tracker with synaptci in the hopes to get the "old" search for filename behavior back. But now... search in Nautilus doesn't work at all.

So... what I'm saying is, it is useful to be able to index and search based on file content. But 90% of the time, I really prefer to search on file name, because I more or less remember the name of the file, but not where I've put it. Now it is very hard to find that file with Nautilus.

Request 1: make "search by name" the default, since it is the most common case, and make search by content an option than can be selected if I so whished it.

Request 2: Is someone doesn't like tracker for some reason (e.g. they don't want to have the indexer running because of performance reasons) there should be an option to turn it off completely or uninstall it and this should not break other tool's functionality, let them fall back on other search mechanisms instead.

PS: I did discover later that under "places > search for files" I can search for files by name. But it is rather harder to find the menu there, and I feel like the most common use-case should be in the most common/obvious place to execute. It certainly should do that if tracker was uninstalled or disabled.

PS2: Thanks for the work on Nautilus / Tracker / Deskbar applet. I hope my comment does not cause offense but can be taken as useful criticism.

Warbo: I can't wait for this to be fully integrated, and I'm currently using some external packages for tracker, nautilus and deskbar, but I have an issue to raise: How much tagging will be done automatically? The use case of the Nikon digital camera is an obvious example of automatic tagging by whatever tracker-aware photo application is used, but the incredible usefulness of this also comes with concerns about privacy, since so much information is available about a user based on their database. Maybe there should be a preference setting for this level, as some users would love to have loads of information for every file in case they need it later, but others would be concerned with privacy. For example I could imagine a lot of people getting upset at GAIM tagging a received MP3 file with the sender's IM account name. Perhaps the file manager should be given a right-click option "Disable all tagging for this file/folder" (with a confirmation dialogue)?

Stijngysemans: I'm really exited about this project! We need a small adaption to F-spot, the Ubuntu's default Photo Manager, to integrate tracker. The privacy issue is discussed in this thread: http://ubuntuforums.org/showthread.php?t=439535. I propose also the following idea: tight integration of "Persons". I've got friends listed on my cellphone, on my contact list in Gaim, in evolution and in f-spot. Why not combine the data of these friends into one peoples database.

""Use case 1:""; Person X on my list in Gaim ask me to send all the pictures I've taken of him. Of course I do tag my pictures so I can easily find those picture in f-spot. Now I need to export those picture to, let's suppose, the desktop. Afterwards I can create an archive file and send that file to my contact. Wouldn't it be easier, if the Gaim list and the f-spot user list where synchronized. Then you could just click on “send all pictures of this contact”.

""Use case 2:""; After a party John received both the cellphone number and Hotmail address of a girl. When John comes home and syncs his cellphone with his laptop, the computer asks if he wants to add the girl to his contact list. After a few hours, pictures of that party are published on a website. He downloads some of them and tags them. Now he doesn't need to create a new tag in F-spot because F-spot already knows the girl.

After a few days, John really wants to date with this girl he just has met. He opens Evolution and sends a mail to the girl. The email address is already in the system. Only a ten minutes later, he receives a new mail from the girl. The picture of the girl is automatically shown when he opens the mail (the one he tagged in F-spot). Right! He finally got a date and he schedules a meeting in Evolution.

On Friday a pop up from Evolution is show, together with a nice picture of the girl: don't forget your date tonight!

AndersWallenquist I think tracker is the most relevant place to implement an Ubuntu Time Machine, eg an automatic backup and replication utility. We have already unison, rsync, rdiff-backup and duplicity which all are very good utilities for both backup and replication - but it takes huge of time for these utilities to check the home catalog for changes (when loggin in and out). Tracker acts as soon a file is changed and therefore Tracker its the best place to implement these kind of enhancements.

""Use case 1;""; Arnold logs in to his office-computer, after a few seconds his local documents are up-to date with his home-catalog at the office server. Later in the afternoon he lends a computer of a teammate and logs in using his home-directory at the office server and finds all of his work done before lunch. Every change he saved on his office-computer where replicated automaticly to the office-server by Tracker. Tracker is also aware of the home-catalog on the office-server and optimize the updating of the Tracker-index-database on the server. Arnold could have configure Tracker to use only the index-database on the office-server, but in this case he wants a local copy so he can work offline.

""Use case 2;""; Eve is working on a very important document and has also done some work in gimp on some pictures imported in this document. Suddenly she wants to know how these pictures was looking last week in an earlier version of this document. Its an easy task, just right-clicking in Nautilus because Tracker has a log over every change in the files in her home catalog.

""Use case 3;""; Anna is a heavy user of the tagging system and the new file open dialog in Gnome that is Tracker aware. She is not only using the local tracker-index-database for her local documents in her home-catalog, she has also a prenumeration on several central tracker-index-databases that has indexed remote documents on the office server shares that she regulary mounts when she has her laptop-computer connected on the local office network. Tracker finds automaticly new tracker-index-databases as soon Anna mounts a new remote directory, all changes Anna does on remote documents are tracked down and updates the remote database.

Tracker (last edited 2009-03-05 12:00:34 by gokdeniz)