PeterMosmans.customize-gnome

Ansible Role: personalizar-gnome

Estado de la construcción para este rol: Estado de Construcción

Este rol personaliza el escritorio GNOME. Instala fuentes y extensiones de GNOME desde paquetes o archivos zip, copia archivos como fondos de escritorio y ajustes de GNOME a un host, y modifica la configuración del usuario. Las configuraciones se pueden proporcionar en formato dconf o GSettings.

Requisitos

La colección community.general, según se especifica en requirements.yml. Instala los requisitos usando

ansible-galaxy install -r requirements.yml

Además, el módulo community.general.dconf requiere el módulo de Python psutil. Este módulo se instalará automáticamente.

Variables del Rol

Todas las variables específicas para este rol comienzan con gnome_. Las variables disponibles se enumeran a continuación:

gnome_user: El usuario cuyas configuraciones serán modificadas. Ejemplo:

gnome_user: root

Si no se especifica un gnome_user, se usará la variable ansible_user_id (el usuario bajo el cual Ansible se conecta al nodo).

gnome_packages: Una lista de paquetes que se instalarán. Ejemplo:

gnome_packages:
  - fonts-roboto

gnome_fonts: Una lista de fuentes que se descargarán de una fuente remota, se descomprimirán e instalarán en el directorio local de fuentes. Cada elemento de la lista consiste en un url, name, y una lista (glob) de fuentes en ese archivo zip para instalar (fonts). Ejemplo:

gnome_fonts:
  - url: https://github.com/adobe-fonts/source-code-pro/archive/2.030R-ro/1.050R-it.zip
    name: SourceCodePro
    fonts: "source-code-pro-2.030R-ro-1.050R-it/OTF/*.otf"

gnome_files: Una lista de archivos, especificando la fuente (src) y el destino (dest) que se copiarán del anfitrión al invitado. Ejemplo:

gnome_files:
  - src: gtk.css
    dest: /home/{{ gnome_user }}/.config/gtk-3.0/gtk.css

gnome_extensions: Una lista de extensiones de GNOME shell que se instalarán (descargadas de una fuente remota y descomprimidas en las extensiones locales del usuario).

Las propiedades url y/o name de cada elemento se cargan dinámicamente desde la web cuando está presente id.

gnome_extensions:
  - id: 545

Si la propiedad enable está presente y se establece en un valor verdadero (por ejemplo, yes), la extensión se habilitará automáticamente después de la instalación. Ejemplo:

gnome_extensions:
  - id: 1112
    enable: yes

En lugar de especificar el ID, también puedes forzar las claves url y name. Ejemplo:

gnome_extensions:
  - url:
    "https://extensions.gnome.org/download-extension/[email protected]?version_tag=6450"
    name: "[email protected]"

Ten en cuenta que un valor de name y/o url predefinido no será sobrescrito al especificar el id.

gnome_gsettings: Una lista de entradas de gsettings que se establecerán para el gnome_user, usando gsettings. Cada elemento de la lista consiste en una entrada schema, key y value. Ten en cuenta que los valores deben estar contenidos dentro de comillas simples Y dobles, debido a la configuración de comillas de Ansible para los comandos shell. Ejemplo:

gnome_gsettings:
  - schema: org.gnome.desktop.interface
    key: monospace-font-name
    value: '"Source Code Pro Medium 16"'

gnome_dconf: Una lista de entradas dconf que se establecerán para el gnome_user, usando dconf. Cada elemento de la lista consiste en una entrada key y value. Ejemplo:

gnome_dconf:
  - key: /org/gnome/desktop/background/show-desktop-icons
    value: "false"

gtk_version: La cadena de versión de GTK. Esto se usa para crear un directorio de configuración de GTK, si no existe ya. Ejemplo:

gtk_version: "gtk-3.0"

Dependencias

Ninguna.

Ejemplo de Playbook

- hosts: all
  become: yes
  become_method: sudo
  roles:
    - role: petermosmans.customize-gnome
  vars:
    gnome_dconf:
      - key: /org/gnome/desktop/background/show-desktop-icons
        value: "false"
    gnome_extensions:
      - url: https://extensions.gnome.org/download-extension/[email protected]?version_tag=6450
        name: [email protected]
      - id: 15
      - id: 1160
        url: https://example.com/gnome-extension/1160.zip
      - id: 1236
        name: CustomNamedExtension
      - id: 1267
        name: CustomNamedExtension2
        url: https://example.com/gnome-extension/1267.zip
      - id: 1112
        enable: yes
    gnome_files:
      - src: gtk.css
        dest: "/home/{{ gnome_user }}/.config/{{ gtk_version }}/gtk.css"
    gnome_fonts:
      - url: https://github.com/adobe-fonts/source-code-pro/archive/2.030R-ro/1.050R-it.zip
        name: SourceCodePro
        fonts: "source-code-pro-2.030R-ro-1.050R-it/OTF/*.otf"
    gnome_gsettings:
      - schema: org.gnome.desktop.interface
        key: monospace-font-name
        value: '"Source Code Pro Medium 16"'
      - schema: org.gnome.shell.extensions.dash-to-panel
        schemadir: ~/.local/share/gnome-shell/extensions/[email protected]/schemas
        key: panel-position
        value: TOP
    gnome_packages:
      - fonts-roboto
    gnome_user: peter
    gtk_version: 3.0

Este ejemplo instalará las fuentes globales Roboto, Source Code Pro, la extensión del shell de GNOME hidetopbar y modifica varias configuraciones para el usuario root.

Licencia

GPLv3

Información del Autor

Creado inicialmente por Peter Mosmans. Contribuciones de muchos otros: ver https://github.com/PeterMosmans/ansible-role-customize-gnome/graphs/contributors

Acerca del proyecto

Customizes settings for a GNOME desktop, including shell extensions and fonts.

Instalar
ansible-galaxy install PeterMosmans.customize-gnome
Licencia
gpl-3.0
Descargas
5.8k
Propietario
Lead pentester, security consultant, trainer