web-dev-qa-db-fra.com

Comment appliquer automatiquement le même thème à Chromium pour tous les nouveaux utilisateurs?

Remarque: lorsque je dis Chromium, je parle à la fois de Google Chrome et de Chromium.

Ce que je sais au sujet de l’application des mêmes paramètres pour les applications à tous les nouveaux utilisateurs, c’est soit la définition d’un fichier schéma/substitution dans /usr/share/glib-2.0/schemas, soit la copie du dossier/fichier dans /etc/skel.

Lorsqu'un nouvel utilisateur est créé, le fichier gsettings/config lui est automatiquement attribué.

Ma question est donc la suivante: comment appliquer un thème à Chromium et le faire appliquer à tous les utilisateurs? Est-ce que Chromium utilise les paramètres de type gsettings? Si oui, lesquels?

Chromium utilise-t-il des fichiers de configuration (par exemple, dans ~/.config)? Si oui, lesquels?

J'utilise Gnome ou Unity, mais je suppose que toute réponse s'appliquera à tout environnement de bureau.


J'ai trouvé ceci lien pour un Q similaire pour Chrome - mais pour Windows.

Est-ce que cela s'applique d'une manière ou d'une autre à Ubuntu ... et également à Chromium?


Après avoir discuté rapidement dans la salle générale ... /etc/chromium-browser/customizations a été mentionné - cela peut donc donner une idée de ce qui peut être nécessaire pour les thèmes.

7
fossfreedom

Répertoire de configuration de l'utilisateur

Chromium utilise un répertoire ~/.config (~/.config/chromium - ~/.config/google-chrome pour Google Chrome), personnalisable à l'aide d'un indicateur de ligne de commande:

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

Ainsi, le moyen le plus simple de créer une nouvelle configuration consiste à exécuter l'un de ces éléments avec --user-dir=newconfig, à personnaliser au besoin, puis à copier le répertoire newconfig dans /etc/skel/.config/chromium et /etc/skel/.config/google-chrome.


Politiques administratives

La dernière solution, mais peut-être la plus flexible, consisterait à utiliser /etc/chromium-browser/policies (ou /etc/opt/chrome/policies pour Google Chrome). Chromium Documentation pour les administrateurs a des pages pour Windows, Mac et Linux .

Sur Linux, vous utilisez essentiellement des fichiers JSON dans policies/managed et policies/recommended. Le répertoire managed est destiné aux paramètres appliqués - l'utilisateur ne peut pas les modifier.

Je vais juste adapter l'exemple donné pour Linux:

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

Désormais, sur Chromium, la page d'accueil est verrouillée sur www.chromium.org. De même, si le fichier était dans recommended, l'utilisateur peut modifier sa page d'accueil.

La liste actuelle des politiques est disponible ici . Il répertorie les stratégies, leurs descriptions et des exemples de valeurs.

Pour installer un thème ou une extension, vous pouvez utiliser la règle ExtensionInstallForcelist . Ce ne peut pas être recommended, seulement 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",
    ],
}

Cela installera le thème l'extension Adblock et le thème GData Centers 1 Council Bluffs, Iowa .


/etc/chromium-browser/customizations

/etc/chromium-browser/customizations/00-example semble indiquer qu'il ne peut être utilisé que pour détecter des plugins et ajouter des indicateurs de ligne de commande:

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

(Cela vient de 48.0.2564.116-0ubuntu0.14.04.1.1111, en passant, malgré ce que le UPSTREAM_VERSION pourrait indiquer. Et pour une raison quelconque, seul le paquet 32 ​​bits sur Ubuntu 14.04 l’a, pas le 64 bits.)

La liste des indicateurs de ligne de commande pour Chromium est disponible à l’adresse http://peter.sh/experiments/chromium-command-line-switches/ , selon
site web de Chromium .

discover_registration ne semble pas être ne commande exécutable - ce peut être une fonction Shell, mais j'ai tendance à penser que ces fichiers ne sont pas analysés par nos shells normaux. Dans tous les cas, je pense que cette méthode n’est pas suffisamment polyvalente, et est difficile à remplacer si tout ce que vous voulez, c’est que les utilisateurs démarrent avec certains paramètres alors que en les laissant changer plus tard. Et les drapeaux ne semblent pas fournir un moyen d'installer un thème ou une extension.


GSettings

Une analyse rapide de dconf-editor sur mon système indique que Google Chrome ne l'utilise pas. Ni l'un ni l'autre apparemment (merci @Serg) , ne le fait Chrome.


Conclusion

Tout compte fait, l'une ou l'autre des deux premières méthodes peut être utilisée, et Google Chrome prend en charge tout ce que fait Chromium, mais avec des chemins différents. Où Chromium a /etc/chromium-browser et ~/.config/chromium, Google Chrome a /etc/opt/chrome et ~/.config/google-chrome, respectivement. La première méthode est acceptable pour une initialisation unique. Toute autre opération nécessiterait la seconde méthode.

Étant donné que tous les paramètres ne peuvent pas être configurés à l'aide de stratégies, vous devrez peut-être les utiliser tous les deux.

4
muru