É possível reorganizar os provedores de pesquisa na exibição Visão Geral de Atividades do Shell do GNOME?

5

Eu adicionei provedores de pesquisa adicionais (por exemplo, AskUbuntu, Wolfram, YouTube) no diretório /usr/share/gnome-shell/search_providers . Estes funcionam muito bem. No entanto, a ordem em que aparecem na Visão geral das atividades não é lógica.

É possível alterar a ordem em que os provedores de pesquisa são exibidos?

Bônus: como faço um padrão?

    
por TheGeeko61 22.12.2011 / 21:30

4 respostas

8

11,10

Existe uma chave que é mencionada no código de pesquisa do shell do gnome que permite que você especifique quais provedores de pesquisa devem não ser exibidos ...

Ao alterar a lógica, você pode alterar isso para ser uma lista de pedidos de pesquisa - por exemplo

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']"

como

Primeiro, faça uma cópia de backup do script de pesquisa:

sudo cp /usr/share/gnome-shell/js/ui/search.js /usr/share/gnome-shell/js/ui/search.js.backup

Agora edite o script de pesquisa:

gksudo gedit /usr/share/gnome-shell/js/ui/search.js

Procure a função que contém o seguinte código (provavelmente inicia na linha 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);
            }           
        }));    
    }

Altere esta função para:

_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])
            }               
        }));    
    }

Pressione Alt + F2, digite 'r' e pressione enter. Isso deve reiniciar o Gnome-shell). Como alternativa, faça logout e login.

crédito

Perguntas vinculadas:

  1. É possível personalizar os botões do mecanismo de busca no GNOME Shell?
  2. É possível remover ou substituir a pesquisa do Google no traço do GNOME Shell?
por fossfreedom 22.12.2011 / 22:21
2

Para preservar o significado da variável gsettings, outra possibilidade seria modificar search.js para ordenar os arquivos dos provedores de pesquisa pelo nome:

    FileUtils.listDirAsync(file, Lang.bind(this, function(files) {
        files.sort (function (first, second) {
            return first.get_name () <= second.get_name ()? -1: 1
        });

Então você renomeia os arquivos em /usr/share/gnome-shell/search_providers like

01_google.xml
02_wikipedia.xml
... 

Carlo.

    
por Carlo 22.04.2012 / 11:15
2

Descobri que os organiza na ordem do tempo. O provedor de pesquisa que foi adicionado mais recente é o primeiro. Então, se você quiser trazer o Google primeiro, basta movê-lo para algum lugar, atualizar ( Alt + F2 e R), recopiá-lo na pasta e atualizar novamente.

    
por Spiros 01.05.2012 / 20:53
0

Método alternativo: o Gnome Shell parece favorecer o provedor de pesquisa vinculado ao arquivo .xml editado mais recentemente; Para criar um arranjo personalizado, será suficiente abrir os arquivos, salvá-los e reiniciar o shell. Se o seu pedido desejado for, por exemplo: Google, Wikipedia, DuckDuckGo - então DuckDuckGo deve ser o que você salvar primeiro, seguido pela Wikipedia e depois pelo Google.

    
por Tigull 22.01.2012 / 16:06