我在目录中添加了其他搜索提供商(例如 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)。或者,注销并登录。
相关问题:
答案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。