Ideas from the Net:
	* Do a background google search and provide the first hits in the list.
	* Tab completions, where applicable, if it doesn't clash with usability
	
Indexer:
  - Provides on-disk caching which may be useful

Preferences:
	* Pref panel for backend custom ordering

Backends TODOs:
	General:
	* Pluggable backends ? scan ~/gnome2/deskbar-applet/*.py and /usr/lib/blah 
	  for subclasses of Handler  and add them to handlers list
	* Use a thread to init the various handlers ?
	* Do something about hardcoded path, for example /usr/share/applications
	* Remove uneccesary markup for i18n
	* Some icons (.desktop one notably) do not scale down, that's ugly
	* Asyncronous operations to be more responsive (twisted?)
	* Launch & show a CLI program
	* Pkg-config for ext handlers
	
	Web Address, Email Address: [web_address.py, email_address.py]:
	* Change regex for URI, currently it doesn't allow user@host
		
	Browsers (ephy, ff, moz): [epiphany.py, mozilla.py]
	* Use smart bookmarks inside the search bar (eg. google smart bookmark
	  performs a search on google for typed word) for Mozilla+FF
	* Use epiphany's history file to present history items, same for Moz if possible
	* Only show preferred browser's bookmarks
	* Monitor changes with gnome vfs
	* Index history
	* Search "Search Google" for key, find somthing..
	
	Address Book + Gaim contacts: [galago.py,Dummy implementation, waiting for python bindings]
	* Use galago instead of custom parsing (python bindings are coming)
	* Index contact email, names
	* Allow Send IM to: and Send email to:
	* Index Thunderbird address book, see evolution-sharp for possible evo-data-server python bindings
	* Galago works only for gaim ?!

	File-system: (provide way to open file/dirs) [filesystem.py]
	* ?
	
	Gtk Bookmarks [gtkbookmarks.py]
	* Retreive stored remote locations, like the "Places" menu items
	* Monitor changes with gnome vfs
	
	Programs [programs.py]
	* Currently we provide special special functions for certain specific programs
	  eg. gnome-dict, gnome-search tool, is that good, how to do it better..
	* Maybe maintain a cache of /usr/bin:$PATH files instead of rescanning each startup
	* Use localized comments and program title in .desktop files
	* Detect duplicates with PATH programs
	* Do not show items not in menu or removed by user
	* Monitor changes with gnome vfs
	
	Recently-used files [todo]
	* Index and present
	* Wait until 2.14 bug code refactoring upstream
	* Monitor changes with gnome vfs
		
	Beagle [todo]
	* We should also pass the string to beagle via some library (libbeagle or similar)
	  and show the first matching results in the dropdown
	* Use beagle to retreive metadata about files, for example in recent-files ?
	
	Misc
	* Put some hardwired backends if really needed.
	These are the old provided backends:
	`     Search YubNub for %s 								http://www.yubnub.org/parser/parse?command=%s
	a     Search A9 for %s 									http://www.a9.com/%s
	av    Search AltaVista for %s 							http://www.altavista.com/web/results?q=%s
	cddb  Search CDDB for %s 								http://www.gracenote.com/music/search.html?f=artist&f=disc&q=%s
	cc    Search the Creative Commons for %s 				http://search.creativecommons.org/index.jsp?q=%s
	dmoz  Search the Open Directory (DMOZ) for %s 			http://search.dmoz.org/cgi-bin/search?search=%s
	ebay  Search Ebay for %s 								http://search.ebay.com/%s
	g     Search Google for %s 								http://www.google.com/search?q=%s
	imdb  Search IMDB for %s 								http://www.imdb.com/find?q=%s
	msn   Search MSN for %s 									http://search.msn.com/results.aspx?q=%s
	stock Search Yahoo Stock Quotes for %s 					http://finance.yahoo.com/q?s=%s
	t     Search Technorati for %s 							http://www.technorati.com/cosmos/search.html?url=%s
	wp    Search Wikipedia for %s 							http://en.wikipedia.org/wiki/%s
	wt    Search Wiktionary for %s 							http://en.wiktionary.org/wiki/%s
	y     Search Yahoo for %s 								http://search.yahoo.com/search?p=%s


What happens when text is typed in the entry:
	* We have a list of backends, each backend is queried for the string.
	* The backend retun a list of matches objects
	??: A backend can stop the chaining if he thinks no other backend can use the text (ie. paths)
	??: Priority system ?
	The backends should have a priority:
		Launch program for exact match
		Launch program for description match
		Send mail & IM
		Bookmarks
		Web Search
		Beagle
		Path
	
Proposed API for backends:
See handler.py for the base classes to subclass for new backends
