web-dev-qa-db-fra.com

Est-il possible de réorganiser les moteurs de recherche dans l'affichage de la vue d'ensemble de GNOME Shell Activities?

J'ai ajouté des fournisseurs de recherche supplémentaires (par exemple, AskUbuntu, Wolfram, YouTube) dans le répertoire /usr/share/gnome-Shell/search_providers. Ceux-ci fonctionnent très bien. Cependant, l'ordre dans lequel ils apparaissent sur le aperçu des activités n'est pas logique.

Est-il possible de changer l'ordre d'affichage des moteurs de recherche?

Bonus: Comment puis-je en faire un par défaut?

5
TheGeeko61

11h10

Il existe une clé à laquelle le code de recherche gnome-Shell fait référence, qui vous permet de spécifier quels fournisseurs de recherche doivent et non être affichés ...

En changeant la logique, vous pouvez changer cela en liste d’ordre de recherche - par exemple

gsettings set org.gnome.Shell disabled-open-search-providers "['duckduckgo.xml', 'google.xml', 'wikipedia.xml']"

enter image description here

gsettings set org.gnome.Shell disabled-open-search-providers "['wikipedia.xml', 'duckduckgo.xml', 'google.xml']"

enter image description here

comment

Commencez par créer une copie de sauvegarde du script de recherche:

Sudo cp /usr/share/gnome-Shell/js/ui/search.js /usr/share/gnome-Shell/js/ui/search.js.backup

Maintenant, éditez le script de recherche:

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

Recherchez la fonction contenant le code suivant (elle commence probablement à la ligne 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);
            }           
        }));    
    }

Changer cette fonction pour être:

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

Appuyez sur Alt + F2, tapez 'r' et appuyez sur enter. Cela devrait redémarrer Gnome-Shell). Vous pouvez également vous déconnecter et vous connecter.

crédit


Questions liées:

  1. Est-il possible de personnaliser les boutons du moteur de recherche dans GNOME Shell?
  2. Est-il possible de supprimer ou de remplacer la recherche Google dans le tableau de bord de GNOME Shell?
8
fossfreedom

Pour préserver le sens de la variable gsettings, une autre possibilité serait de modifier search.js pour classer les fichiers des fournisseurs de recherche par nom:

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

Ensuite, vous renommeriez les fichiers dans /usr/share/gnome-Shell/search_providers comme

01_google.xml
02_wikipedia.xml
... 

Carlo.

2
Carlo

J'ai trouvé qu'il les arrange dans l'ordre chronologique. Le moteur de recherche ajouté en dernier est le premier. Donc, si vous voulez amener Google d'abord, déplacez-le quelque part, actualisez-le (Alt+F2 et R), recopiez-le dans le dossier et actualisez-le à nouveau.

2
Spiros

Méthode alternative: Gnome Shell semble préférer le moteur de recherche lié au fichier .xml le plus récemment édité; pour créer un arrangement personnalisé, il vous suffira d'ouvrir les fichiers, de les enregistrer et de redémarrer le shell. Si votre ordre souhaité est, par exemple: Google, Wikipedia, DuckDuckGo - alors DuckDuckGo devrait être celui que vous avez enregistré en premier, suivi de Wikipédia, puis de Google.

0
Tigull