注意:当我说 Chromium 时,我指的是 Google Chrome 和 Chromium。
我所知道的将相同的应用程序设置应用于所有新用户要么定义架构/覆盖文件,/usr/share/glib-2.0/schemas
要么将文件夹/文件复制到/etc/skel
。
当创建新用户时,该用户会自动获得 gsettings/config 文件。
所以我的问题是 - 如何将主题应用于 Chromium 并使其应用于所有用户?Chromium 是否使用gsettings
类型设置?如果是,哪些类型?
Chromium 是否使用配置文件(例如~/.config
)?如果是,是哪些?
我碰巧正在使用 Gnome 或 Unity - 但我认为任何答案都适用于任何桌面环境。
我找到了这个关联对于 Chrome 来说,有一个类似的 Q - 但适用于 Windows。
这是否适用于 Ubuntu ...以及 Chromium?
在公共休息室里进行了一次简短的聊天后.../etc/chromium-browser/customizations
被提及 - 所以这可能会为主题需要做什么提供线索。
答案1
用户配置目录
Chromium 确实使用~/.config
目录(~/.config/chromium
-~/.config/google-chrome
表示 Google Chrome),可使用命令行标志进行自定义:
~ man google-chrome | perl -00 -ne 'print if /\.config/'
--user-data-dir=DIR
Specifies the directory that user data (your "profile") is kept
in. Defaults to ~/.config/google-chrome . Separate instances
of Google Chrome must use separate user data directories;
repeated invocations of google-chrome will reuse an existing
process for a given user data directory.
因此,创建新配置的最简单方法是使用 运行其中任一项--user-dir=newconfig
,根据需要进行自定义,然后将目录复制newconfig
到/etc/skel/.config/chromium
和/etc/skel/.config/google-chrome
。
管理政策
最后但也许是最灵活的方法是使用/etc/chromium-browser/policies
(或/etc/opt/chrome/policies
对于 Google Chrome)。Chromium管理员文档有适用于 Windows、Mac 和Linux。
本质上,在 Linux 上,您可以使用policies/managed
和中的 JSON 文件policies/recommended
。managed
目录用于强制执行的设置 - 用户无法更改它们。
我将仅调整针对 Linux 给出的示例:
$ cat /etc/chromium/policies/managed/test_policy.json
{
"HomepageLocation": "www.chromium.org",
"HomepageIsNewTabPage": false
}
现在,在 Chromium 上,主页被锁定为www.chromium.org
。相应地,如果文件已在 中recommended
,则用户可以更改其主页。
当前政策列表可用这里。它列出了政策、其描述和示例值。
要安装主题或扩展,ExtensionInstallForcelist
可以使用策略。不能recommended
,只能managed
:
$ cat /etc/chromium/policies/managed/test_policy.json
{
"ExtensionInstallForcelist": [
"gighmmpiobklfepjocnamgkkbiglidom;https://clients2.google.com/service/update2/crx",
"jeonacmfdmkgfmmdejlinolgjomhcbmh;https://clients2.google.com/service/update2/crx",
],
}
这将安装Adblock 扩展和GData Centers 1 爱荷华州康瑟尔布拉夫斯主题。
/etc/chromium-browser/customizations
/etc/chromium-browser/customizations/00-example
似乎表明它只能用于检测插件和添加命令行标志:
$ cat etc/chromium-browser/customizations/00-example
## Register plugins this way. The two parameters are yours to fill.
#discover_registration /path/to/plugin/plugin.info library-name
## A way to influence the running. This is read-write for you. Please
## Append only.
#CHROMIUM_FLAGS="${CHROMIUM_FLAGS} --option=value"
## Read-only variables guaranteed to be set, with example values.
#APPNAME='chromium-browser'
#BUILD_DIST='Ubuntu 14.04'
#DESKTOP_SESSION='ubuntu'
#LIBDIR='/usr/lib/chromium-browser'
#UPSTREAM_VERSION='34.0.1847.131'
48.0.2564.116-0ubuntu0.14.04.1.1111
(顺便说一下,这是来自的,尽管UPSTREAM_VERSION
可能表明了什么。出于某种原因,只有32 位软件包Ubuntu 14.04 上有它,而不是 64 位的。)
Chromium 的命令行标志列表可以在以下位置找到:http://peter.sh/experiments/chromium-command-line-switches/, 根据
Chromium 网站。
discover_registration
似乎不是可执行命令- 这可能是一个 shell 函数,但我倾向于怀疑这些文件不会被我们的普通 shell 解析。无论如何,我认为这种方法不够通用,和如果您只想让用户一开始使用某些设置,然后让他们稍后更改,则很难覆盖。而且这些标志似乎不提供安装主题或扩展的方法。
设定
对我的系统进行快速扫描dconf-editor
表明 Google Chrome 不使用它。显然(感谢@Serg),Chromium 确实如此。
结论
总而言之,前两种方法都可以使用,Google Chrome 支持 Chromium 所做的一切,但路径不同。Chromium 有/etc/chromium-browser
和~/.config/chromium
,Google Chrome 有/etc/opt/chrome
和~/.config/google-chrome
。第一种方法适用于一次性初始化,如果要进行更多初始化,则需要第二种方法。
由于并非所有设置都可以使用策略进行配置,因此您可能必须同时使用它们。