Tested on Monterey. Requires python3. Only supports intel macs for now.
Install XCode. (The command line tools are insufficient. python3 seems to be unable to verify ssl certificates without the full app).
- Run
init.sh
. You'll be prompted for your password. - Grant yourself passwordless sudo permission:
sudoers.sh -K -e nopasswd=yes
. You'll be prompted for your password. - Run the bootstrap script:
bootstrap.sh
. - Run the playbook:
setup.sh
.
- Run
init.sh
, which does the following:- Accepts the Xcode license (may prompt for admin password)
- Installs ansible (
pip3 install --user ansible
) - Installs task dependencies in
requirements.txt
(again, withpip3 install --user
). - Installs dependencies in
requirements.yml
usingansible-galaxy
.
- Optionally grant users the ability to use sudo with
sudoers.sh -K
. Seesudoers-playbook.yml
for options. - Run
bootstrap.sh -K
(omit-K
if you're set up with passwordlesssudo
). This runsbootstrap-playbook.yml
, which runs the Xcode first launch tasks (if necessary) and installs MacPorts, along with several ports needed to make setup tasks work properly. You only need to do this once. The playbook is imported insetup-playbook.yml
, so the tasks will run again if necessary. - Sign in to the app store app.
mas
cannot install apps unless you do so, and sign in via the command line no longer works. See mas known issues. - Run
setup.sh -K
(omit-K
if you're set up with passwordlesssudo
). The script passes all arguments on toansible-playbook
. - The following
tags
are defined (which you can pass to the script, e.g.,setup.sh --tags ports
):-
apps: Install applications from the app store using
mas
and from non-app-store disk images (seevars/mas.yml
andvars/dmgs.yml
). You must be signed in to the app store formas
to function properly. -
customize: Customize app and OS settings. You need to log out and log back in to apply many of the changes.
-
dotfiles: Clone my dotfiles and emacs config.
-
emacs: Clone emacs from github, build, and install. Clones my emacs config.
-
fonts: Install fonts (see
vars/fonts.yml
). -
launchd: Load launchd jobs (see
vars/launchd.yml
). -
pip: Install pip packages (see
vars/pip.yml
). -
ports: Install/update a configurable list of ports/variants (see
vars/ports.yml
). -
tex: Install MacTeX.
-
...and more.
In general, more app preferences...
- Accept the agreement.
- Install selected IDEs. The toolbox seems to be missing functionality to do this from the command line. Investigate AppleScript, Automator, etc.
Automatically enable metadata retrieval, so I don't have to click on the popup, or even see the popup.
See https://forum.videolan.org/viewtopic.php?t=126302 and https://community.jamf.com/t5/jamf-pro/suppressing-quot-enable-metadata-retrieval-quot-prompt-in-vlc/m-p/130327
GPG tools on requires some manual setup. Open Mail > Preferences > General, click on "Manage Plug-ins...", and check the box next to the GPGMailLoader plugin.
- Fonts.
- Noto
- ProFont
- STIX
- Source Code Pro, etc.
- fontconfig settings for DejaVu.
- iTerm2 settings.
- More settings via
osx_defaults
. - Secrets.
- SSH public/private keys.
- GPG public/private keys.
- Log in to docker hub, jetbrains, and other accounts.