Searching and Summoning

Computers these days usually have some way to let humans search for stuff. Most of them present the results in a long list for the human to navigate. But depending on what you're trying to do, that might not be the best or even a reasonable interface to use.

What is Searching and Summoning?

Let's think about movies for a bit. Imagine you're looking for movies starring Jet Li. You might use some computer interface, type some terms like "Jet Li", and it might present a list of movies he starred in. This is searching, and a list of search results is a completely reasonable result to get here, you might care about any of them.

Now imagine you're instead looking for the specific movie called Hero (from 2002 and starring Jet Li). This is a different kind of activity I call summoning: you know what you want and you want it to be here, now. You don't care about other movies with Jet Li, or other movies called Hero. Being presented a list containing all those movies is now an obstacle that the computer is putting in your way.

Of course the computer cannot know what we want to summon so something like a list seems like a necessity, but having to find the thing we want from that list means that we are lacking affordances to be specific enough about what we want.

When is Summoning Relevant?

Consider these screenshots I took on my machine. They show search results for the term "sound" in the GNOME Shell Overview.

screenshot of the first page of GNOME overview search results for the term "sound", you see applications, settings, and music albums; one of the results from settings is called "sound" screenshot of the second page of GNOME overview search results for the term "sound", you see files and emoji; one of the results from emoji is called "sound"

In case you're unfamiliar, GNOME supports applications being "search providers" which lets them contribute sections of results to this overview search. In the system settings you can enable or disable these search providers, and define the order their sections appear in. So you have to specify the order once for all future searches.

Which result was I looking for with this search? It depends! In the past I probably would have wanted the Sound Settings. For a while, when I searched for "ound", the only result I would get would be the Sound Settings, because application search didn't support that kind of matching. This was a happy coincidence – I'd discovered that "ound" took me immediately to what I was thinking of, and it was because of the way GNOME search was working. An accident of the design had become useful infrastructure for me.

So looking at the above screenshots again, when I type "sound" it's most likely that I'm looking for the Sound Settings. There are better ways of finding the applications and soundtracks we can see in the screenshots but if I try to drill down – by adding more search terms – then the Sound Settings won't appear in the results anymore. But I might also want the emoji, the other result that'd disappear if I tried to drill down. And it's so far down the lists it doesn't even fit on my screen!

This would not be a problem if I could indicate in which context I want to search. Staying with the same example, I could specify this context by choosing settings, or emoji, or even music, or by staying with the default (applications). The resulting list would be much shorter. And while that might be a shortcoming while searching, it's an enormous boon while summoning! Sadly there is no way for me to tell the computer which kind of thing I'm looking for so I'm left to navigate this list.

Where did Summoning Come From?

The searching/summoning terminology comes from Nicholas Jitkoff's excellent Google Tech Talk about Quicksilver, and it resonated with me. Nicholas created Quicksilver, and later (after he joined Google) created a kind of spiritual successor in Quick Search Box that inspired and informed much of my thinking around this.

Both of these applications were all about context. We'll come back to how you use them in a bit.

Why Command Lines are Not Enough

Launchers that became popular later, like Alfred or open-source clones like Ulauncher or Albert, let you define custom prefixes for your searches that essentially define their context. But this turns the search interface into a command line with all the downsides of a command line interface, including incoherence and lack of discoverability.

Imagine instead if, using an application like this that's ostensibly all about searching for stuff, you could search for the context you want to use instead of memorizing its prefix. Imagine if there were no artificial distinction between your password manager as an application, and your password manager as a search context.

That's the approach taken by Quicksilver and QSB: you find things and then decide how to use them; open or launch them, browse them, search inside them… whatever you choose. And that would be an interface I'd enjoy using.

Introducing: Gnome Summoner

So I decided to bring this together in an application that I can use on my computer. I call it Gnome Summoner. Here it is in action, letting me search for terms and contexts - summoning:

Update: And it's available now!