Take one of the xml for DuckDuckGo in the OpenSearch standard, here’s mine:
<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>DuckDuckGo</ShortName>
<Description>Encrypted Duck Duck Go with encrypted Google Suggest</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image height="16" width="16" type="image/x-icon">https://duckduckgo.com/favicon.ico</Image>
<Url type="text/html" method="get" template="https://duckduckgo.com/?q={searchTerms}"/>
<Url type="application/x-suggestions+json" template="https://encrypted.google.com/complete/search?output=firefox&q={searchTerms}"/>
<Url rel="suggestions" type="application/x-suggestions+xml" template="https://encrypted.google.com/complete/search?q={searchTerms}&client=ie8&mw={ie:maxWidth}&sh={ie:sectionHeight}&rh={ie:rowHeight}&inputencoding={inputEncoding}&outputencoding={outputEncoding}"/>
</OpenSearchDescription>
and save as /usr/share/gnome-shell/search_providers/duckduckgo.xml for instance on Debian Wheezy. Now, refresh Gnome Shell (by doing alt+f2, ‘r’) and whenever you search for someting in the Shell’s Activity overview, you have the possibility to search the Web with DuckDuckGo.