Web

The simplest way to use Quicksilver with the web is to use text mode to enter a URL in the first pane and use the Open URL action to open the page in the default browser. It should be the default action for URLs (if not raise its rank in the Action preferences).

There is also an Open URL With… action which allows another browser (or any application) to be selected in the third pane. This action is disabled by default, enable it in the Actions preferences by checking its box.

Since URLs are just text, there are several easier ways to get one into the first pane. Copy one from some application and paste it into the first pane with V. With configured correctly (see Combining Activation and Selection), just select text in a Cocoa application and type to activate Quicksilver and automatically paste the URL into the first pane. The comma trick also works, so multiple URLs can be entered separated by commas and opened with just one command.

URLs opened from Quicksilver will appear in a new browser tab or window depending on how the browser is configured. Safari will use a new window by default. To change it to use tabs open Safari’s preferences and in the General tab for “Open links from applications” choose “in a new tab in the current window”. In Firefox go to preferences, Tab Browsing and for “Load external links in” choose “New Tab”. In Camino open preferences, Tabs, and for “Link from other application” choose “Opens in a new tab in the frontmost window”.

Those are the basics but Quicksilver integrates with the web in several more ways. Browser plugins make bookmarks available to the catalog for easy opening and some provide more features. The Web Search Module plugin lets web searches be entered directly into Quicksilver with the results shown in the browser. Several online services have plugins of their own making their data accessible to Quicksilver instead of using a web form. Combine these with triggers and proxy objets and Quicksilver blurs the line between native and web applications.

Web Browsers

There are plugins for four web browsers: Safari, Firefox, Camino and OmniWeb. These all provide access to bookmarks stored in the browser and some number of other features. Install the plugins only for frequently used browsers. It’s fine to install more than one, but be cautious of the catalog getting too large if there are a lot of bookmarks in each (perhaps duplicated). Consider using a social bookmarking site (like del.icio.us) to store bookmarks and see the next section for how to use one with Quicksilver. The image below shows all the browser bookmarks enabled merely for demonstration purposes.

Note that the Firefox plugin was written for Firefox 2 and looks for bookmarks in the html file ~/Library/Application Support/Firefox/Profiles/bookmarks.html. Firefox 2 allows this file to be in different locations (which allowed multiple profiles) and if someplace else, Quicksilver can’t find it. To solve this create a copy of the catalog source as described in the Catalog section and select the correct location in Source Options. Firefox 3 stores bookmarks and history in a SQLite database and not in a file, so the plugin can’t find them at all. However, Firefox 3 can periodically save the bookmarks (not history) to a bookmarks.html file. In the Firefox location bar enter about:config and hit . In the Filter field that appears type autoexport and browser.bookmarks.autoExportHTML should appear. Double-click it so the value column changes to true (or right-click it and select Toggle). Finally restart Firefox and Quicksilver and there should be a bookmarks.html file and Quicksilver should be able to index the bookmarks. Firefox 3 will write out the bookmarks.html file whenever it is quit. Note that several other browsers are based on Firefox and if they use the same bookmarks.html file or autoExportHTML option the Firefox plugin should work with them provided the correct path to the file is given.

With a browser plugin installed, a catalog source is added to the modules set putting bookmarks into the catalog. Make sure the box is checked and a number appears to the left of it (if not click the ↻ button at the bottom of the window to rescan the source.

The Firefox, OmniWeb and Safari plugins also enable catalog sources for the browser’s history (the Camino one does not). Accessing the browser history via Quicksilver can be a remarkably convenient way to find a recently visited web site by just typing in part of its name. If the browser allows configuration of the size of the history, this can allow visiting sites from several days ago, but be cautious of letting the catalog get too large and slowing down Quicksilver.

With URLs from either bookmarks or history the Open URL and Open URL With… actions work as described above. None of browser plugins provide their own actions, so there are no actions to add bookmarks to a browser (maybe AppleScripts could be written to do this if the browser supports it). Unfortunately e-mail actions are not available for URLs. However, URLs in the first pane can be changed into text by typing . or '. Now that the URL is plain text, tab to the second pane and the E-mail To… actions are available. Some browsers like Camino and Opera install system services such as Open URL in Camino and Open URL in Opera. The Service Menu Module plugin will turn these into Quicksilver actions which may be faster to use than Open URL With….

Safari organizes bookmarks into various collections. These can be seen by choosing the Show All Bookmarks command in the Bookmarks menu or using the shortcut B. In Quicksilver, with the Safari application selected in the first pane, typing will show a results list with all these collections. Navigate through them with . This works if Safari is running or not, but does not work for any of the other browsers (it used to work for Camino but it doesn’t seem to with Camino 1.6.1).

Safari’s Contacts collection is useful if the URL fields in contacts are used. Quicksilver doesn’t index these directly in the catalog, instead, bring up the contact and into it to select an URL. For faster access to these URLs, create a trigger with Safari’s Contacts collection and the Show Contents action, a results list appears with all the URLs in Contacts, ready to be selected.

This table summarizes Quicksilver’s support for web browsers. Safari is clearly the best supported and this is one of the reasons I use it as my browser instead of the alternatives.

Safari Firefox Camino OmniWeb
Bookmarks Yes Yes Yes Yes
History Yes Yes No Yes
into .app Yes, collections No No (used to be Yes, but flat) No
Proxy Object for Current URL Current Web Page None None OmniWeb Active Page
Other Open URL in Camino action via Services Menu Module Enables web searches from OmniWeb shortcuts.
Current Selection Proxy Object Supported Yes No Yes Yes

Online Services

The Social Bookmarks plugin (which replaced the del.icio.us Bookmarks plugin) makes del.icio.us and/or ma.gnolia bookmarks available in the Catalog. There is no catalog entries instealled in the Catalog under Modules, instead in the Catalog under Custom create sources for del.icio.us and ma.gnolia accounts. In the Catalog, click the + button at the bottom and choose Social Bookmarks from the menu that appears. Select the newly created entry and click on the ⓘ button to open the drawer. In the Source Options tab choose the service and enter the Name and Password of the account. Note the plugin only works with passwords that are 8 characters or less and people have reported problems with non-alphanumeric (e.g., # and ^) characters in the password. Click the ↻ (Rescan Source) button and the bookmarks should appear. Unfortunately as of B54, this plugin is broken for del.icio.us accounts since their switch to delicious.com. The option to Include Tags puts the tags in the catalog as well. Typing into one shows a results list of all bookmarks with that tag. Quicksilver has no actions to add a bookmark to to a del.icio.us or ma.gnolia account, instead use the standard mechanisms for that. A trigger for a post to del.icio.us bookmarklet and the Run Javascript action could be convenient.

Social bookmarks services provide an Internet-based service to centralize bookmarks so that different browsers (on different machines) have the same bookmarks. However, in the single machine case, Quicksilver can be used to centralize bookmarks used by several web browers (and perhaps a social bookmark account as well). Create a custom catalog folder and put all the related catalog sources together (for safari bookmarks create a copy of the preset - go to the attributes tab of the info drawer for the button). Now browse into the catalog entry for the Bookmarks folder (it will have a “(Catalog)” after its name, make sure Quicksilver Catalog Entries are enabled in the catalog under the Quicksilver set) and with the Show Contents action search all the bookmarks at once.

I removed the Backpack and Stikkit sections as those services have shut down.

cl1p.net is a free online service for temporarily posting any text to their web pages. One use is uploading error messages and posting just the URL to a forum or irc channel instead of the full text. The Cl1p Upload plugin adds a Post to Cl1p… action that makes this easy. Select a file or enter text into the first pane and choose the Post to Cl1p… action. Type return to upload it to an anonymous cl1p page or to the third pane to enter a page name in text-mode. After the command executes, the default browser will open to the newly created page. To save the page, click the Save button.

Web Pages

Here’s another hidden feature in Quicksilver. Bring up a web page in the first pane, that is a bookmark, URL or HTML page from the filesystem, and type to see a results list of all the links on that web page. Quicksilver actually gets the page (over the network if necessary), parses through it to find the links and presents them in a results list.

It can be a little slow if it has to get the page from a remote machine, particularly if the page is large. While this is happening, some interfaces present a “working” indication such as a spinning gear, others do not. Typing . (thats a period), will supposedly stop a lookup that’s in progress but in B51 it doesn’t seem to work.

For each link in the page there are two lines shown. The first is the text of the link and the second is the URL. If the link is on an image, there is no title but instead a very scaled down version of the image is shown. Favicons (aka website icons) are not shown.

This seems like a very cool feature in search of a good use case. In the example here I’m browsing the Quicksilver online documentation. I can get to links marked Tutorials and Overview, but there is a lot of other stuff in there and it’s a little awkward to browse. Still if I know I’m looking for Tutorials I can just type it in and Quicksilver’s matching algorithm will find it. A good use case is searching documentation such as for Python, for example, right-arrow into https://docs.python.org/2/library/index.html and search for “regex”.

I have a bookmark for the root of the Quicksilver Google Group. If I want to send someone the URL of the FAQ I know is on that page, I could bring up the bookmark in the first pane, type to see the links, type faq to bring up that link and use the Paste or one of the E-mail To… actions. While it’s a contrived example it is almost convenient enough to use.

TODO: what plugin enables this? is it safari? is it browser specific?

Web Searches

With the Web Search Module plugin, Quicksilver can send search terms to search engines and have the results shown in the default browser. This is probably my favorite Quicksilver plugin. I use it to search Google, the Internet Movie Database, Wikipedia, Amazon and many other sites. Rather visiting the sites first (even via a bookmark and Quicksilver) and clicking in a field and typing , it’s easier to just bring up Quicksilver, type the string and type . With triggers and proxy objects this can be much faster.

Quicksilver uses specially formated URLs that include the web site to search and a placeholder where the search terms are substituted. It refers to these special URLs as Web Searches and can store them in the catalog. They are shown as a regular URL icon with a magnifying glass. I'll explain how to use, find and creates these Web Searches below.

The Web Search Module plugin adds three actions to Quicksilver: Search For…, Find With… and Show Results for Search…. The plugin has no configuration options. It adds one catalog source under modules, “Web Searches (from docs.blacktree.com)”. Check the box to add all the listed web searches to the catalog from the blacktree site, there are currently over 600 of them, so it may take a while (and an Internet connection is required). That list of web searches can be found at this web page. Also the Add Custom Source drop down (the + button at the bottom of the catalog) gets an option to add a custom Web Search List to the catalog (Quicksilver must be restarted after the Web Searches Module plugin is installed for this choice to appear).

I assume the Web Searches (from docs.blacktree.com) catalog source is checked or there are some manually configured custom web searches (described below). To perform a Web Search select the search by name (e.g., “Google” or “Amazon”) in the first pane. The action should default to Search For…, so type (or twice) to get to the third pane (it will already be in text mode) and type the search terms. Type to perform the search; the results are displayed in the default web browser.

While not well known, this is a standard, system-wide alternative clipboard that many applications automatically populate with text entered in search fields. In those applications that support it, selecting text and typing E (or sometimes E) will explicitly copy text into this Shared Find Clipboard instead of the regular clipboard done with C. When using Quicksilver’s Search For… action, the third pane defaults to whatever is in the Shared Find Clipboard. The result is that Quicksilver sometimes just knows what it is you want to search for. In B54 this only sometimes works, sometimes the field is blank.

If Search For… isn’t the default action for a web search URL, make it so by finding it in the results list (while in the second pane) and -clicking (or right-clicking) and choosing “Make Default”; or change the ranking in the Action Preferences. The Actions Preferences pane doesn’t differentiate between regular URLs and web search URLs (those with * or %s or beginning with qss- or qssp-) however Quicksilver does. I have Search For… ranked 11 and Open URL ranked 12. If I bring up a regular URL the default action is appropriately Open URL and if I bring up a web search URL the default action is appropriately Search For…**.

The Find With… action is the reverse of Search For…, the search terms go in the first pane and the web search site in the third, This is convenient when using (see Combining Activation and Selection) to bring the selection into the first pane.

The third action, Show Results for Search… is similar to Search For… but instead of the results showing in the default browser, they are shown in a results list in a new Quicksilver command window (as described above in Web Pages). Unfortunately in B51, Show Results for Search… seems to be broken, it hangs when run and it is disabled by default in the Actions preferences.

I found I used some searches (“Google”, “Wikipedia”, “Amazon”, and “IMDB”) very often and some other searches frequently but not as often and some other ones rarely. I used different Quicksilver techniques to appropriately speed up using them.

The rarely used ones I just keep in the catalog and when I want to use one I just activate Quicksilver and type to select it in the first pane and use Search For… (or correspondingly in the third pane when using Find With…). For those I use a little more frequently I use techniques described above in Helping the Matching Algorithm. E.g., activate Quicksilver, type the letter to use for the web search site (e.g., G for Google), find the web search site in the results list, -click (or right-click) and choose “Set as Default for <letter>”. In some cases the list is too long and I’m not willing to scroll far enough to find what I want. E.g., I use Z to perform an amazon search and since it’s not the first letter, it’s not high up in the results list. This is what the the Assign Abbreviation action is for. Bring up the web search site in the first pane (in this case amazon), choose the Assign Abbreviation action in the second pane, and enter the desired letter in the third pane (in this example Z). This only works if the item does appear somewhere in the results list when the abbreviation is typed. It won’t work to assign book to an amazon search. To do that see Adding Web Searches Manually below and create a new search called book with the amazon URL.

Triggers are used to provide really fast access to searches and I use these for my most frequently used searches. I have two triggers for each; the first is the web search site, the Search For… action and a blank third pane. E.g., on W I have a Wikipedia search and the Search For… action. It’s important to have a blank third pane in the trigger definition so that Quicksilver will open a command window so the search terms can be entered. If there’s something in the third pane, Quicksilver will just search for it. To assure the third pane is blank when configuring the trigger, to the third pane and type X, this literally cuts out anything that’s there. With this configured, I type W at any time, enter text and hit and the Wikipedia page pops up.

Of course instead of typing into the third pane, paste with V works just well and and is a little faster if the search terms have been copied from some place. In that case it’s just three key strokes to do the search, W, V and return. But we can get it down to just one using proxy objects and another trigger.

The Current Selection proxy object represents the highlighted text in the current application; in other words, the current selection. I have Current Selection, Find With…, Wikipedia web search configured on W. I highlight text in any cocoa application (like Mail or Safari but unfortunately not Word), type W and the Wikipedia page for that search term appears in the default browser. This is amazingly convenient to use, but there’s a trick to create it.

If the first pane has the Current Selection proxy object, the Find With… action won’t appear in the second pane (because the selection might not be text). To get around this, first activate Quicksilver (using Space), type . to go into text mode, type some text, to the second pane and select Find With… and while the second pane is active type C to copy the Find With… action (yes that works!). Now go into some application and select some text (do not copy it, just select it!). This prevents the Current Selection proxy object from going into a beeping loop when it’s used (if that happens, just wait for 8 beeps and hopefully Quicksilver doesn’t crash). Now create the trigger, open the trigger pane, create a new trigger, select the Current Selection proxy object in the first pane, to the second pane and type V to paste the Find With… action, to the third pane and choose the web search site. Click Save and assign a shortcut. As of B51 it doesn’t seem possible to create this trigger using the Search For… action because the third pane only wants text and won’t accept the Current Selection proxy object (even by pasting it).

I use the above two triggers frequently. W to enter search terms for Wikipedia and by adding a to that I search for some highlighted text. I have similar pairs of triggers for the others listed on the right (all have a corresponding version with using the current selection for the search). The maps one with a included is great for highlighting an address on a web page or in an e-mail message and hitting one key (E) to get a map of the address. If it’s multiple lines it might work or Google might ask to narrow the search; either way it’s faster than cutting and pasting or retyping the address.

For less frequently used searches I use and Find With… action (it’s my default action for text) and then to the third field and select a web search site. For many I've configured a single key abbreviation using Assign Abbreviation… to make this fast. If someone sends me a movie recommendation I'll select the title of the film, , to the third pane and type N to bring up a Netflix search. I hit and the browser opens showing me the film and letting me add it to my rental queue with one click.

The important thing is to configure the searches that you do most often, regardless of what they are. If you search for weather info, air port codes, videos, genes, politicians, laws, astronomical objects, or whatever, setup web searches with similar triggers and you’ll be working faster than ever.

With web searches, the standard Quicksilver features of , triggers, and proxy objects are really useful. Another Quicksilver feature is also useful, the comma trick. With it Quicksilver can search for the same terms on several web sites at the same time. Activate Quicksilver and in the first pane select a search (e.g., Google), type ,, select another search (e.g., Wikipedia) and continue for all the desired web search types. Then to the second pane and select the Search For… action and then to the third pane and enter the search terms. Type to have all the searches open at once in the default browser (in different tabs or windows depending on how it’s configured). The comma trick also works in the third pane when using the Find With… action.

Quicksilver isn’t the only application to try to make web searching easier. Most browsers now have a search box in the toolbar that can be configured to search different sites, usually by clicking on a button to drop down a menu of sites. Some browsers support keywords on bookmarks that can can do searches from the address bar by entering a keyword (like G for google or W for wikipedia) followed by the search terms. This is easy to use though Quicksilver has some advantages since it works when in any application, not just in the browser.

Safari does not support keyword searches natively but several add-ons exist to do it. There are Quicksilver plugins for three of these: Acid Search, SafariStand, and Sogudi that allow these keyword searches to be used with the Search For… and Find With… actions. Some of these plugins haven’t kept up with changes in the Safari extensions. If they aren’t working, see the Quicksilver forums for help. As of B51 the Acid Search plugin is known to be broken.

TODO: The OmniWeb plugin also enables web searches based on OmniWeb shortcuts.

An advantage of using Quicksilver web searches for this is that the web search list is independent of the browser. For those that change browsers often, there’s no need to keep the keyword searches unique across several browsers. It doesn’t work across multiple machines, so in that case find another means to keep keyword searches in sync (e.g., a social bookmark site).

Adding Web Searches Manually

The built-in web search list is pretty large, but it can be extended if needed. The list is at this web pageQuicksilver reads this web page when it updates the catalog. There is a link at the top of that page to add a web search to that list by editing the wiki page. Unfortunately due to vandalism that list is now read-only and can’t be edited (though check if this changes).

In addition to or instead of that list, a custom catalog source of web searches can be configured. I use one instead of the default web list of 600 items to keep my catalog smaller. Another advantage is that it will still work even if the Quicksilver site is down or without internet access, which can be useful if the searches are for a local (e.g., corporate) network

To understand how to add custom web searches, it’s necessary to understand how search forms and URLs work on the web. When search terms are entered in a form, the browser sends a request to the search engine usually as a specially formed URL which appears in the browser’s address bar on the search results page. Here are two examples of searching for “Salma Hayek”, the first is for the Internet Movie Database and the second is for Google News.

http://www.imdb.com/find?tt=on;nm=on;mx=20;q=Salma+Hayek

http://news.google.com/news?hl=en&edition=us&q=Salma+Hayek&btnG=Search+News

They’re different, but the search term “Salma+Hayek” in both of them. Notice also that the space in the search terms was converted to a +. Quicksilver web searches work by changing the URL to include a special indicator for where Quicksilver should substitute the search terms (and do conversions like space into +). This indicator is three asterisks (%s works too). Here are the above URLs suitable for use as a Quicksilver web search:

http://www.imdb.com/find?tt=on;nm=on;mx=20;q=***

http://news.google.com/news?hl=en&edition=us&q=***&btnG=Search+News

An easy way to generate these is to go the web page of interest and search for * and then look in the address bar of the results page and copy the URL. Some search pages hide this info, but if the URL looks similar to the above it’s usable. To add it to Quicksilver, open the Catalog, choose Custom and click the + button at the bottom. From the drop down list that appears, select a new Web Search List (it might say the ugly text “QSWebSearchSource” instead). A new catalog source called Web Search List appears. Select it and if the info drawer is not open, click the ⓘ button on the bottom to open it. In the Source Options tab click + to add a new item and then enter a name for the web search in the first column and the specially formatted URL in the second column. For the above two examples I use the names “imdb” and “news”. Finally, click the ↻ (Rescan source) button and make sure a number appears to the right of the new web search source in the catalog. The web search should now be usable with the Find With… and Search For…** actions.

In addition, Quicksilver registers itself to handle URLs that begin with qss-http: and qssp-http:. If the URL begins with one of these they will open in Quicksilver instead of the browser. If it has three asterisks in it, it will be treated as a web search. The second variety (with the p) does the search using the HTTP POST method instead of the default GET method; some web sites require this. It’s best to convert all manually added web search to use one of the qss- style URLs but not required. Note that any valid URL scheme should work in a web search.

Here’s another example. Google has the ability to limit a search to a specific site.

qss-http://www.google.com/search?q=site%3A***&ie=UTF-8&oe=UTF-8

Using the above web search, enter as a search term the site to search (e.g., abc.com) followed by a space and the term to search for (e.g., Salma Hayek). Of course, this works with either the Search For… or Find With… action.

There’s also another way to keep track of URLs and web searches in Quicksilver. Add a custom Catalog source that uses the File & Folder scanner and select an .html file as the source. For the Include Contents popup choose HTML Links. Quicksilver will scan the .html file and find all the links and include them in the catalog. For the cost of having to edit an HTML file, this method keeps all the links (instead of in Quicksilver’s preferences) in a simple file that’s easy to backup or sync between multiple machines.

NetNewsWire

The NetNewsWire Module (β) plugin works with the NetNewsWire newsreader (not the Lite edition). It adds a new catalog source under Modules called QSPresetNNWSubscriptions which has one item called New Headlines. Bring it up in the first pane and then type (or use the Show Contents action) to see a results list of the new headlines and use the Open URL action on them. Typing on the NetNewsWire.app itself brings up the New Headlines item too. Unfortunately as of B51 I find this unstable and it always crashes Quicksilver when I type . As of B54 Quicksilver doesn’t crash but headlines don’t show up either.