Recently DuckDuckGo gave its UI a big
overhaul. One of the new parts of the UI is the auto-suggestions,
which are pretty cool, especially when working with !bang
syntax. I
want that in my conkeror webjump! So I started looking...
Turns out that Conkeror can work with OpenSearch descriptions to create webjumps and actually already has a DuckDuckGo OpenSearch XML file. However, DuckDuckGo has a newer version of that file.
So, for starters you should download the proper XML
file. After this, you can
replace the /usr/share/conkeror/search-engines/duckduckgo.xml
file1 with the newly downloaded one and you'd be
done, ready to use the new auto-suggest
functionality2.
If, however, you don't like overwriting your package's files because they may get overwritten again in the future3 or you really don't think it's proper, you can also create a custom webjump that does the same thing, which is what I did.
In case you are following my lead, first we'd need to put the
downloaded XML file somewhere. I suggest
~/.conkerorrc/search-engines
because that way everything in your
configuration stays nice and contained, although you might want to put
it in your
~/.conkeror.mozdev.org/conkeror/CODE.PROFILE/search-engines
, where
CODE
is an eight-character alphanumeric sequence (as far as I can
tell) and PROFILE
is the name of the profile you
use4, because that should already be included in
your opensearch_load_paths
.
If you put the XML in your .conkerorrc
you'll need to add that
directory to your opensearch_load_paths
, so put something like the
following in your init.js
, or whichever filename you use for your
conkeror init:
opensearch_load_paths.push(make_file("~/.conkerorrc/search-engines"));
After Conkeror knows where to find your custom search engine specifications you can create a webjump for it:
define_opensearch_webjump("ddg", "ddg.xml");
Once you evaluate these lines or restart your Conkeror, you should
have a ddg
webjump with auto-suggestion. Yay!