wayofdev.dock




Build Status Ansible Role Latest Version Ansible Quality Score Ansible Role Software License Commits since latest release

Ansible-Rolle: macOS Dock-Automatisierung

Diese Rolle wird verwendet, um die Nutzung von dockutil zu automatisieren – ein Kommandozeilenwerkzeug zur Verwaltung von Dock-Elementen. Sie können Dock-Elemente hinzufügen, entfernen und neu anordnen.

Wenn Sie diese Rolle mögen/verwenden, ziehen Sie bitte in Betracht, sie zu favorisieren. Danke!


🗂 Inhaltsverzeichnis


⭐️ Vorteile dieser Rolle:

  • Diese Version unterstützt die neueste 3.x dockutil
  • Elemente werden in einem einzelnen Befehl hinzugefügt, positioniert und entfernt, anstatt in Schleifen
  • Unterstützung für das neueste macOS Monterey
  • Kann alle Elemente im Dock mit einer Einstellung löschen
  • Keine Notwendigkeit für Ansible-Handler und Sudo-Rechte für killall, um das Dock neu zu starten, da dies von dockutil selbst erledigt wird!
  • Unterstützt alle dockutil-Optionen, wie: --add, --remove, --move, --replacing, --position, --after, --before, --section, --allhomes, --sort, --display, --view

📑 Anforderungen

  • Homebrew: Erfordert bereits installiertes homebrew (Sie können wayofdev.homebrew verwenden, um es auf Ihrem macOS zu installieren).
  • Aktuelle Version von Ansible. Während der Wartung/Entwicklung halten wir uns an Ansible-Versionen und verwenden neue Funktionen, wenn sie verfügbar sind (und aktualisieren meta/main.yml für die Mindestversion).
  • Kompatibles Betriebssystem. Siehe die Tabelle Kompatibilität.
  • Die Rolle hat Abhängigkeiten von Drittanbieter-Rollen auf verschiedenen Betriebssystemen. Siehe requirements.yml und den Abschnitt Abhängigkeiten.

🔧 Rollenvariablen

Dieser Abschnitt zeigt alle möglichen Varianten zum Hinzufügen, Verschieben, Ersetzen und Entfernen von Anwendungen, Trennlinien, Ordnern. Verfügbare Variablen sind unten aufgelistet, zusammen mit Beispielwerten (siehe defaults/main.yml):


→ Struktur

Gruppe steuert die Installation von dockutil und ermöglicht die Auswahl einer benutzerdefinierten Quelle:

# Soll dockutil installiert werden?
dock_dockutil_install: <true | false> # (standard: true) Installiere dockutil mit Homebrew.

# Pfad zur benutzerdefinierten oder offiziellen Quelle von dockutil
dock_dockutil_tap: lotyp/formulae/dockutil # Standardmäßig wird die 3.x Quelle verwendet

Die Rolle ermöglicht es, das Dock von macOS vollständig zu leeren:

# Entfernt alle Inhalte aus dem Dock einschließlich des Bereichs "Sonstiges" mit dem Download-Ordner.
# Bevorzugen Sie diese Option bei Neuinstallationen zusammen mit konfigurierten "dockitems".
dock_dockitems_erase_all: <true | false> # Ob versucht werden soll, alle Elemente im Dock einschließlich des Download-Ordners zu löschen! (standard: false)

Variablenstruktur zum Hinzufügen, Verschieben oder Entfernen von Elementen im Dock:

dock_dockitems:
  - label: <label> # Wird bei der Suche nach vorhandenen Elementen oder der Benennung neuer Apps verwendet
    action: <add | remove | move>
    path: <label | app bundle id | path | url> # Beispiel: /System/Applications/TextEdit.app
    replacing: <label | app bundle id | path | url> # Label oder App-Bundle-ID des zu ersetzenden Elements. Ersetzt das Element mit dem angegebenen Dock-Label oder fügt das Element am Ende hinzu, wenn das zu ersetzende Element nicht gefunden wird
    position: <[+/-]index_number | beginning | end | middle> # Führt das Element an einer festen Position ein: kann durch Indexnummer oder Schlüsselwort positioniert werden
    after: <label | application bundle id> # Fügt das Element unmittelbar nach dem angegebenen Dock-Label oder am Ende hinzu, wenn das Element nicht gefunden wird
    before: <label | application bundle id> # Fügt das Element unmittelbar vor dem angegebenen Dock-Label oder am Ende hinzu, wenn das Element nicht gefunden wird
    section: <apps | others> # Gibt an, ob das Element dem Bereich Apps oder Sonstiges hinzugefügt werden soll
    display: <folder | stack> # Ordnervorschauoption beim Hinzufügen eines Ordners
    sort: <name | dateadded | datemodified | datecreated | kind> # Ordnersortieroption beim Hinzufügen eines Ordners
    type: <spacer | small-spacer | flex-spacer> # Gibt einen benutzerdefinierten Kacheltyp zum Hinzufügen von Trennlinien an
    allhomes: <true | false> # Ob versucht werden soll, alle Home-Verzeichnisse zu finden und die Operation in jedem von ihnen auszuführen (standard: false)

→ Hinzufügen

Fügt TextEdit.app ans Ende des Dock des aktuellen Benutzers hinzu:

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

Fügt Time Machine.app in die Mitte des Docks hinzu:

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

Fügt TextEdit.app nach dem Element Time Machine.app im Dock jedes Benutzers auf diesem Gerät hinzu:

dock_dockitems:
  - label: TextEdit
    action: add
    path: /System/Applications/TextEdit.app
    after: Time Machine
    allhomes: true # optionales Parameter

→ Hinzufügen mit Ersetzen

Ersetzt Time Machine.app mit Mail.app im Dock des aktuellen Benutzers:

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

→ Ordner hinzufügen

Fügt den Ordner Downloads zum Bereich Sonstiges des Dock-Menüs hinzu. Bei einem Klick wird die Vorschau im Rastermodus geöffnet.

dock_dockitems:
  - label: Downloads
    action: add
    path: ~/Downloads
    view: grid
    display: folder
    allhomes: true # optionales Parameter

→ Entfernen

Entfernt TextEdit aus dem Dock jedes Benutzers auf diesem Gerät:

dock_dockitems:
  - label: TextEdit
    action: remove
    allhomes: true # optionales Parameter

Entfernt alle Trennlinien:

dock_dockitems:
  - label: spacer-tiles
    action: remove

→ Verschieben

Verschiebt System Preferences an den zweiten Platz im Dock jedes Benutzers auf diesem Gerät:

dock_dockitems:
  - label: System Preferences
    action: move
    position: end # <[+/-]index_number | beginning | end | middle>
    allhomes: true # optionales Parameter

📗 Beispiel-Playbook

---
- hosts: all

  # wird benötigt, wenn über SSH ausgeführt wird
  environment:
    - PATH: "/usr/local/bin:/usr/local/sbin:/opt/homebrew/bin:{{ ansible_env.PATH }}"

  vars:
    dock_dockitems_erase_all: true
    dock_dockitems:
      - label: Nachrichten
        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

⚙️ Entwicklung

Um Abhängigkeiten zu installieren und die Entwicklung zu starten, können Sie den Inhalt unseres Makefile überprüfen.

Installieren Sie poetry mit poetry-bin und allen Entwicklungs-Python-Abhängigkeiten:

$ make install

Installieren Sie nur Python-Abhängigkeiten, vorausgesetzt, Sie haben bereits poetry installiert:

$ make install-deps

Installieren Sie alle Git-Hooks:

$ make hooks

Lint alle Rollendateien:

$ make lint

🧪 Testen

Sie können das Makefile überprüfen, um die vollständige Liste von Befehlen für remote und lokale Tests zu erhalten. Für lokale Tests können Sie diese Befehle verwenden, um die gesamte Rolle oder einzelne Aufgaben zu testen:

→ auf localhost

:warning: Hinweis: Standardmäßig werden alle Tests auf Ihrem lokalen Computer ausgeführt!

# führen Sie Molecule-Tests auf localhost aus
$ poetry run molecule test --scenario-name defaults-restored-on-localhost -- -vvv

# oder mit dem Make-Befehl
$ make m-local

# wählen Sie aus, welche Tags enthalten sein sollen
$ export TASK_TAGS="dock-validate,dock-install"; make m-local

→ über SSH

# führen Sie Molecule-Szenarien auf entfernten Maschinen über SSH aus
# dies benötigt VM-Setup und -Konfiguration
$ poetry run molecule test --scenario-name defaults-restored-over-ssh -- -vvv

$ make m-remote

# Tags können ebenfalls übergeben werden
$ export TASK_TAGS="dock-validate,dock-install"
$ make m-remote

📦 Abhängigkeiten

Die Installation erfolgt über Makefile, und die Anforderungen sind in requirements.yml definiert.


🧩 Kompatibilität

Diese Rolle wurde auf diesen Systemen getestet:

System / Container Tag
macos monterey
macos big-sur

🤝 Lizenz

Lizenz


🙆🏼‍♂️ Autoreninformationen

Diese Rolle wurde 2022 von lotyp / wayofdev erstellt.


🧱 Danksagungen und Ressourcen

Inspiriert durch:


🫡 Mitwirkende


🤑 Sponsoren

Die Entwicklung und das Testen der Rolle wurden auf Parallels Desktop Pro Edition durchgeführt, vielen Dank an Parallels

Über das Projekt

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

Installieren
ansible-galaxy install wayofdev.dock
Lizenz
gpl-3.0
Downloads
756
Besitzer
Making things to build better software