11.10
There is a key that is referred to in the gnome-shell search code that allows you to specify which search providers should not be displayed...
By changing the logic you can change that to be a search order list - for example
gsettings set org.gnome.shell disabled-open-search-providers "['duckduckgo.xml', 'google.xml', 'wikipedia.xml']"
gsettings set org.gnome.shell disabled-open-search-providers "['wikipedia.xml', 'duckduckgo.xml', 'google.xml']"
how to
First make a backup copy of the search script:
sudo cp /usr/share/gnome-shell/js/ui/search.js /usr/share/gnome-shell/js/ui/search.js.backup
Now edit the search script:
gksudo gedit /usr/share/gnome-shell/js/ui/search.js
Look for the function containing the following code (it probably starts on line 325):
_refresh: function() {
this._providers = [];
let names = global.settings.get_strv(DISABLED_OPEN_SEARCH_PROVIDERS_KEY);
let file = Gio.file_new_for_path(global.datadir + '/search_providers');
FileUtils.listDirAsync(file, Lang.bind(this, function(files) {
for (let i = 0; i < files.length; i++) {
let enabled = true;
let name = files[i].get_name();
for (let k = 0; k < names.length; k++)
if (names[k] == name)
enabled = false;
if (enabled)
this._addProvider(name);
}
}));
}
Change this function to be:
_refresh: function() {
this._providers = [];
let names = global.settings.get_strv(DISABLED_OPEN_SEARCH_PROVIDERS_KEY);
let file = Gio.file_new_for_path(global.datadir + '/search_providers');
FileUtils.listDirAsync(file, Lang.bind(this, function(files) {
for (let i = 0; i < names.length; i++) {
for (let k = 0; k < files.length; k++)
if (names[i] == files[k].get_name())
this._addProvider(names[i])
}
}));
}
Press Alt+F2, type 'r' and press enter. This should restart Gnome-shell). Alternatively, logout and login.
credit
Linked Questions:
- Is it possible to customise the search engine buttons in GNOME Shell?
- Is it possible to remove or replace Google search in GNOME Shell's dash?