PeterMosmans.customize-gnome
Rôle Ansible : personnaliser-gnome
Statut de construction pour ce rôle :
Ce rôle personnalise le bureau GNOME. Il installe des polices et des extensions GNOME à partir de packages ou de fichiers zip, copie des fichiers comme des fonds d'écran et des ajustements de l'interface GNOME sur un hôte, et modifie les paramètres de l'utilisateur. Les paramètres peuvent être fournis au format dconf ou GSettings.
Exigences
La collection community.general, comme spécifié dans requirements.yml
. Installez les exigences en utilisant
ansible-galaxy install -r requirements.yml
De plus, le module community.general.dconf
nécessite le module Python psutil
. Ce module sera installé automatiquement.
Variables du Rôle
Toutes les variables spécifiques à ce rôle commencent par gnome_
. Les variables disponibles sont listées ci-dessous :
gnome_user : L'utilisateur dont les paramètres seront modifiés. Exemple :
gnome_user: root
Si aucun gnome_user
n'est spécifié, il utilisera la variable ansible_user_id
(l'utilisateur sous lequel Ansible se connecte au nœud).
gnome_packages : Une liste de packages à installer. Exemple :
gnome_packages:
- fonts-roboto
gnome_fonts : Une liste de polices qui seront téléchargées à partir d'une source distante, extraites et installées dans le répertoire local des polices. Chaque élément de la liste se compose d'un url
, d'un name
, et d'une liste (glob) de polices dans ce fichier zip à installer (fonts
). Exemple :
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 : Une liste de fichiers, spécifiant la source (src
) et la destination (dest
) qui seront copiés de l'hôte au client. Exemple :
gnome_files:
- src: gtk.css
dest: /home/{{ gnome_user }}/.config/gtk-3.0/gtk.css
gnome_extensions : Une liste d'extensions de shell GNOME qui seront installées (téléchargées à partir d'une source distante et extraites dans les extensions locales des utilisateurs). Les propriétés url
et/ou name
de chaque élément sont chargées dynamiquement depuis le web lorsque id
est présent.
gnome_extensions:
- id: 545
Si la propriété enable
est présente et définie sur une valeur vraie (par exemple, yes
), l'extension sera activée automatiquement après l'installation. Exemple :
gnome_extensions:
- id: 1112
enable: yes
Au lieu de spécifier l'ID, vous pouvez également imposer les clés url
et name
. Exemple :
gnome_extensions:
- url:
"https://extensions.gnome.org/download-extension/[email protected]?version_tag=6450"
name: "[email protected]"
Notez qu'une valeur name
et/ou url
prédéfinie ne sera pas remplacée en spécifiant l'id
.
gnome_gsettings : Une liste d'entrées gsettings qui seront définies pour le gnome_user
, en utilisant gsettings
. Chaque élément de la liste se compose d'un schema
, d'une key
et d'une value
. Notez que les valeurs doivent être contenues dans des quotes simples ET doubles, en raison des paramètres de citation d'Ansible pour les commandes shell. Exemple :
gnome_gsettings:
- schema: org.gnome.desktop.interface
key: monospace-font-name
value: '"Source Code Pro Medium 16"'
gnome_dconf : Une liste d'entrées dconf qui seront définies pour le gnome_user
, en utilisant dconf
. Chaque élément de la liste se compose d'une key
et d'une value
. Exemple :
gnome_dconf:
- key: /org/gnome/desktop/background/show-desktop-icons
value: "false"
gtk_version : La chaîne de version de GTK. Cela est utilisé pour créer un répertoire de configuration GTK, s'il n'existe pas déjà. Exemple :
gtk_version: "gtk-3.0"
Dépendances
Aucune.
Exemple 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
Cet exemple installera les polices globales Roboto, Source Code Pro, l'extension de shell GNOME hidetopbar et modifiera plusieurs paramètres pour l'utilisateur root
.
Licence
GPLv3
Informations sur l'Auteur
Initialement créé par Peter Mosmans. Contributions de nombreuses autres personnes : voir
https://github.com/PeterMosmans/ansible-role-customize-gnome/graphs/contributors
Customizes settings for a GNOME desktop, including shell extensions and fonts.
ansible-galaxy install PeterMosmans.customize-gnome