Configuration Overview¶
The playbooks comes with a set of default configuration values that you can customize to suit your specific environment. These defaults are defined in the default.<target-os>.config.yml file, and you can override them by creating a <target-os>.config.yml file in your project and specifying your custom values.
Defaults¶
Below is a list of the key default variables available in default.macos.config.yml and what they control. You can override any of these by creating your own configuration file.
Homebrew Configuration¶
-  homebrew_prefix: The base path for Homebrew installation, determined by system architecture.Default "/opt/homebrew"(for ARM) or"/usr/local"(for x86)
-  homebrew_install_path: Full path where Homebrew is installed.
-  homebrew_brew_bin_path: Location of Homebrew's binary files (bin).
-  homebrew_brew_sbin_path: Location of Homebrew's superuser binary files (sbin).
-  homebrew_taps: List of additional Homebrew taps to add (repositories for formulas and casks).
-  homebrew_installed_packages: List of packages to install via Homebrew.
-  homebrew_cask_appdir: Directory where cask applications will be installed.
-  homebrew_cask_apps: List of GUI applications to install via Homebrew Cask.Default 
-  configure_homebrew_bin_rc_path: Adds Homebrew binary (bin) path to the shell configuration.
-  configure_homebrew_sbin_rc_path: Adds Homebrew superuser binary (sbin) path to the shell configuration.
Mac App Store (MAS) Configuration¶
-  mas_email: Email used to authenticate with the Mac App Store for installing apps.Required You should add your mas email in order to use this feature. 
-  mas_installed_apps: List of applications to install from the Mac App Store, defined by their app IDs.
Dock Configuration¶
-  configure_dock: Enables or disables dock configuration tasks.
-  dockutil_install: Iftrue, installsdockutil, a command-line utility for configuring the macOS Dock.
-  dockitems_remove: List of applications to remove from the Dock.
-  dockitems_persist: Applications to add or pin to the Dock, with specific positions.
pyenv Configuration¶
-  pyenv_configure_rc_path: Iftrue, configurespyenvto be added to shell initialization files (like.zshrc).
pipx Configuration¶
-  pipx_installed_packages: List of Python applications to install viapipx. Supports injecting additional packages into some applications.
-  configure_pipx_bin_rc_path: Adds thepipxinstallation path to the shell configuration.
Overriding Defaults¶
You can override the defaults configured in default.<target-os>.config.yml by creating a <target-os>.config.yml file and setting the overrides in that file. e.g.:
Example macos.config.yml
Below is an example of a custom configuration file for macOS. In this case, we're configuring the Mac App Store email, overriding the list of Homebrew-installed packages, and specifying custom versions of Python via pyenv:
---
mas_email: "example@example.com"
homebrew_installed_packages:
  - git
  - openssl
  - readline
  - xz
  - sqlite
  - gcc
  - cmake
  - zlib
  - tcl-tk
  - dockutil
  - pipx
  - luarocks
  - neovim
  - tmux
  - chezmoi
  - "jesseduffield/lazydocker/lazydocker"
  - sshpass
  - htop
  - dust
  - duf
  - bat
  - fish
  - starship
  - btop
  - awscli
  - tfenv
  - ffmpeg
homebrew_cask_apps:
  - firefox
  - google-chrome
  - docker
  - openvpn-connect
  - font-terminess-ttf-nerd-font
  - font-ubuntu-nerd-font
  - font-ubuntu-mono-nerd-font
  - font-xkcd
  - font-xkcd-script
  - visual-studio-code
  - zoom
  - tad
  - keybase
  - obsidian
  - google-cloud-sdk
  - ultimaker-cura
  - elgato-stream-deck
  - spotify
  - alacritty
  - discord
  - inkscape
pyenv_python_versions:
  - 3.10.16
  - 3.11.11
  - 3.12.8
  - 3.13.1
Advanced Role Configuration
For detailed configurations specific to each role, check the sections on Third-party Roles and First-party Roles.
By customizing these configurations, you can fine-tune the behavior of the playbook and optimize it for your specific setup.