Можно ли переставить поставщиков поиска на экране обзора операций оболочки GNOME?

Я добавил дополнительные поисковые системы (например, AskUbuntu, Wolfram, YouTube) в каталог /usr/share/gnome-shell/search_providers. Это прекрасно работает. Однако порядок, в котором они появляются в Обзор деятельности , не логичен.

Можно ли изменить порядок, в котором отображаются поисковые службы?

Бонус: как сделать один из них по умолчанию?

5
задан 23 December 2011 в 01:16

4 ответа

11.10

Существует ключ, который упомянут в коде поиска оболочки гнома, который позволяет Вам указывать, какие поисковые поставщики не должны быть отображены...

Путем изменения логики можно изменить это, чтобы быть поисковым списком заказов - например,

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

как к

Сначала сделайте резервную копию поискового сценария:

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

Теперь отредактируйте поисковый сценарий:

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

Ищите функцию, содержащую следующий код (это, вероятно, запускается на строке 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);
            }           
        }));    
    }

Измените эту функцию, чтобы быть:

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

Нажмите Alt+F2, тип 'r' и нажмите Enter. Это должно перезапустить оболочку Gnome). С другой стороны, выход из системы и вход в систему.

кредит


Связанные вопросы:

  1. Действительно ли возможно настроить кнопки поисковой системы в GNOME Shell?
  2. Действительно ли возможно удалить или заменить поиск Google в тире Shell GNOME?
8
ответ дан 23 December 2011 в 01:16

Чтобы сохранить значение переменной gsettings, другой возможностью было бы изменить search.js, чтобы упорядочить файлы поставщиков поиска по имени:

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

Затем вы переименовали бы файлы в /usr/share/gnome-shell/search_providers как [ 115]

01_google.xml
02_wikipedia.xml
... 

Карло.

0
ответ дан 23 December 2011 в 01:16

Альтернативный метод: Gnome Shell, похоже, предпочитает поисковую систему, связанную с последним отредактированным файлом .xml; для создания пользовательского расположения достаточно открыть файлы, сохранить их и перезапустить оболочку. Если вам нужен, например, заказ: Google, Wikipedia, DuckDuckGo, то сначала следует сохранить DuckDuckGo, затем Wikipedia, а затем Google.

0
ответ дан 23 December 2011 в 01:16

Я обнаружил, что он упорядочивает их по времени. Поставщик поиска, который был добавлен последним, является первым. Поэтому, если вы хотите сначала привести Google, просто переместите его куда-нибудь, обновите ( Alt + F2 и R), скопируйте его в папку и обновите снова.

0
ответ дан 23 December 2011 в 01:16

Другие вопросы по тегам:

Похожие вопросы: