wayofdev.dock




État de la construction Rôle Ansible Dernière version Score de qualité Ansible Rôle Ansible Licence du logiciel Commits depuis la dernière version

Rôle Ansible : Automatisation du Dock macOS

Ce rôle est utilisé pour automatiser l'utilisation de dockutil, un outil en ligne de commande pour gérer les éléments du Dock. Vous pouvez ajouter, supprimer et réorganiser les éléments du Dock.

Si vous aimez/utilisez ce rôle, merci de le star. Merci !


🗂 Table des matières


⭐️ Avantages de ce rôle :

  • Cette version prend en charge la dernière version 3.x de dockutil
  • Les éléments sont ajoutés, positionnés et supprimés en une seule commande au lieu de boucles
  • Prise en charge de la dernière version de macOS Monterey
  • Peut effacer tous les éléments contenus dans le Dock avec un seul paramètre
  • Pas besoin de gestionnaires Ansible et de droits sudo pour faire killall pour redémarrer le Dock, car c'est géré par dockutil lui-même !
  • Prend en charge toutes les options de dockutil, comme : --add, --remove, --move, --replacing, --position, --after, --before, --section, --allhomes, --sort, --display, --view

📑 Exigences

  • Homebrew : Nécessite homebrew déjà installé (vous pouvez utiliser wayofdev.homebrew pour l'installer sur votre macOS).
  • Version à jour d'Ansible. Pendant la maintenance/développement, nous nous en tenons aux versions d'Ansible et utiliserons de nouvelles fonctionnalités si elles sont disponibles (et mettrons à jour meta/main.yml pour la version minimale).
  • Système d'exploitation compatible. Consultez le tableau compatibilité.
  • Le rôle a des dépendances sur des rôles tiers pour différents systèmes d'exploitation. Voir requirements.yml et la section dépendances.

🔧 Variables du rôle

Cette section montre toutes les variantes possibles pour ajouter, déplacer, remplacer et supprimer des applications, des séparateurs et des dossiers. Les variables disponibles sont listées ci-dessous avec des valeurs d'exemple (voir defaults/main.yml) :


→ Structure

Ce groupe contrôle l'installation de dockutil et permet de sélectionner un dépôt personnalisé :

# Devons-nous essayer d'installer dockutil ?
dock_dockutil_install: <true | false> # (par défaut : true) Installer dockutil via homebrew.

# Chemin vers un dépôt personnalisé ou officiel de dockutil
dock_dockutil_tap: lotyp/formulae/dockutil # Par défaut, le dépôt 3.x est utilisé

Le rôle permet d'effacer complètement le Dock macOS :

# Supprime tout le contenu du Dock, y compris la section "autres" avec le dossier Téléchargements.
# Préférez cette option lors des nouvelles installations avec les "dockitems" configurés.
dock_dockitems_erase_all: <true | false> # Voulez-vous tenter d'effacer tous les éléments du Dock, y compris le dossier Téléchargements ? (par défaut : false)

Structure des variables pour ajouter, déplacer ou supprimer des éléments dans le Dock :

dock_dockitems:
  - label: <label> # Utilisé pour rechercher des éléments existants ou nommer de nouvelles applications
    action: <add | remove | move>
    path: <label | id de bundle d'application | chemin | url> # Exemple : /System/Applications/TextEdit.app
    replacing: <label | id de bundle d'application | chemin | url> # Label ou id de bundle de l'élément à remplacer. Remplace l'élément par le label du dock donné ou ajoute l'élément à la fin si l'élément à remplacer n'est pas trouvé.
    position: <[+/-]index_number | beginning | end | middle> # Insère l'élément à une position fixe : peut être positionné par numéro d'index ou mot clé.
    after: <label | id de bundle d'application> # Insère l'élément immédiatement après le label donné ou à la fin si l'élément n'est pas trouvé.
    before: <label | id de bundle d'application> # Insère l'élément immédiatement avant le label donné ou à la fin si l'élément n'est pas trouvé.
    section: <apps | others> # Spécifie si l'élément doit être ajouté à la section des applications ou des autres.
    display: <folder | stack> # Option d'affichage de dossier lors de l'ajout d'un dossier
    sort: <name | dateadded | datemodified | datecreated | kind> # Option de tri de dossier lors de l'ajout d'un dossier
    type: <spacer | small-spacer | flex-spacer> # Spécifier un type de tuile personnalisé pour ajouter des séparateurs
    allhomes: <true | false> # Voulez-vous tenter de localiser tous les répertoires personnels et d'effectuer l'opération sur chacun d'eux ? (par défaut : false)

→ Ajout

Ajoute TextEdit.app à la fin du Dock de l'utilisateur actuel :

dock_dockitems:
  - label: TextEdit
    action: add
    path: /System/Applications/TextEdit.app

Ajoute Time Machine.app au milieu du Dock :

dock_dockitems:
  - label: Time Machine
    action: add
    path: /System/Applications/Time Machine.app
    position: middle

Ajoute TextEdit.app après l'élément Time Machine.app dans le Dock de tous les utilisateurs de cette machine :

dock_dockitems:
  - label: TextEdit
    action: add
    path: /System/Applications/TextEdit.app
    after: Time Machine
    allhomes: true # paramètre optionnel

→ Ajout avec Remplacement

Remplace Time Machine.app par Mail.app dans le Dock de l'utilisateur actuel.

dock_dockitems:
  - label: Mail
    action: add
    path: /System/Applications/Mail.app
    replacing: Time Machine

→ Ajout de dossiers

Ajoute le dossier Téléchargements à la section autres du menu Dock. En cliquant, une prévisualisation en mode grille s'ouvrira.

dock_dockitems:
  - label: Downloads
    action: add
    path: ~/Downloads
    view: grid
    display: folder
    allhomes: true # paramètre optionnel

→ Suppression

Supprime TextEdit du Dock de tous les utilisateurs de cette machine :

dock_dockitems:
  - label: TextEdit
    action: remove
    allhomes: true # paramètre optionnel

Supprime tous les tuiles séparatrices :

dock_dockitems:
  - label: spacer-tiles
    action: remove

→ Déplacement

Déplace System Preferences au deuxième emplacement du Dock de tous les utilisateurs de cette machine :

dock_dockitems:
  - label: System Preferences
    action: move
    position: end # <[+/-]index_number | beginning | end | middle>
    allhomes: true # paramètre optionnel

📗 Exemple de Playbook

---
- hosts: all

  # est nécessaire lors de l'exécution via SSH
  environment:
    - PATH: "/usr/local/bin:/usr/local/sbin:/opt/homebrew/bin:{{ ansible_env.PATH }}"

  vars:
    dock_dockitems_erase_all: true
    dock_dockitems:
      - label: Messages
        action: add
        path: /System/Applications/Messages.app

      - label: Safari
        action: add
        path: /Applications/Safari.app

      - label: Sublime Text
        action: add
        path: /Applications/Sublime Text.app
        position: 3

  roles:
    - wayofdev.homebrew
    - wayofdev.dock

⚙️ Développement

Pour installer les dépendances et commencer le développement, vous pouvez vérifier le contenu de notre Makefile.

Installer poetry en utilisant poetry-bin et toutes les dépendances python de développement :

$ make install

Installer uniquement les dépendances python, en supposant que vous avez déjà poetry :

$ make install-deps

Installer tous les hooks git :

$ make hooks

Lint tous les fichiers du rôle :

$ make lint

🧪 Tests

Vous pouvez consulter le Makefile pour obtenir la liste complète des commandes pour les tests distants et locaux. Pour les tests locaux, vous pouvez utiliser ces commandes pour tester l'ensemble du rôle ou des tâches séparées :

→ sur localhost

:warning: Remarque : Par défaut, tous les tests sont exécutés sur votre machine locale !

# exécuter des tests moleculaires sur localhost
$ poetry run molecule test --scenario-name defaults-restored-on-localhost -- -vvv

# ou avec la commande make
$ make m-local

# choisir les tags qui seront inclus
$ export TASK_TAGS="dock-validate,dock-install"; make m-local

→ via SSH

# exécuter des scénarios moléculaires contre des machines distantes via SSH
# cela nécessitera la configuration d'une VM
$ poetry run molecule test --scenario-name defaults-restored-over-ssh -- -vvv

$ make m-remote

# les tags peuvent également être passés
$ export TASK_TAGS="dock-validate,dock-install"
$ make m-remote

📦 Dépendances

L'installation est gérée par Makefile et les exigences sont définies dans requirements.yml


🧩 Compatibilité

Ce rôle a été testé sur ces systèmes :

système / conteneur tag
macos monterey
macos big-sur

🤝 Licence

Licence


🙆🏼‍♂️ Informations sur l'auteur

Ce rôle a été créé en 2022 par lotyp / wayofdev.


🧱 Crédits et ressources

Inspiré par :


🫡 Contributeurs


🤑 Sponsors

Le développement et les tests du rôle ont été réalisés sur Parallels Desktop Pro Edition, merci à Parallels

À propos du projet

Role is used to automate use of "dockutil" – command line tool for managing dock items. You can add, remove and re-arrange Dock items.

Installer
ansible-galaxy install wayofdev.dock
Licence
gpl-3.0
Téléchargements
756
Propriétaire
Making things to build better software