it-swarm-es.tech

¿Cómo aplico automáticamente el mismo tema a Chromium para todos los usuarios nuevos?

Nota: cuando digo Chromium, me refiero a Google Chrome y Chromium.

Lo que sí sé sobre la aplicación de la misma configuración para las aplicaciones a todos los usuarios nuevos es definir un archivo de esquema/anulación en /usr/share/glib-2.0/schemas o copiar la carpeta/archivo en /etc/skel.

Cuando se crea un nuevo usuario, ese usuario recibe automáticamente el archivo gsettings/config.

Entonces, mi pregunta es: ¿cómo aplico un tema a Chromium y hago que esto se aplique a todos los usuarios? ¿Chromium utiliza la configuración de tipo gsettings? ¿De ser asi, cuales?

¿Chromium utiliza archivos de configuración (por ejemplo, en ~/.config)? ¿De ser asi, cuales?

Estoy usando Gnome o Unity, pero sospecho que cualquier respuesta se aplicará a cualquier entorno de escritorio.


He encontrado esto enlace para una Q similar para Chrome - pero para Windows.

¿Esto se aplica de alguna manera a Ubuntu ... y también a Chromium?


Habiendo tenido una conversación rápida en la sala general ... se mencionó /etc/chromium-browser/customizations, por lo que esto puede dar una pista sobre lo que se debe hacer para los temas.

7
fossfreedom

Directorio de configuración de usuario

Chromium utiliza un directorio ~/.config (~/.config/chromium - ~/.config/google-chrome para Google Chrome), personalizable mediante un indicador de línea de comando:

~ 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.

Por lo tanto, la forma más sencilla de crear una nueva configuración es ejecutar cualquiera de estos con --user-dir=newconfig, personalizar según sea necesario, luego copiar sobre el directorio newconfig a /etc/skel/.config/chromium y /etc/skel/.config/google-chrome.


Políticas administrativas

La última, pero quizás la forma más flexible, sería utilizar /etc/chromium-browser/policies (o /etc/opt/chrome/policies para Google Chrome). Chromium Documentation for Administrators tiene páginas para Windows, Mac y Linux .

Esencialmente, en Linux, utiliza archivos JSON en policies/managed y policies/recommended. El directorio managed es para configuraciones que se aplican: el usuario no puede cambiarlas.

Solo adaptaré el ejemplo dado para Linux:

$ cat /etc/chromium/policies/managed/test_policy.json
{
  "HomepageLocation": "www.chromium.org",
  "HomepageIsNewTabPage": false
}

Ahora, en Chromium, la página de inicio está bloqueada en www.chromium.org. En consecuencia, si el archivo hubiera estado en recommended, el usuario puede cambiar su página de inicio.

La lista actual de políticas está disponible aquí . Enumera políticas, sus descripciones y valores de ejemplo.

Para instalar un tema o una extensión, se puede usar la política ExtensionInstallForcelist . No puede ser recommended, solo 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",
    ],
}

Esto instalará la extensión Adblock y el tema GData Centers 1 Council Bluffs, Iowa .


/etc/chromium-browser/customizations

/etc/chromium-browser/customizations/00-example parece indicar que solo se puede usar para detectar complementos y agregar indicadores de línea de comando:

$ 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'

(Eso es de 48.0.2564.116-0ubuntu0.14.04.1.1111, por cierto, a pesar de lo que el UPSTREAM_VERSION podría indicar. Y por alguna razón, solo el paquete de 32 bits en Ubuntu 14.04 lo tiene, no el Uno de 64 bits.)

La lista de indicadores de línea de comando para Chromium se puede encontrar en http://peter.sh/experiments/chromium-command-line-switches/ , según
el sitio web de Chromium .

discover_registration no parece ser n comando ejecutable - podría ser una función Shell, pero estoy inclinado a sospechar que estos archivos no son analizados por nuestros shells normales. En cualquier caso, creo que este método no es lo suficientemente versátil, y es difícil de anular si todo lo que quieres es que los usuarios comiencen con algunas configuraciones mientras dejándolos cambiarlos más tarde. Y las banderas no parecen proporcionar una forma de instalar un tema o una extensión.


GSettings

Un escaneo rápido de dconf-editor en mi sistema indica que Google Chrome no lo usa. Tampoco, aparentemente (gracias @Serg) , Chromium.


Conclusión

En total, se puede utilizar cualquiera de los dos primeros métodos, y Google Chrome admite lo que sea que Chromium haga, pero con diferentes rutas. Donde Chromium tiene /etc/chromium-browser y ~/.config/chromium, Google Chrome tiene /etc/opt/chrome y ~/.config/google-chrome, respectivamente. El primer método está bien para la inicialización de una sola vez, cualquier otra cosa requeriría el segundo método.

Dado que no todas las configuraciones se pueden configurar mediante políticas, es posible que deba usar ambas.

4
muru