我正尝试通过脚本(在OS X和Windows上)设置各种Google Chrome偏好设置。通过编辑用户的Application Data文件夹中的Preferences和Bookmarks json文件,我可以成功设置多个首选项并添加书签。但是,当我尝试设置新的默认搜索提供商时,浏览器会自动恢复为Google搜索。
首选项文件中的默认搜索提供程序节点如下所示:
"default_search_provider": {
"enabled": true,
"encodings": "UTF-8",
"icon_url": "http://www.google.com/favicon.ico",
"id": "2",
"instant_url": "{google:baseURL}webhp?{google:RLZ}sourceid=chrome-instant&ie={inputEncoding}&ion=1{searchTerms}&nord=1",
"keyword": "google.com",
"name": "Google",
"prepopulate_id": "1",
"search_url": "{google:baseURL}search?{google:RLZ}{google:acceptedSuggestion}{google:originalQueryForSuggestion}sourceid=chrome&ie={inputEncoding}&q={searchTerms}",
"suggest_url": "{google:baseSuggestURL}search?client=chrome&hl={language}&q={searchTerms}"
}
为了添加我想要的搜索提供程序,我只需手动添加它(通过扳手菜单),查看此操作对json文件的影响,然后编写一个脚本来模仿这些更改。但是,当我通过脚本更改它时,默认搜索提供程序将用于第一次搜索,但随后会在下次启动chrome时重置。我在这里缺少什么?
答案 0 :(得分:5)
如上所述,您应该编辑'Web Data'
文件,这是一个sqlite数据库。
要添加搜索引擎,请在'keywords'
表格中添加一个条目
要更改默认搜索引擎,请修改'Default Search Provider ID
表格中的'meta'
'值。
答案 1 :(得分:2)
如果您想更改Google Chrome中的默认搜索提供程序,则必须修改“Web数据”文件,该文件是SQLite文件。
在我的计算机上,您可以找到该文件的位置是C:\Users\daniel\AppData\Local\Google\Chrome\User Data\Default
(Windows7)。
使用SQLite数据库浏览器查看文件内容;你可以找到一个here。
答案 2 :(得分:1)
可以在此处找到适用于Ubuntu上的Chromium和Chrome的解决方案:
https://github.com/andreashuber69/os-setup/blob/master/common/reset-browser-preferences
除了设置默认搜索提供程序外,链接脚本还可以根据自己的喜好自定义Chromium / Chrome。对于Chrome,与问题相关的部分如下:
http://www.mywebsite.com/basepath/bergur
这只是在搜索引擎列表中添加一个新条目并将其设置为默认值。如果要选择现有的,事情就更复杂一些(详见脚本)。以上需要包jq,它在Ubuntu上不是现成的。
与其他帖子相反,似乎无法再在元表中设置默认值。必须通过上面显示的Preferences文件来完成。
答案 3 :(得分:1)
尽管此处的每个人都建议写入Chrome的Sqlite数据库,但可以通过基于JSON的配置文件实现相同的目标(如https://stackoverflow.com/users/49572/andreas-huber所述)。
相关文件可在此处找到:
对于Linux上的Chrome,将这样的内容放入/opt/chrome/etc/policies/recommended/duckduckgo.json
,请开始使用
{
"DefaultSearchProviderEnabled": true,
"DefaultSearchProviderName": "DuckDuckGo",
"DefaultSearchProviderSearchURL": "https://duckduckgo.com/?q={searchTerms}"
}
在Windows和OSX以及使用Chromium时,设置它的位置不同,但都记录在上面给定的URL下。