One of the most useful features of GNOME 3 is the awesome “just type” search system. Being a heavy keyboard user myself, I just love the ability to hit and type what I’m looking for.
The results returned by the system are not limited to what GNOME Shell handles internally; since GNOME 3.4 third-party applications have been able to have the search string be forwarded to them and provide additional results, by implementing the org.gnome.Shell.SearchProvider DBus API. The Shell then uses the provided information and displays results in a grid view, which I’m sure you’re familiar with if you used GNOME 3.
In GNOME 3.8, scheduled for March, we want to make a step forward in making search even more useful, and add some missing features and bling in the process.
The panel allows to control the presence of each application individually among the returned results, as well as toggling on and off application results from the Shell entirely; it also makes it possible to configure the order in which they are presented by the Shell.
The little gear icon in the toolbar would ideally pop up a search configuration dialog provided by the application itself, but since the infrastructure to make that possible is not there yet, right now it displays the dialog above. The locations there are those that will be indexed by Tracker, and you can add and remove them individually.
Shell Search Layout
The panel is not the only new feature; last summer Tanner Doshier worked on a relayout of how results are displayed in the Shell, based on these awesome mockups from our design team. Unfortunately his work didn’t make it in time for the 3.6 release, so this cycle I picked up his patches and brought them up to speed for inclusion in git master.
As you can see from the design page, changes are both visual and functional:
- search provider results are now displayed in a list, for a better distinction between them and the application launchers.
- the icon of the application is now displayed close to its result section: this is useful to immediately identify it in the list. Clicking it will launch a full search in the application itself, if what you’re looking for is not amongst the top results.
- there’s now space for the search provider to show a descriptive string for each result, which can give more context as to why a result matters for the search string.
Most of this design is already implemented in 3.7.4, including the infrastructure to make it possible, but there’s still a lot of visual details to figure out and polish before the final release. In order to support the new search features, we introduced an org.gnome.Shell.SearchProvider2 DBus API. The Shell still supports launching providers implementing the previous interface, but of course those won’t get to use the new features (e.g. passing the search down to the application).
Some work also still needs to be done to nicely support highlighting the search terms in descriptive texts returned from search results. If you’re interested to help, feel free to get in touch!
Finally, I made a short video to showcase this feature – that is all code already in GNOME git. Enjoy!