On Menus and Commands
Menus are a clumsy way to navigate. This is true both for hunting through reams of bookmarks (which tend to be poorly organized anyway) or a complicated start menu for local applications (also likely to be poorly organized). Menus tend to contain lots of entries you rarely use, and the ones you do often use are buried several layers deep.
The command line is a natural and more powerful interface for giving commands to a computer. A metaphor might be made between trying to communicate with another person by pointing at a word on a menu of possible choices, versus just telling them what you want. Language is far more expressive and offers nearly infinite flexibility, although it has the additional cost of having to learn the vocabulary first.
It's somewhat of a myth that only elite ubergeeks can find utility in a command-line interface. This may be true for something like the unix shell, which is a full-featured programming environment, but simpler command lines can be useful to everyone. Take the Google search engine, for example: this is one command line interface that everyone knows how to use.
Background
Catapult is inspired by local application launchers such as KDE's wonderful Alt-F2 run dialog and Quicksilver for Mac OS X. KDE first added Alt-F2 capability coupled with web shortcuts over half a decade ago. It was revolutionary at the time, but unfortunately hasn't changed much since then.
Both KDE's run dialog and Quicksilver are great, but they have a few problems. First, they are geared toward launching local applications, ignoring the modern reality that 90% of the apps we use on a daily basis are on the web. Yes, they have web capability (KDE's web shortcuts are awesome, and the basis for much of Catapult) but one gets the feeling that it is an afterthought and not the primary focus.
Second, it's difficult to add new launchers. KDE's web shortcuts aren't too bad, but they do require navigating a bunch of menus (oh the irony!) to a configuration page, and then requiring a somewhat obtuse syntax for inserting the search terms. Quicksilver... well, it seems to be extremely powerful, but at the expense of an extremely challenging learning curve. Even something as basic as adding Google search capability is a 9 step process which is not at all intuitive. Certainly it doesn't seem like the sort of thing that just anyone could learn to do, which is a shame, because the concept behind it is not terribly complex.
The final problem is that both of these launchers are heavily tied to the platform they are running on. Now that all our important applications are web based it's easy to hop between operating systems. But if the tools we use to navigate to those apps vary by operating system, some of this benefit is lost.
Enter Catapult
Catapult is completely web-based, which solves both the focus on local applications and cross-platform capability. The launchers are written in javascript and executed by the user's browser. Adding new launchers and managing your launcher kit is straightforward. And when you create new launchers they default to sharing with other users, so most users should find they rarely even need to write launchers for popular apps, they can just grab those written by others.
Note that the launch page command entry box will default to sending you to whatever URL you enter, so you need not use your regular address bar or otherwise switch away from it when you want to navigate to a website by entering or pasting the URL.
Tips & Tricks
- You can make the launch page load faster by using "Save As" from your browser to save the HTML to your local hard drive, then use the file you saved as your homepage.
- In Firefox, Alt-Home is the key combo for returning to your homepage. Use this in place of Ctrl-L or other key combo you might press when you want to jump to a new page.
- By default, Firefox opens new tabs blank. Catapult users would probably rather have it open to the launch page. This can be accomplished by installing the New Tab Homepage plugin.
- I recommend assigning a hotkey to launch your web browser. In Ubuntu Linux this can be done by selecting System -> Preferences -> Keyboard Shortcuts and clicking on the "Launch web browser" line, then pressing the key you want to use. Some combos you might try include Alt-F2, Ctrl-F9, or an unused key such as Pause (usually located above and to the right of your page up / page down keys). Once you've done this, you can start launching before you monitor even powers up all the way. Just press your browser hotkey, wait a heartbeat for it to load, then start typing a Catapult launch command.
API
You can invoke Catapult through a RESTful call:
http://catapult.dusk.org/launcher?launch=[launch command]
The launch parameter should be urlencoded, naturally. Here's an example of how this API can be used: create a catapult script to launch pages straight from the unix command line.
#!/usr/bin/env ruby
require 'cgi'
cmd = ARGV.join(' ')
cmd = CGI.escape(cmd)
url = "http://catapult.dusk.org/launcher?launch=#{cmd}"
system("firefox #{url} &")
Privacy
When you run a launcher, only the command is sent to the server, which retreives the javascript that will execute the command. So for example, if you did a Google websearch, the search terms would never be sent to the Catapult application, only to Google. In other words, using Catapult to do a Google search is no less private than just going straight to Google.
Note that this is not true for the API described above, since the entire command is encoded into the URL.
The Competition
The only other comparable app I've found is Yubnub. It's similar in quite a lot of ways. Its main strength seems to be that, having been around longer, they have a lot more commands, and the interface for creating complex commands from just a URL is more powerful. On the other hand, there seems to be no ability to make a full script, so a lot of stuff you can do with a single Catapult launcher is not possible there. For example they have separate commands for composing a new gmail email vs. just opening your inbox, instead of using a subcommand (i.e. "gmail" and "gmail someone@somewhere.com").
Another small point is that the command processing is done server-side instead of in javascript in your browser. This probably makes it easier to debug your commands, but it does make it slightly slower for the round trip to the server, and also doesn't offer the same privacy protection.
It's a great app though, definitely check it out.
Credits
Catapult was written by Adam Wiggins. You can reach me at .