wayofdev.dock




Status budowy Rola Ansible Najowsza wersja Ocena jakości Ansible Rola Ansible Licencja oprogramowania Zobowiązania od ostatniego wydania

Rola Ansible: Automatyzacja Docka w macOS

Rola ta służy do automatyzacji korzystania z dockutil – narzędzia wiersza poleceń do zarządzania elementami Docka. Możesz dodawać, usuwać i zmieniać kolejność elementów Docka.

Jeśli podobają się lub używasz tej roli, prosimy o dodanie jej do ulubionych. Dziękujemy!


🗂 Spis treści


⭐️ Korzyści z tej roli:

  • Ta wersja wspiera najnowszą wersję 3.x dockutil
  • Elementy dodawane, pozycjonowane i usuwane są w jednym poleceniu zamiast w pętli
  • Wsparcie dla najnowszego macOS Monterey
  • Możliwość usunięcia wszystkich elementów Docka za pomocą jednego ustawienia
  • Nie ma potrzeby używania handlerów ansible i praw sudo do wykonania killall w celu ponownego uruchomienia Docka, ponieważ obsługiwa dockutil!
  • Wspiera wszystkie opcje dockutil, takie jak: --add, --remove, --move, --replacing, --position, --after, --before, --section, --allhomes, --sort, --display, --view

📑 Wymagania

  • Homebrew: Wymaga zainstalowanego homebrew (możesz użyć wayofdev.homebrew, aby go zainstalować na swoim macOS).
  • Zaktualizowana wersja ansible. W trakcie utrzymania/rozwoju trzymamy się wersji ansible i będziemy korzystać z nowych funkcji, gdy będą dostępne (oraz zaktualizujemy meta/main.yml o minimalną wersję).
  • Kompatybilny system operacyjny. Zobacz tabelę kompatybilności.
  • Rola ma zależności od ról stron trzecich w różnych systemach operacyjnych. Zobacz requirements.yml oraz sekcję zależności.

🔧 Zmienne roli

Sekcja pokazuje wszystkie możliwe warianty dodawania, przesuwania, zastępowania i usuwania aplikacji, przestrzeni, folderów. Dostępne zmienne są wymienione poniżej, wraz z przykładowymi wartościami (patrz defaults/main.yml):


→ Struktura

Grupa kontroluje instalację dockutil i pozwala na wybór niestandardowego tapu:

# Czy próbować zainstalować dockutil?
dock_dockutil_install: <true | false> # (domyślnie: true) Zainstaluj dockutil za pomocą homebrew.

# Ścieżka do niestandardowego lub oficjalnego tapu dockutil
dock_dockutil_tap: lotyp/formulae/dockutil # Domyślnie używany jest tap 3.x

Rola pozwala na całkowite wyczyszczenie docka w macOS:

# Usuwa wszystkie elementy z docka, w tym sekcję "inne" z folderem Pobrane.
# Preferuj tę opcję przy nowych instalacjach razem z skonfigurowanymi "dockitems".
dock_dockitems_erase_all: <true | false> # Czy próbować usunąć wszystkie elementy w Docku, łącznie z folderem Pobrane? (domyślnie: false)

Struktura zmiennej do dodawania, przenoszenia lub usuwania elementów w Docku:

dock_dockitems:
  - label: <label> # Używana w wyszukiwaniu istniejących elementów lub nadawaniu nowych nazw aplikacji
    action: <add | remove | move>
    path: <label | id paczki aplikacji | ścieżka | url> # Przykład: /System/Applications/TextEdit.app
    replacing: <label | id paczki aplikacji | ścieżka | url> # Etykieta lub id paczki aplikacji elementu do zastąpienia. Zastępuje element podaną etykietą docka lub dodaje element na końcu, jeśli element do zastąpienia nie został znaleziony
    position: <[+/-]index_number | beginning | end | middle> # Wstawia element w ustalonej pozycji: można pozycjonować według numeru indeksu lub słowa kluczowego
    after: <label | id paczki aplikacji> # Wstawia element bezpośrednio po danej etykiecie docka lub na końcu, jeśli element nie został znaleziony
    before: <label | id paczki aplikacji> # Wstawia element bezpośrednio przed daną etykietą docka lub na końcu, jeśli element nie został znaleziony
    section: <apps | others> # Określa, czy element powinien być dodany do sekcji aplikacji, czy innych
    display: <folder | stack> # Opcja wyświetlania folderu przy dodawaniu folderu
    sort: <name | dateadded | datemodified | datecreated | kind> # Opcja sortowania folderu przy dodawaniu folderu
    type: <spacer | small-spacer | flex-spacer> # Określa niestandardowy typ płytki do dodawania przestrzeni
    allhomes: <true | false> # Czy próbować zlokalizować wszystkie katalogi domowe i wykonać operację na każdym z nich (domyślnie: false)

→ Dodawanie

Dodaje TextEdit.app na końcu Docka bieżącego użytkownika:

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

Dodaje Time Machine.app w środku Docka:

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

Dodaje TextEdit.app po elemencie Time Machine.app we wszyscy użytkownicy Docka na maszynie:

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

→ Dodawanie z zastąpieniem

Zastępuje Time Machine.app przez Mail.app w Docku bieżącego użytkownika:

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

→ Dodawanie folderów

Dodaje folder Downloads do sekcji others w menu Docka. Po kliknięciu otworzy podgląd w trybie siatki:

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

→ Usuwanie

Usuwa TextEdit we wszystkich Dockach użytkowników na tej maszynie:

dock_dockitems:
  - label: TextEdit
    action: remove
    allhomes: true # opcjonalny parametr

Usuwa wszystkie kafelki przestrzeni:

dock_dockitems:
  - label: spacer-tiles
    action: remove

→ Przenoszenie

Przenosi System Preferences na drugą pozycję w Docku wszystkich użytkowników na tej maszynie:

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

📗 Przykładowy Playbook

---
- hosts: all

  # jest potrzebny podczas działania przez 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

⚙️ Rozwój

Aby zainstalować zależności i rozpocząć rozwój, możesz sprawdzić zawartość naszego Makefile

Zainstaluj poetry używając poetry-bin oraz wszystkich zależności python:

$ make install

Zainstaluj tylko zależności w pythonie, zakładając, że masz już zainstalowane poetry:

$ make install-deps

Zainstaluj wszystkie haki git:

$ make hooks

Sprawdź wszystkie pliki roli:

$ make lint

🧪 Testowanie

Możesz sprawdzić Makefile, aby uzyskać pełną listę poleceń do testów zdalnych i lokalnych. Do testów lokalnych możesz użyć tych poleceń, aby przetestować całą rolę lub oddzielne zadania:

→ na localhost

:warning: Uwaga: Domyślnie wszystkie testy są uruchamiane na lokalnej maszynie!

# uruchom testy molekularne na localhost
$ poetry run molecule test --scenario-name defaults-restored-on-localhost -- -vvv

# lub za pomocą polecenia make
$ make m-local

# wybierz, które tagi będą uwzględnione
$ export TASK_TAGS="dock-validate,dock-install"; make m-local

→ przez SSH

# uruchom scenariusze molekularne na zdalnych maszynach przez SSH
# to będzie wymagać konfiguracji i ustawienia VM
$ poetry run molecule test --scenario-name defaults-restored-over-ssh -- -vvv

$ make m-remote

# tagi mogą być również przekazywane
$ export TASK_TAGS="dock-validate,dock-install"
$ make m-remote

📦 Zależności

Instalacja odbywa się za pomocą Makefile, a wymagania są określone w requirements.yml


🧩 Kompatybilność

Ta rola została przetestowana na tych systemach:

system / kontener tag
macos monterey
macos big-sur

🤝 Licencja

Licencja


🙆🏼‍♂️ Informacje o autorze

Ta rola została stworzona w 2022 przez lotyp / wayofdev.


🧱 Podziękowania i zasoby

Zainspirowane przez:


🫡 Współautorzy


🤑 Sponsorzy

Rozwój i testowanie roli odbywały się na Parallels Desktop Pro Edition, za co dziękujemy Parallels

O projekcie

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

Zainstaluj
ansible-galaxy install wayofdev.dock
Licencja
gpl-3.0
Pobrania
756
Właściciel
Making things to build better software