{"id":13732471,"url":"https://github.com/andrewconnell/osx-install","last_synced_at":"2025-07-29T21:09:54.014Z","repository":{"id":53037847,"uuid":"41265148","full_name":"andrewconnell/osx-install","owner":"andrewconnell","description":"My setup steps, scripts \u0026 settings for configuring my MacOS.","archived":false,"fork":false,"pushed_at":"2025-01-04T12:08:07.000Z","size":20929,"stargazers_count":106,"open_issues_count":2,"forks_count":29,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-29T22:08:09.736Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andrewconnell.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-08-23T20:05:49.000Z","updated_at":"2025-01-28T14:35:59.000Z","dependencies_parsed_at":"2024-04-16T11:48:21.310Z","dependency_job_id":"23dbcb34-31d7-4782-b1ad-7d21b32837bc","html_url":"https://github.com/andrewconnell/osx-install","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewconnell%2Fosx-install","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewconnell%2Fosx-install/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewconnell%2Fosx-install/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andrewconnell%2Fosx-install/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andrewconnell","download_url":"https://codeload.github.com/andrewconnell/osx-install/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247411235,"owners_count":20934653,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T02:01:57.842Z","updated_at":"2025-07-29T21:09:53.995Z","avatar_url":"https://github.com/andrewconnell.png","language":"Shell","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# MacOS Buildout\n\nThis repo acts as a log for my buildout of my laptop. As I add stuff or change settings, I log it here so pave \u0026 restores can go quickly in the future. Feel free to fork \u0026 customize to your liking.\n\nMore background info: [BLOG: Rapid Complete Install / Reinstall OS X Like a Champ in Three-ish Hours](http://www.andrewconnell.com/blog/rapid-complete-install-reinstall-os-x-like-a-champ-in-three-ish-hours)\n\n## Before Paving, document current config\n\nDo the following before paving the partition. This is to get the way I have things configured in the dock \u0026 menu bar back the way I want them.\n\n- Set up timestamped backup folder, **{{PRIVATE_BACKUP}}**, OneDrive to copy things\n- Screenshot all installed apps\n- Screenshot OneDrive sync'd doclib's from MS Teams \u0026 save =\u003e **{{PRIVATE_BACKUP}}**\n- XCOPY the following =\u003e **{{PRIVATE_BACKUP}}**\n  \u003e **NOTE:** many of the hidden files \u0026 folders are copied as \"dot-files\"\n\n  - `~/_play`\n  - `~/.gitconfig`\n  - `~/.gitmessage`\n  - `~/.npmrc`\n  - `~/.ssh`\n  - `~/.yarnrc`\n  - `~/.zsh`\n  - `~/.zprofile`\n  - `~/.zshenv`\n  - `~/.zshrc`\n  - `~/Movies`\n  - `~/voitanos-workspace`\n  - *review other folders in the root*\n- Dev\n  - Dump list of all repos in `~/repos` =\u003e **{{PRIVATE_BACKUP}}/{{BACKUPDATE}}**\n  - Clone all repos (+ upstream remotes) using this script: [scripts/repo-gen-clone-script.zsh](./repo-gen-clone-script.zsh)\n- iStat Menu\n  - backup settings =\u003e **{{PRIVATE_BACKUP}}/iStat Menus Settings.ismp**\n- Node\n  - refresh NPM global package install list: **./scripts/npm-install-packages-lts-*.zsh**\n\n    ```console\n    npm list -g --depth=0\n    ```\n\n- Copy virtual machines =\u003e external storage\n- Postman\n  - export all collections \u0026 environments =\u003e **{{PRIVATE_BACKUP}}/Postman-backup.zip**\n- Screenflow\n  - log batch export settings to **[./AppSettings/Screenflow](./AppSettings/Screenflow)**\n- Stream Deck\n  - export \u0026 save Stream Deck profiles =\u003e **{{PRIVATE_BACKUP}}/Stream Deck - {{..}}.streamDeckProfilesBackup**\n- Visual Studio Code\n  - refresh installed extensions install list: **[./scripts/vscode-ext-install.zsh](./scripts/vscode-ext-install.zsh)**\n\n      ```console\n      code --list-extensions\n      ```\n\n  - backup snippets \u0026 user settings to **{{PRIVATE_BACKUP}}/VisualStudioCode**\n    - user settings: `~/Library/Application Support/Code/User`\n\n### MacOS \u0026 System\n\n- have a current Apple TimeMachine backup job finished\n- screenshots of Finder settings\n\n    ![](images/macOS-Finder-Settings.png)\n\n- screenshot MacOS dock\n\n    ![](images/macOS-Dock.png)\n\n- screenshot expanded Bartender MacOS Menu Bar\n\n    ![](images/macOS-MenuBar.png)\n\n### Installed apps\n\n- get list of all apps installed via Homebrew:\n\n  ```console\n  brew leaves\n  ```\n\n### Adobe Creative Cloud\n\n- Launch each app and sync settings (PUSH) for:\n  - Media Encoder\n  - Photoshop\n  - Premiere Pro\n- Photoshop:\n  - export saved actions: **[./AppSettings/AdobeCreativeCloud/Photoshop](./AppSettings/AdobeCreativeCloud/Photoshop)**\n- Premiere Pro:\n  - export custom presets: **[./AppSettings/AdobeCreativeCloud/PremierePro](./AppSettings/AdobeCreativeCloud/PremierPro)**\n- Jump Desktop\n- export list of VMs =\u003e **{{PRIVATE_BACKUP}}**\n- Mac App Store apps\n- refresh list installed MacOS apps: **[./scripts/macos-install.zsh](./scripts/macos-install.zsh)**\n\n    ```console\n    mas list\n    ```\n\n## Pave partition\n\n1. restart with \u003ckbd\u003e⌘\u003c/kbd\u003e+\u003ckbd\u003eR\u003c/kbd\u003e\n1. go to **Disk Utility**\n1. select the main drive, then select **Erase** \u003e **Erase Volume Group**\n1. create new ADFS volume\n1. install MacOS via internet\n\n## Install apps\n\nThe following installs \u0026 configuration should be done to setup automated installs.\n\n### If installing on Apple Silicon\n\nInstall Rosetta 2\n\n```console\nsudo softwareupdate --install-rosetta\n```\n\n### Homebrew \u0026 Homebrew Cask\n\nInstall [Homebrew](http://brew.sh/) for automated installs \u0026 updates.\n\n```console\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n```\n\n\u003e [!TIP]\n\u003e If get error about `zsh compinit: insecure directories, run compaudit for list.`, first try to run the following to see if it fixes it:\n\u003e\n\u003e ```console\n\u003e chmod go-w '/opt/homebrew/share'\n\u003e chmod -R go-w '/opt/homebrew/share/zsh'\n\u003e ```\n\u003e\n\u003e ... if the issue persists, do what it says:\n\u003e\n\u003e `$ compaudit`\n\u003e\n\u003e For the folder(s) returned, fix it with:\n\u003e\n\u003e `$ sudo chmod -R 755 {PATH}`\n\n### Install fonts\n\n```console\ncurl -L https://raw.githubusercontent.com/andrewconnell/osx-install/master/scripts/core-fonts.zsh | zsh\n```\n\n### Install \u0026 setup console\n\nInstalls ideal shell, prompt, and terminals\n\n\u003e **NOTE**: Monitor the terminal for password prompts \u0026 errors/warnings.\n\n1. run following to install cores\n\n    ```console\n    curl -L https://raw.githubusercontent.com/andrewconnell/osx-install/master/scripts/core-install.zsh | zsh\n    ```\n\n1. copy the **[dotfiles \u0026 folders](./dotfiles/)** (overwriting existing) into home folder\n1. search for any `{{{REPLACE_THIS}}}` and replace with correct values\n1. setup SSH with 1Password for `.gitconfig`\n  - **1Password \u003e Settings \u003e Developer** \u0026 select all options\n\n### Install apps via Homebrew: `homebrew-install-apps.zsh`\n\nInstall apps using Homebrew.\n\n\u003e **NOTE**: Monitor the terminal for password prompts \u0026 errors/warnings.\n\nrun following to install cores\n\n  ```console\n  curl -L https://raw.githubusercontent.com/andrewconnell/osx-install/master/scripts/homebrew-install-apps.zsh | zsh\n  ```\n\nPay attention for extra installs \u0026 steps at the end.\n\n### Setup Warp theme\n\n- Copy Tailwind theme from [`./dotfiles/.warp`](./dotfiles/.warp) \u003e `~/`\n- Launch Warp \u0026 login\n- Settings \u003e Appearance \u003e Theme, select Dark\n- Find and select **Tailwind**\n\n### Install Mac App Store apps: `macos-install.zsh`\n\nInstall apps from the Apple App Store.\n\n```console\ncurl -L https://raw.githubusercontent.com/andrewconnell/osx-install/master/scripts/macos-install.zsh | zsh\n```\n\n### Manual Installs\n\n- Amphetamine Enhancer - https://github.com/x74353/Amphetamine-Enhancer\n- PresentLink - https://presentink.com/\n\n## Configure apps\n\nThree step process:\n\n1. Get OneDrive syncing to get access to backups, settings (in OneDrive), licenses \u0026 passwords in password manager\n1. Login, license, install, \u0026 configure remaining apps\n\n### Configure core apps to acquire backups, licenses \u0026 passwords\n\n- login to the following apps\n  - Google Chrome\n    - *do this first \u0026 login to password manager to get licenses*\n  - OneDrive\n    - *do this to get sync running... contains backup files collected before pave*\n- Visual Studio Code\n  - install extensions collected before pave:\n\n      ```console\n      curl -L https://raw.githubusercontent.com/andrewconnell/osx-install/master/scripts/vscode-ext-install.zsh | zsh\n      ```\n\n  - copy snippets \u0026 settings:\n    - from **[./AppSettings/VisualStudioCode](./AppSettings/VisualStudioCode)**\n    - to `~/Library/Application Support/Code/User`\n  - apply licenses to extensions Quokka \u0026 Wallaby\n\n### Setup SSH\n\n- setup SSH keys\n  - copy backed up `./.ssh` keys from **{{PRIVATE_BACKUP}}** =\u003e `./.ssh`\n  - configure SSH keys\n\n      ```console\n      # set permission to make my keys private\n      sudo chmod 400 ~/.ssh/id_rsa\n\n      # configure 'config' folder permissions\n      sudo chmod 600 ~/.ssh/config\n\n      # add key to SSH agent\n      #     + enter passphrase from password manager when prompted\n      ssh-add ~/.ssh/id_rsa\n\n      # add to keychain\n      ssh-add -K\n      ```\n\n### Configure Installed Apps\n\n- Alfred\n  - Activate power pack within app settings\n  - **Preferences \u003e Advanced**: Syncing - set to **./{{PRIVATE-BACKUP}}/Alfred**\n- Amphetamine\n\n    ![](images/amphetamine-preferences-general.png)\n\n    ![](images/amphetamine-preferences-sessions-nontrigger)\n\n    ![](images/amphetamine-preferences-sessions-allsessions)\n\n    ![](images/amphetamine-preferences-notifications.png)\n\n    ![](images/amphetamine-preferences-appearance.png)\n\n- iStat Settings\n  - license \u0026 restore settings: [./AppSettings/iStat Menus Settings.ismp](./AppSettings/iStat%20Menus%20Settings.ismp)\n- Bartender\n  - License \u0026 configure:\n\n      ![](./images/macOS-MenuBar.png)\n\n- Control Center\n  - Open \u0026 configure to launch at login\n- Divvy\n  - import shortcuts by opening Safari / Firefox \u0026 enter the url in [./AppSettings/divvy.md](./AppSettings/divvy.md)\n\n    ![](./images/divvy.png)\n\n- Jump Desktop\n  - import the machines from export before pave\n- Microsoft Outlook\n\n    ![](images/outlook-general.png)\n\n    ![](images/outlook-notifications.png)\n\n    ![](images/outlook-fonts.png)\n\n    ![](images/outlook-reading.png)\n\n    ![](images/outlook-composing-html.png)\n\n    ![](images/outlook-composing-plaintext.png)\n\n    ![](images/outlook-calendar.png)\n\n  - Signature\n    - get signatures from previous \"sends\"\n\n- Microsoft Teams\n- Parcel\n- Screenflow\n  - license\n  - create custom batch export profile\n- Slack\n- Steam\n  - Launch \u0026 login\n  - Disable auto login: **Preferences \u003e Interface \u003e [uncheck] Run Steam with my computer starts**\n- Stream Deck\n  - restore profiles\n  - install plugins from Stream Deck store:\n    - Home Assistant\n    - Phillips Hue\n    - VLC\n\n## Additional downloads \u0026 installs: `scripted-installs.zsh`\n\n```console\ncurl -L https://raw.githubusercontent.com/andrewconnell/osx-install/master/scripts/scripted-installs.zsh | zsh\n```\n\n### Install custom fonts\n\n- Open `~/Library/Fonts`\n- For the following folders, select all fonts files, open in macOS' **Font Book**, \u0026 install them:\n  - AC Handwriting\n  - Omnes\n  - Segoe UI MDL2\n\n### Creative Cloud installs\n\n- Install apps:\n  - Acrobat DC\n  - After Effects\n  - Audition\n  - Bridge\n  - Illustrator\n  - Media Encoder\n  - Photoshop\n  - Premiere Pro\n- Import settings from the pre-pave section above on [Adobe CC apps](#adobe-creative-cloud)\n- Manually install **[aescripts + aeplugins](https://aescripts.com/)** manager, login \u0026 install plugins\n\n## Install Node\n\nManage node installs using NVM... this lets me test different versions of node as well as avoid issue with having to use `sudo` when installing packages globally.\n\n```console\nmkdir ~/.nvm\n```\n\n### Install \u0026 configure Node LTS \u0026 stable versions\n\n\u003e [!CAUTION]\n\u003e The following script doesn't work. Something is causing `nvm` to not be seen as a valid comment.\n\u003e\n\u003e Instead, copy the blocks of code from the following installer script file and manually run in the console.\n\nThis script installs multiple Node versions:\n\n```console\ncurl -L https://raw.githubusercontent.com/andrewconnell/osx-install/master/scripts/node-install.zsh | zsh\n```\n\n## Post installation \u0026 configuration checks\n\n### Update Homebrew, Homebrew Cask \u0026 purge installs\n\n```console\nbrew doctor\nbrew update\nbrew cleanup\n```\n\n### Setup git\n\n\u003e NOTE: This might already be done by copying the hidden **~./.gitconfig**.\n\n```console\ngit config --global user.name \"Andrew Connell\"\ngit config --global user.email \u003cinsert primary email\u003e\ngit config --global credential.helper osxkeychain\n# set VSCode as commit message editor \u0026 merge tool\ngit config --global core.editor \"code -w\"\ngit config --global merge.tool code\n```\n\n### MacOS Tweaks\n\n- Desktop (*change these settings by right-click desktop \u0026 pick **Show View Options***)\n\n    ![](./images/macOS-Settings-01.png)\n\n- System Preferences\n  - Accessibility\n\n      ![](./images/macOS-SysPrefs-Accessibility-Zoom.png)\n\n  - Dock\n    - settings: **System Preferences \u003e Dock**\n\n        ![](./images/macOS-SysPrefs-Dock.png)\n\n    - update dock to the backup image\n\n        ![](./images/macOS-Dock.png)\n\n  - General\n\n      ![](./images/macOS-SysPrefs-General.png)\n\n  - Keyboard\n\n      ![](./images/macOS-SysPrefs-Keyboard.png)\n\n    - Shortcuts - uncheck options for Spotlight, then manually setup activation keystroke for Alfred to \u003ckbd\u003eCMD\u003c/kbd\u003e+\u003ckbd\u003eSPACE\u003c/kbd\u003e\n\n        ![](./images/macOS-SysPrefs-Keyboard-02.png)\n\n  - Mission Control\n\n      ![](./images/macOS-SysPrefs-MissionControll.png)\n\n  - Internet Accounts\n\n      ![](./images/macOS-SysPrefs-InternetAccounts.png)\n\n  - Printers\n    - install / add printers\n  - Security \u003e Privacy\n    - Activate \u0026 enable where necessary\n  - Users \u0026 Groups / Login Items\n\n      ![](./images/MSTeams-OneDrive-UsersGroupsLogins.png)\n\n### Data Restore\n\n- Clone select repositories from github =\u003e `~/repos`\n\n### Setup TimeMachine Backups\n\nRun first backups.\n\n## Ongoing... HOWTO Keep Things Updated\n\nto keep Homebrew installed things update, do this:\n\n  ```console\n  brew update           # download app updated formulas\n  brew outdated         # what's old?\n  brew upgrade          # upgrade everything locally\n  # list all brew casks installed \u0026 their versions\n  brew cask outdated\n  brew cask upgrade\n  # cleanup everything\n  brew cleanup\n  ```\n\nupdate MacOS apps:\n\n  ```console\n  mas outdated    # what's old\n  mas upgrade     # upgrade everything\n  ```\n\nupdate MacOS: [ref](https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man8/softwareupdate.8.html)\n\n  ```console\n  softwareupdate --list\n  # install things based on the name returned using\n  sudo softwareupdate --install [name listed]\n  ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewconnell%2Fosx-install","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandrewconnell%2Fosx-install","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandrewconnell%2Fosx-install/lists"}