Como aplico automaticamente o mesmo tema ao Chromium para todos os novos usuários?

7

Nota: quando falo em Chromium, refiro-me ao Google Chrome e ao Chromium.

O que sei sobre a aplicação das mesmas configurações para aplicativos para todos os novos usuários é definir um arquivo de esquema / substituição em /usr/share/glib-2.0/schemas ou copiar a pasta / arquivo para /etc/skel .

Quando um novo usuário é criado, esse usuário recebe automaticamente o arquivo gsettings / config.

Então, minha pergunta é: como aplicar um tema ao Chromium e fazer com que isso se aplique a todos os usuários? O Chromium usa as configurações do tipo gsettings ? Se sim, quais são?

O Chromium usa arquivos de configuração (por exemplo, em ~/.config )? Se sim, quais?

Por acaso estou usando o Gnome ou o Unity - mas suspeito que qualquer resposta será aplicada a qualquer ambiente de desktop.

Encontrei este link para um Q semelhante para o Chrome, mas para o Windows.

Isso se aplica de alguma forma ao Ubuntu ... e também ao Chromium?

Após uma conversa rápida na sala geral ... /etc/chromium-browser/customizations foi mencionada - então isso pode dar uma pista sobre o que pode ser necessário para os temas.

    
por fossfreedom 09.03.2016 / 16:18

1 resposta

5

Diretório de configuração do usuário

O Chromium usa um diretório ~/.config ( ~/.config/chromium - ~/.config/google-chrome para o Google Chrome), personalizável usando um sinalizador de linha 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.

Assim, a maneira mais simples de criar uma nova configuração é executar qualquer uma delas com --user-dir=newconfig , personalizar conforme necessário e copiar sobre o diretório newconfig para /etc/skel/.config/chromium e /etc/skel/.config/google-chrome .

Políticas administrativas

A última, mas talvez a mais flexível, seria usar /etc/chromium-browser/policies (ou /etc/opt/chrome/policies para o Google Chrome). O Documentation for Administrators do Chromium tem páginas para Windows, Mac e Linux .

Essencialmente, no Linux, você usa arquivos JSON em policies/managed e policies/recommended . O diretório managed é para configurações que são aplicadas - o usuário não pode alterá-las.

Vou apenas adaptar o exemplo dado para o Linux:

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

Agora, no Chromium, a página inicial está bloqueada para www.chromium.org . Correspondentemente, se o arquivo estiver em recommended , o usuário poderá alterar sua página inicial.

A lista atual de políticas está disponível aqui . Ele lista políticas, suas descrições e valores de exemplo.

Para instalar um tema ou uma extensão, a política ExtensionInstallForcelist pode ser usada. Não pode ser recommended , apenas 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",
    ],
}

Isso instalará a Extensão do Adblock e o Conteúdo dos Centros de Dados 1 Council Bluffs, Iowa .

/etc/chromium-browser/customizations

/etc/chromium-browser/customizations/00-example parece indicar que só pode ser usado para detectar plugins e adicionar sinalizadores de linha 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'

(Isso é de 48.0.2564.116-0ubuntu0.14.04.1.1111 , a propósito, apesar do que o UPSTREAM_VERSION possa indicar. E por alguma razão, apenas o pacote de 32 bits no Ubuntu 14.04 tem, não o de 64 bits.)

A lista de sinalizadores de linha de comando do Chromium pode ser encontrada no link , de acordo com
o site do Chromium .

discover_registration parece não estar um comando executável - pode ser uma função de shell, mas estou inclinado a suspeitar que esses arquivos não são analisados por nossos shells normais. De qualquer forma, eu acho que este método não é suficientemente versátil, e é difícil de ser substituído se tudo o que você quer é que os usuários comecem com algumas configurações enquanto deixam que eles mudem depois. E as bandeiras não parecem fornecer uma maneira de instalar um tema ou uma extensão.

GSettings

Uma verificação rápida de dconf-editor no meu sistema indica que o Google Chrome não o utiliza. Nenhum dos dois aparentemente (obrigado @Serg) , faz o Chromium.

Conclusão

Todos disseram que um dos dois primeiros métodos pode ser usado, e o Google Chrome suporta tudo o que o Chromium faz, mas com caminhos diferentes. Onde o Chromium tem /etc/chromium-browser e ~/.config/chromium , o Google Chrome tem /etc/opt/chrome e ~/.config/google-chrome , respectivamente. O primeiro método é OK para inicialização única, qualquer coisa mais exigiria o segundo método.

Como nem todas as configurações podem ser definidas usando políticas, talvez você precise usar as duas.

    
por muru 09.03.2016 / 21:55