2.8 KiB
Auto-suggestions for DuckDuckGo in Conkeror conkeror config
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!
Footnotes
I have Conkeror installed in /usr
, so if you have it installed
somewhere else your path will be different.
You might have to restart Conkeror first, I didn't test it without restarting.
This can of course happen when, for example, your package manager updates your Conkeror installation.
The default profile is named (appropriately) default
.