是否可以重新排列 GNOME Shell 活动概览显示上的搜索提供程序?

是否可以重新排列 GNOME Shell 活动概览显示上的搜索提供程序?

我在目录中添加了其他搜索提供商(例如 AskUbuntu、Wolfram、YouTube)/usr/share/gnome-shell/search_providers。这些都很好用。但是,它们在活动概览不合逻辑。

是否可以更改搜索提供商的显示顺序?

奖励:如何将其设为默认值?

答案1

11.10

gnome-shell 搜索代码中有一个键,它允许您指定应该使用哪些搜索提供商不是显示...

通过改变逻辑,你可以将其更改为搜索顺序列表 - 例如

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

在此处输入图片描述

如何

首先备份搜索脚本:

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”并按回车键。这应该会重新启动 Gnome-shell)。或者,注销并登录。

信用


相关问题:

  1. 是否可以自定义 GNOME Shell 中的搜索引擎按钮?
  2. 是否可以删除或替换 GNOME Shell 仪表板中的 Google 搜索?

答案2

为了保留 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然后你可以重命名文件

01_google.xml
02_wikipedia.xml
... 

卡洛。

答案3

我发现它按时间顺序排列它们。最新添加的搜索提供商排在第一位。因此,如果您想将 Google 放在首位,只需将其移动到某个位置,刷新(Alt+F2和 R),将其重新复制到文件夹并再次刷新。

答案4

替代方法:Gnome Shell 似乎更倾向于使用与最近编辑的.xml文件绑定的搜索提供商;要创建自定义排列,只需打开文件、保存文件并重新启动 shell 即可。如果您想要的顺序是:Google、Wikipedia、DuckDuckGo - 那么 DuckDuckGo 应该是您首先保存的,然后是 Wikipedia,最后是 Google。

相关内容