如何为所有新用户自动将相同的主题应用到 Chromium?

fos*_*dom 8 gnome themes google-chrome chromium

注意:当我说 Chromium 时,我指的是 Google Chrome 和 Chromium。

对于将应用程序的相同设置应用于所有新用户,我所知道的是在其中定义架构/覆盖文件/usr/share/glib-2.0/schemas或将文件夹/文件复制到/etc/skel.

创建新用户时,该用户会自动获得 gsettings/config 文件。

所以我的问题是 - 如何将主题应用于 Chromium 并将其应用于所有用户?Chromium 是否使用gsettings类型设置?如果有,是哪些?

Chromium 是否使用配置文件(例如 in ~/.config)?如果有,是哪些?

我碰巧使用 Gnome 或 Unity - 但我怀疑任何答案都适用于任何桌面环境。


我找到了这个链接,用于 Chrome 的类似 Q - 但适用于 Windows。

这是否以某种方式适用于 Ubuntu ...以及 Chromium?


在一般房间进行了快速聊天....../etc/chromium-browser/customizations被提及 - 因此这可能会提供有关可能需要为主题做些什么的线索。

mur*_*uru 5

用户配置目录

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.
Run Code Online (Sandbox Code Playgroud)

因此,创建新配置的最简单方法是使用 运行其中任何一个--user-dir=newconfig,根据需要进行自定义,然后将newconfig目录复制到/etc/skel/.config/chromium/etc/skel/.config/google-chrome


行政政策

最后一种,但也许是最灵活的方法是使用/etc/chromium-browser/policies(或/etc/opt/chrome/policies用于谷歌浏览器)。Chromium管理员文档包含适用于 Windows、Mac 和Linux 的页面。

从本质上讲,在Linux上,您在使用JSON文件policies/managedpolicies/recommended。该managed目录用于强制执行的设置 - 用户无法更改它们。

我将修改为 Linux 给出的示例:

$ cat /etc/chromium/policies/managed/test_policy.json
{
  "HomepageLocation": "www.chromium.org",
  "HomepageIsNewTabPage": false
}
Run Code Online (Sandbox Code Playgroud)

现在,在 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",
    ],
}
Run Code Online (Sandbox Code Playgroud)

这将安装Adblock 扩展GData Centers 1 Council Bluffs, Iowa主题。


/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'
Run Code Online (Sandbox Code Playgroud)

48.0.2564.116-0ubuntu0.14.04.1.1111顺便说一下,这来自,尽管UPSTREAM_VERSION可能表明。出于某种原因,只有Ubuntu 14.04 上的32 位软件包有它,而不是 64位软件包。)

根据Chromium 网站,可以在http://peter.sh/experiments/chromium-command-line-switches/找到 Chromium 的命令行标志列表。

discover_registration似乎不是一个可执行命令——它可能是一个 shell 函数,但我倾向于怀疑这些文件没有被我们的普通 shell 解析。在任何情况下,我认为这个方法不够通用的,并且很难覆盖如果你想要的是用户与一些设置,同时又让他们后来改变那些开始。而且这些标志似乎没有提供安装主题或扩展的方法。


设置

dconf-editor在我的系统上快速扫描表明 Google Chrome 不使用它。都不是,很明显(感谢@Serg) ,确实铬。


结论

总而言之,可以使用前两种方法中的任何一种,并且 Google Chrome 支持 Chromium 所做的任何事情,但路径不同。Chromium 有/etc/chromium-browser~/.config/chromium,谷歌浏览器分别有/etc/opt/chrome~/.config/google-chrome。第一种方法可以用于一次性初始化,其他方法则需要第二种方法。

由于并非所有设置都可以使用策略进行配置,因此您可能必须同时使用它们。