Как автоматически применить одну и ту же тему к Chromium для всех новых пользователей?

7

Примечание: когда я говорю «Хром», я имею в виду как Google Chrome, так и Chromium.

То, что я знаю о применении одних и тех же настроек для приложений для всех новых пользователей, либо определяет файл схемы / переопределения в /usr/share/glib-2.0/schemas , либо копирует папку / файл в /etc/skel .

Когда создается новый пользователь, этому пользователю автоматически присваивается файл gsettings / config.

Итак, мой вопрос: как применить тему к Chromium и применить ее ко всем пользователям? Использует ли Chromium настройки gsettings ? Если да, то какие?

Использует ли Chromium конфигурационные файлы (например, в ~/.config )? Если да, то какие?

Я использую Gnome или Unity, но я подозреваю, что любой ответ будет применен к любой среде рабочего стола.

Я нашел эту ссылку для аналогичного Q для Chrome, но для Windows.

Это применимо как-то к Ubuntu ... а также к Chromium?

У вас был быстрый чат в общей комнате ... /etc/chromium-browser/customizations было упомянуто - так это может дать понять, что может потребоваться для тем.

    
задан fossfreedom 09.03.2016 в 15:18
источник

1 ответ

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.

Итак, самый простой способ создать новую конфигурацию - запустить любой из них с --user-dir=newconfig , настроить по мере необходимости, а затем скопировать папку newconfig в /etc/skel/.config/chromium и /etc/skel/.config/google-chrome .

Административные политики

Последний, но, возможно, самый гибкий способ - использовать /etc/chromium-browser/policies (или /etc/opt/chrome/policies для Google Chrome). В хромонике Документация для администраторов есть страницы для Windows, Mac и Linux .

По сути, в Linux вы используете файлы JSON в policies/managed и 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 Council Bluffs, Айова .

/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 можно найти на странице Ссылка , согласно
веб-сайт Chromium .

discover_registration не выглядит исполняемая команда - это может быть функция оболочки, но я склонен подозревать, что эти файлы не анализируются нашими обычными оболочками. В любом случае, я думаю, что этот метод не является достаточно универсальным, и трудно переопределить, если все, что вы хотите, это для пользователей, чтобы начать с некоторых настроек, позволяя им впоследствии их изменять. И флаги, похоже, не предоставляют способ установки темы или расширения.

GSettings

Быстрый просмотр dconf-editor в моей системе указывает, что Google Chrome не использует его. Ни очевидно (спасибо @Serg) , делает Chromium.

Заключение

Все сказали, что можно использовать один из первых двух методов, а Google Chrome поддерживает все, что делает Chromium, но с разными путями. Где Chromium имеет /etc/chromium-browser и ~/.config/chromium , Google Chrome имеет /etc/opt/chrome и ~/.config/google-chrome , соответственно. Первый метод подходит для однократной инициализации, для чего требуется второй метод.

Поскольку не все настройки могут быть настроены с использованием политик, возможно, вам придется использовать их оба.

    
ответ дан muru 09.03.2016 в 20:55