wayofdev.dock
<br>
<div align="center">
<img width="456" src="https://raw.githubusercontent.com/wayofdev/ansible-role-dock/master/assets/logo.gh-light-mode-only.png#gh-light-mode-only">
<img width="456" src="https://raw.githubusercontent.com/wayofdev/ansible-role-dock/master/assets/logo.gh-dark-mode-only.png#gh-dark-mode-only">
</div>
<br>
<br>
<div align="center">
<a href="https://actions-badge.atrox.dev/wayofdev/ansible-role-dock/goto"><img alt="ビルドステータス" src="https://img.shields.io/endpoint.svg?url=https%3A%2F%2Factions-badge.atrox.dev%2Fwayofdev%2Fansible-role-dock%2Fbadge&style=flat-square"/></a>
<a href="https://galaxy.ansible.com/wayofdev/dock"><img alt="Ansible ロール" src="https://img.shields.io/ansible/role/59499?style=flat-square"/></a>
<a href="https://github.com/wayofdev/ansible-role-dock/tags"><img src="https://img.shields.io/github/v/tag/wayofdev/ansible-role-dock?sort=semver&style=flat-square" alt="最新バージョン"></a>
<a href="https://galaxy.ansible.com/wayofdev/dock"><img alt="Ansible 品質スコア" src="https://img.shields.io/ansible/quality/59499?style=flat-square"/></a>
<a href="https://galaxy.ansible.com/wayofdev/dock"><img alt="Ansible ロール" src="https://img.shields.io/ansible/role/d/59499?style=flat-square"/></a>
<a href="LICENSE"><img src="https://img.shields.io/github/license/wayofdev/ansible-role-dock.svg?style=flat-square&color=blue" alt="ソフトウェアライセンス"/></a>
<a href="#"><img alt="最新リリース以降のコミット" src="https://img.shields.io/github/commits-since/wayofdev/ansible-role-dock/latest?style=flat-square"></a>
</div>
<br>
# Ansible ロール: macOS Dock 自動化
このロールは、Dock項目を管理するためのコマンドラインツールである[dockutil](https://github.com/kcrawford/dockutil)を自動化するために使用されます。Dock項目を追加、削除、および並べ替えることができます。
このロールが気に入ったり、使っている場合は、**スターを付ける**ことを検討してください。ありがとうございます!
<br>
## 🗂 目次
* [このロールの利点](#-このロールの利点)
* [要件](#-要件)
* [ロール変数](#-ロール変数)
* [構造](#-構造)
* [追加](#-追加)
* [置き換えを伴う追加](#-置き換えを伴う追加)
* [フォルダの追加](#-フォルダの追加)
* [削除](#-削除)
* [移動](#-移動)
* [サンプルプレイブック](#-サンプルプレイブック)
* [開発](#-開発)
* [テスト](#-テスト)
* [ローカルホスト上で](#-ローカルホスト上で)
* [SSH経由で](#-ssh経由で)
* [依存関係](#-依存関係)
* [互換性](#-互換性)
* [ライセンス](#-ライセンス)
* [著者情報](#-著者情報)
* [クレジットとリソース](#-クレジットとリソース)
* [貢献者](#-貢献者)
* [スポンサー](#-スポンサー)
<br>
## ⭐️ このロールの利点:
* このバージョンは最新の3.xの[dockutil](https://github.com/kcrawford/dockutil)をサポートしています。
* 項目は、一度のコマンド実行で追加、配置、削除されます。
* 最新のmacOS Montereyをサポート。
* 一つの設定でDockの全ての項目を消去可能。
* `killall`を使用してDockを再起動するためのansibleハンドラーやsudo権限は不要です。これらは`dockutil`が自動で処理します!
* `dockutil`の全てのオプションをサポートします。例えば:
`--add, --remove, --move, --replacing, --position, --after, --before, --section, --allhomes, --sort, --display, --view`
<br>
## 📑 要件
- **Homebrew**: `homebrew`がすでにインストールされている必要があります(macOSにインストールするために`wayofdev.homebrew`を使用できます)。
- 最新版のansibleが必要です。メンテナンスや開発時にはansibleのバージョンに従い、もし新機能が利用可能であればそれを使用します(`meta/main.yml`の最小バージョンも更新します)。
- 互換性のあるOSが必要です。[互換性](#-互換性)テーブルを参照してください。
- 古いOSに依存する第三者の役割があります。`requirements.yml`と[依存関係](#-依存関係)セクションを確認してください。
<br>
## 🔧 ロール変数
このセクションでは、アプリケーション、スペーサー、フォルダを追加、移動、置き換え、削除するためのすべての可能な変数を示します。利用可能な変数とその例は以下に示します(`defaults/main.yml`を参照):
<br>
### → 構造
dockutilのインストールを制御し、カスタムタップを選択できます:
```yaml
# dockutilをインストールしますか?
dock_dockutil_install: <true | false> # (デフォルト: true) Homebrewを使用してdockutilをインストールします。
# dockutilのカスタムまたは公式タップへのパス
dock_dockutil_tap: lotyp/formulae/dockutil # デフォルトでは、3.xタップが使用されます。
macOS Dockを完全に消去することができます:
# ダウンロードフォルダを含むDockの全ての内容を削除します。
# 新しいインストール時には、設定された「dockitems」と共にこのオプションをお勧めします。
dock_dockitems_erase_all: <true | false> # ダウンロードフォルダを含むDock内の全項目を消去するかどうか! (デフォルト: false)
Dockに項目を追加、移動、または削除するための変数構造:
dock_dockitems:
- label: <label> # 既存の項目を検索するためや新しいアプリの名前として使用
action: <add | remove | move>
path: <label | app bundle id | path | url> # 例: /System/Applications/TextEdit.app
replacing: <label | app bundle id | path | url> # 置き換える項目のラベルまたはアプリのバンドルID。指定したDockラベルを持つ項目を置き換えたり、見つからない場合は最後に追加します。
position: <[+/-]index_number | beginning | end | middle> # 固定位置に項目を挿入します。インデックス番号またはキーワードで位置を決定できます。
after: <label | application bundle id> # 指定したDockラベルの直後に項目を挿入します。見つからない場合は最後に追加されます。
before: <label | application bundle id> # 指定したDockラベルの直前に項目を挿入します。見つからない場合は最後に追加されます。
section: <apps | others> # 項目がアプリのセクションまたは他のセクションに追加されるべきかを指定します。
display: <folder | stack> # フォルダを追加する際の表示オプション
sort: <name | dateadded | datemodified | datecreated | kind> # フォルダを追加する際のソートオプション
type: <spacer | small-spacer | flex-spacer> # スペーサーを追加する際にカスタムタイルタイプを指定します。
allhomes: <true | false> # すべてのホームディレクトリを探して各ディレクトリで操作を行うかどうか(デフォルト: false)
→ 追加
**TextEdit.app
**を現在のユーザーのDockの最後に追加します:
dock_dockitems:
- label: TextEdit
action: add
path: /System/Applications/TextEdit.app
**Time Machine.app
**をDockの中央に追加します:
dock_dockitems:
- label: Time Machine
action: add
path: /System/Applications/Time Machine.app
position: middle
**全ユーザーのDockにTextEdit.app
**をTime Machine.app
の後に追加します:
dock_dockitems:
- label: TextEdit
action: add
path: /System/Applications/TextEdit.app
after: Time Machine
allhomes: true # オプション
→ 置き換えを伴う追加
**Time Machine.app
**をMail.app
で現在のユーザーのDock内で置き換えます:
dock_dockitems:
- label: Mail
action: add
path: /System/Applications/Mail.app
replacing: Time Machine
→ フォルダの追加
**Downloads
**フォルダをDockメニューのothers
セクションに追加します。クリックするとグリッドモードでプレビューが開きます。
dock_dockitems:
- label: Downloads
action: add
path: ~/Downloads
view: grid
display: folder
allhomes: true # オプション
→ 削除
**全ユーザーのDockからTextEdit
**を削除します:
dock_dockitems:
- label: TextEdit
action: remove
allhomes: true # オプション
全てのスペーサーを削除します:
dock_dockitems:
- label: spacer-tiles
action: remove
→ 移動
**System Preferences
**を全ユーザーのDockの二番目のスロットに移動します:
dock_dockitems:
- label: System Preferences
action: move
position: end # <[+/-]index_number | beginning | end | middle>
allhomes: true # オプション
📗 サンプルプレイブック
---
- hosts: all
# 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
⚙️ 開発
依存関係をインストールし、開発を始めるためにはMakefile
の内容を確認してください。
**poetry**を使用してすべての開発用Python依存関係をインストールします:
$ make install
既にpoetryがある場合は、Python依存関係のみをインストールします:
$ make install-deps
すべてのgitフックをインストールします:
$ make hooks
すべてのロールファイルをリンティングします:
$ make lint
🧪 テスト
Makefile
を確認して、リモートおよびローカルテストのコマンド一覧を取得できます。ローカルテストには、全体のロールまたは個別のタスクをテストするために以下のコマンドを使用できます:
→ ローカルホスト上で
:warning: 注意: デフォルトでは、すべてのテストがローカルマシンで実行されます!
# ローカルホストでmoleculeテストを実行
$ poetry run molecule test --scenario-name defaults-restored-on-localhost -- -vvv
# またはmakeコマンドを使用して
$ make m-local
# 含めるタグを選択
$ export TASK_TAGS="dock-validate,dock-install"; make m-local
→ SSH経由で
# リモートマシンに対してmoleculeのシナリオを実行
# これはVMのセットアップと構成が必要です
$ poetry run molecule test --scenario-name defaults-restored-over-ssh -- -vvv
$ make m-remote
# タグも渡すことができます
$ export TASK_TAGS="dock-validate,dock-install"
$ make m-remote
📦 依存関係
インストールはMakefile
によって処理され、要件はrequirements.yml
に定義されています
- wayofdev.homebrew - Homebrewがまだインストールされていない場合のソフト依存関係
- ansible.community.general
🧩 互換性
このロールは次のシステムでテストされています:
システム / コンテナ | タグ |
---|---|
macos | monterey |
macos | big-sur |
🤝 ライセンス
🙆🏼♂️ 著者情報
このロールは2022年にlotyp / wayofdevによって作成されました。
🧱 クレジットとリソース
インスパイアされたもの:
- 元のロールは@geerlingguyによってansible-collection-macの一部として作成されました。
- dockutil
🫡 貢献者
🤑 スポンサー
ロールの開発とテストはParallels Desktop Pro Editionで行われました。Parallelsに感謝します。
```Role is used to automate use of "dockutil" – command line tool for managing dock items. You can add, remove and re-arrange Dock items.
ansible-galaxy install wayofdev.dock