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

我在/usr/share/gnome-shell/search_providers目录中添加了其他搜索提供程序(例如,AskUbuntu,Wolfram,YouTube)。 这些工作很棒。 但是,它们在“ 活动概览”中的显示顺序不合逻辑。

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

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

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

将此function更改为:

 _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-shell)。 或者,注销并登录。

信用


相关问题:

  1. 是否可以在GNOME Shell中自定义搜索引擎按钮?
  2. 是否可以在GNOME Shell的破折号中删除或替换Google搜索?

为了保留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 ... 

卡罗。

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

替代方法:Gnome Shell似乎更喜欢与最近编辑的.xml文件绑定的搜索提供程序; 要创建自定义排列,只需打开文件,保存文件,然后重新启动shell即可。 如果你想要的订单是,例如:谷歌,维基百科,DuckDuckGo – 那么DuckDuckGo应该是你首先保存的,然后是维基百科,然后是谷歌。