From d83a47e835683969c2f59d279ede547e79dfa2d4 Mon Sep 17 00:00:00 2001 From: DoodlingDev Date: Mon, 2 Aug 2021 19:41:49 -0500 Subject: [PATCH 01/10] add macos config settings --- design_setup.sh | 4 +- macos_settings.sh | 126 ++++++++++++++++++++++++++++++++++++++++++++++ setup_script.sh | 16 ++++++ 3 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 macos_settings.sh diff --git a/design_setup.sh b/design_setup.sh index af447d7..6a97bb8 100644 --- a/design_setup.sh +++ b/design_setup.sh @@ -1,3 +1,5 @@ #!/bin/sh -brew install adobe-creative-cloud --cask \ No newline at end of file +brew bundle --file=- <<-EOS +cask "adobe-creative-cloud" +EOS \ No newline at end of file diff --git a/macos_settings.sh b/macos_settings.sh new file mode 100644 index 0000000..002205d --- /dev/null +++ b/macos_settings.sh @@ -0,0 +1,126 @@ +#!/bin/sh + +clear_and_header() { + clear + echo "" + echo "=============== macOS config wizard ================" + echo "( please choose each setting with either 'y' or 'n')" + echo "" +} + +# arguments: prompt, command +prompt_and_read() { + if [ "$ACCEPT_ALL" = "true" ]; then + eval "$2" + else + clear_and_header + echo "" + echo $1 + read macos + if [ "$macos" = "y" ]; then + eval "$2" + fi + fi +} + +echo "Please enter your admin password to update preferences" +sudo -v + +# Close any open System Preferences panes, to prevent them from overriding +# settings we’re about to change +osascript -e 'tell application "System Preferences" to quit' + +clear_and_header +echo "Accept all suggested options?" +read macos +if [ "$macos" = "y" ]; then + ACCEPT_ALL="true" +fi + +prompt_and_read "Hide all desktop icons?" \ + "defaults write com.apple.finder CreateDesktop false" + +prompt_and_read "Prevent photos from opening automatically when devices are plugged in?" \ + "defaults -currentHost write com.apple.ImageCapture disableHotPlug -bool true" + +prompt_and_read "Disable sound effects on boot?" \ + "sudo nvram SystemAudioVolume=\" \"" + +prompt_and_read "Disable autocorrect when typing?" \ + "defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false" + +prompt_and_read "Disable automatic capitalization?" \ + "defaults write NSGlobalDomain NSAutomaticCapitalizationEnabled -bool false" + +prompt_and_read "Disable automatic smart dashes?" \ + "defaults write NSGlobalDomain NSAutomaticDashSubstitutionEnabled -bool false" + +prompt_and_read "Disable automatic smart quotes?" \ + "defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false" + +prompt_and_read "Disable the 'are you sure you want to open this application?' dialog?" \ + "defaults write com.apple.LaunchServices LSQuarantine -bool false" + +prompt_and_read "Show hidden files in finder?" \ + "defaults write com.apple.finder AppleShowAllFiles -bool true" + +prompt_and_read "Show file extensions in finder?" \ + "defaults write NSGlobalDomain AppleShowAllExtensions -bool true" + +prompt_and_read "Disable shadows in screenshots?" \ + "defaults write com.apple.screencapture disable-shadow -bool true" + +prompt_and_read "Enable subpixel font rendering on non-Apple displays?" \ + "defaults write NSGlobalDomain AppleFontSmoothing -int 2" + +prompt_and_read "Avoid creating .DS_Store files on network or USB volumes?" \ + "defaults write com.apple.desktopservices DSDontWriteNetworkStores -bool true && defaults write com.apple.desktopservices DSDontWriteUSBStores -bool true" + +prompt_and_read "Automatically hide and show the Dock?" \ + "defaults write com.apple.dock autohide -bool true" + +prompt_and_read "Keep folders on top while sorting by name in finder?" \ + "defaults write com.apple.finder _FXSortFoldersFirst -bool true" + +prompt_and_read "Have the dock show only active applications?" \ + "defaults write com.apple.dock static-only -bool true; killall Dock" + +prompt_and_read "Visualize CPU usage in the Activity Monitor Dock icon" \ + "defaults write com.apple.ActivityMonitor IconType -int 5" + +prompt_and_read "Activity Monitor show all processes?" \ + "defaults write com.apple.ActivityMonitor ShowCategory -int 0" + +prompt_and_read "Save to disk (not iCloud) by default?" \ + "defaults write NSGlobalDomain NSDocumentSaveNewDocumentsToCloud -bool false" + +prompt_and_read "Expand save panel by default?" \ + "defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode -bool true && defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode2 -bool true" + +prompt_and_read "Sort activity monitor results by CPU usage?" \ + "defaults write com.apple.ActivityMonitor SortColumn -string \"CPUUsage\" && defaults write com.apple.ActivityMonitor SortDirection -int 0" + +prompt_and_read "Add Rectangle as login item?" \ + "osascript -e 'tell application \"System Events\" to make login item at end with properties {name: \"Rectangle\",path:\"/Applications/Rectangle.app\", hidden:false}'" + +prompt_and_read "Add Alfred as login item?" \ + "osascript -e 'tell application \"System Events\" to make login item at end with properties {name: \"Alfred 4\",path:\"/Applications/Alfred 4.app\", hidden:false}'" + +prompt_and_read "Disable the warning when changing a file extension?" \ + "defaults write com.apple.finder FXEnableExtensionChangeWarning -bool false" + +prompt_and_read "Show the ~/Library folder by default?" \ + "chflags nohidden ~/Library" + +prompt_and_read "Disable Resume system wide?" \ + "defaults write com.apple.systempreferences NSQuitAlwaysKeepsWindows -bool false" + +prompt_and_read "Save screenshots to their own folder on the Desktop?" \ + "mkdir $HOME/Desktop/screenshots && defaults write com.apple.screencapture location -string \"${HOME}/Desktop/screenshots\"" + +prompt_and_read "In Finder, search the current directory by default?" \ + "defaults write com.apple.finder FXDefaultSearchScope -string \"SCcf\"" + +for app in "Calendar" "Contacts" "Dock" "Finder" "SystemUIServer"; do + killall "$app" &> /dev/null +done diff --git a/setup_script.sh b/setup_script.sh index bc073ce..220e7f4 100644 --- a/setup_script.sh +++ b/setup_script.sh @@ -82,6 +82,22 @@ elif [ "$dev" = "y" ]; then . ./dev_setup.sh fi +############################# +# Useful macOS settings # +############################# +# Some settings and configuration of macOS are not accessible +# through the UI. Included here are some useful settings that +# can be opted into. + +fancy_echo "Would you like to set up some macOS configuration? y / n" +read macos + +if [ "$macos" = "y" ] && [ "$IS_CLONED" = "true" ]; then + . $HOME/tandem_setup_script/macos_settings.sh +elif [ "$macos" = "y" ]; then + . ./macos_settings.sh +fi + # clean up after yourself! if [ "$IS_CLONED" = "true" ]; then rm -rf $HOME/tandem_setup_script From 011c62f75beb0fbd2f1d2ef86f5573848c47ffa2 Mon Sep 17 00:00:00 2001 From: DoodlingDev Date: Tue, 3 Aug 2021 08:59:27 -0500 Subject: [PATCH 02/10] adds macos description to README --- README.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8206aba..f35b2aa 100644 --- a/README.md +++ b/README.md @@ -97,4 +97,11 @@ script! ### macOS settings configuration -something about settings \ No newline at end of file +Many macOS settings are not available through the UI, and many of the default +settings aren't chosen with professionals in mind. The script will interactively +take you through a series of questions related to these more esoteric macOS +settings (like always showing a file extension in Finder). + +There is an option to say `yes` once and not get the settings interactively, but +we would advise you read through `macos_settings.sh` to understand what you're +getting yourself into before choosing that option. \ No newline at end of file From 5be01819835c9d509622ad1707067e4807ff895e Mon Sep 17 00:00:00 2001 From: Robert Aird Date: Thu, 5 Aug 2021 12:29:11 -0500 Subject: [PATCH 03/10] remove excess/deprecated dependencies --- dev_setup.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/dev_setup.sh b/dev_setup.sh index 6a51e1e..5041f9c 100644 --- a/dev_setup.sh +++ b/dev_setup.sh @@ -31,5 +31,6 @@ else rvm install 3.0.0 fi -fancy_echo "Installing common npm packages" -npm install -g yarn create-react-app prettier javascript-typescript-langserver babel eslint \ No newline at end of file + +fancy_echo "Installing yarn" +npm install -g yarn \ No newline at end of file From 397fd5d5a14a8e95f93612745694b75ff046513d Mon Sep 17 00:00:00 2001 From: Robert Aird Date: Thu, 5 Aug 2021 12:51:24 -0500 Subject: [PATCH 04/10] update README --- README.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/README.md b/README.md index f35b2aa..286d0fe 100644 --- a/README.md +++ b/README.md @@ -89,11 +89,6 @@ script! * install latest long term support version of node * npm packages: * yarn - * create-react-app - * prettier - * javascript-typescript-langserver - * babel - * eslint ### macOS settings configuration From a9a5795dc198628f8df297ed59fab027bfe60b40 Mon Sep 17 00:00:00 2001 From: Robert Aird Date: Fri, 6 Aug 2021 13:14:42 -0500 Subject: [PATCH 05/10] fix up initial dev setup --- dev_setup.sh | 21 +++++++++++---------- setup_script.sh | 2 +- 2 files changed, 12 insertions(+), 11 deletions(-) mode change 100644 => 100755 dev_setup.sh mode change 100644 => 100755 setup_script.sh diff --git a/dev_setup.sh b/dev_setup.sh old mode 100644 new mode 100755 index 5041f9c..a7c4a78 --- a/dev_setup.sh +++ b/dev_setup.sh @@ -4,15 +4,6 @@ brew bundle -if [ ! -d $HOME/.nvm ]; then - fancy_echo "NVM not found, installing" - curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash -else - fancy_echo "NVM found, continuing" -fi - -nvim install latest - if [ ! -d $HOME/.rvm ]; then fancy_echo "RVM not found, installing" \curl -sSL https://get.rvm.io | bash -s stable @@ -31,6 +22,16 @@ else rvm install 3.0.0 fi +# installing rvm will create shell profiles if they do not exist +if [ ! -d $HOME/.nvm ]; then + fancy_echo "NVM not found, installing" + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | zsh + source ~/.zshrc +else + fancy_echo "NVM found, continuing" +fi + +nvm install --lts fancy_echo "Installing yarn" -npm install -g yarn \ No newline at end of file +npm install -g yarn diff --git a/setup_script.sh b/setup_script.sh old mode 100644 new mode 100755 index 220e7f4..5c525b9 --- a/setup_script.sh +++ b/setup_script.sh @@ -40,7 +40,7 @@ fi # if [ ! -f /usr/local/bin/brew ]; then fancy_echo "Homebrew not found.. installing Homebrew" - /bin/zsh -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" + /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" else fancy_echo "Homebrew detected" fancy_echo "Updating brew" From 3e9abd88c858a513de69a5d2c145a97ddec1d545 Mon Sep 17 00:00:00 2001 From: Robert Aird Date: Fri, 6 Aug 2021 13:17:25 -0500 Subject: [PATCH 06/10] make sh files executable --- design_setup.sh | 0 macos_settings.sh | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 design_setup.sh mode change 100644 => 100755 macos_settings.sh diff --git a/design_setup.sh b/design_setup.sh old mode 100644 new mode 100755 diff --git a/macos_settings.sh b/macos_settings.sh old mode 100644 new mode 100755 From 8ff506af41dc24ab67d8e84a68cdcf5289366914 Mon Sep 17 00:00:00 2001 From: participator Date: Mon, 20 Sep 2021 21:14:27 -0700 Subject: [PATCH 07/10] Indiviually install common app - Check if app is install before installing - Install app one at a time --- setup_script.sh | 56 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/setup_script.sh b/setup_script.sh index 5c525b9..beb5804 100755 --- a/setup_script.sh +++ b/setup_script.sh @@ -47,7 +47,61 @@ else brew update fi -brew install google-chrome slack rectangle 1password spotify figma alfred --cask +if [ ! -d /Applications/"Google Chrome.app" ]; then + fancy_echo "Google Chrome not found.. installing Google Chrome" + brew install --cask google-chrome +else + fancy_echo "Google Chrome detected" + fancy_echo "Skipping Google Chrome..." +fi + +if [ ! -d /Applications/Slack.app ]; then + fancy_echo "Slack not found.. installing Slack" + brew install --cask slack +else + fancy_echo "Slack detected" + fancy_echo "Skipping Slack..." +fi + +if [ ! -d /Applications/Rectangle.app ]; then + fancy_echo "Rectangle not found.. installing Rectangle" + brew install --cask rectangle +else + fancy_echo "Rectangle detected" + fancy_echo "Skipping Rectangle..." +fi + +if [ ! -d /Applications/'1Password 7.app' ]; then + fancy_echo "1password not found.. installing 1password" + brew install --cask 1password +else + fancy_echo "1password detected" + fancy_echo "Skipping 1password..." +fi + +if [ ! -d /Applications/'Spotify.app' ]; then + fancy_echo "Spotify not found.. installing Spotify" + brew install --cask spotify +else + fancy_echo "Spotify detected" + fancy_echo "Skipping Spotify..." +fi + +if [ ! -d /Applications/'Figma.app' ]; then + fancy_echo "Figma not found.. installing Figma" + brew install --cask figma +else + fancy_echo "Figma detected" + fancy_echo "Skipping Figma..." +fi + +if [ ! -d /Applications/'Alfred 4.app' ]; then + fancy_echo "Alfred not found.. installing Alfred" + brew install --cask alfred +else + fancy_echo "Alfred detected" + fancy_echo "Skipping Alfred..." +fi if [ ! -f ./setup_script.sh ]; then git clone https://github.com/madeintandem/SetupScript.git $HOME/tandem_setup_script From 0b2d96881486309f6b6710d6e60b6e1b8cc5c52f Mon Sep 17 00:00:00 2001 From: participator Date: Tue, 21 Sep 2021 11:33:39 -0700 Subject: [PATCH 08/10] Revert "Indiviually install common app" This reverts commit 8ff506af41dc24ab67d8e84a68cdcf5289366914. --- setup_script.sh | 56 +------------------------------------------------ 1 file changed, 1 insertion(+), 55 deletions(-) diff --git a/setup_script.sh b/setup_script.sh index beb5804..5c525b9 100755 --- a/setup_script.sh +++ b/setup_script.sh @@ -47,61 +47,7 @@ else brew update fi -if [ ! -d /Applications/"Google Chrome.app" ]; then - fancy_echo "Google Chrome not found.. installing Google Chrome" - brew install --cask google-chrome -else - fancy_echo "Google Chrome detected" - fancy_echo "Skipping Google Chrome..." -fi - -if [ ! -d /Applications/Slack.app ]; then - fancy_echo "Slack not found.. installing Slack" - brew install --cask slack -else - fancy_echo "Slack detected" - fancy_echo "Skipping Slack..." -fi - -if [ ! -d /Applications/Rectangle.app ]; then - fancy_echo "Rectangle not found.. installing Rectangle" - brew install --cask rectangle -else - fancy_echo "Rectangle detected" - fancy_echo "Skipping Rectangle..." -fi - -if [ ! -d /Applications/'1Password 7.app' ]; then - fancy_echo "1password not found.. installing 1password" - brew install --cask 1password -else - fancy_echo "1password detected" - fancy_echo "Skipping 1password..." -fi - -if [ ! -d /Applications/'Spotify.app' ]; then - fancy_echo "Spotify not found.. installing Spotify" - brew install --cask spotify -else - fancy_echo "Spotify detected" - fancy_echo "Skipping Spotify..." -fi - -if [ ! -d /Applications/'Figma.app' ]; then - fancy_echo "Figma not found.. installing Figma" - brew install --cask figma -else - fancy_echo "Figma detected" - fancy_echo "Skipping Figma..." -fi - -if [ ! -d /Applications/'Alfred 4.app' ]; then - fancy_echo "Alfred not found.. installing Alfred" - brew install --cask alfred -else - fancy_echo "Alfred detected" - fancy_echo "Skipping Alfred..." -fi +brew install google-chrome slack rectangle 1password spotify figma alfred --cask if [ ! -f ./setup_script.sh ]; then git clone https://github.com/madeintandem/SetupScript.git $HOME/tandem_setup_script From 7acb793afb0b15f59db126b5f30c343a2e390c0d Mon Sep 17 00:00:00 2001 From: participator Date: Mon, 20 Sep 2021 21:14:27 -0700 Subject: [PATCH 09/10] Indiviually install common app - Check if app is install before installing - Install app one at a time --- setup_script.sh | 56 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/setup_script.sh b/setup_script.sh index 5c525b9..beb5804 100755 --- a/setup_script.sh +++ b/setup_script.sh @@ -47,7 +47,61 @@ else brew update fi -brew install google-chrome slack rectangle 1password spotify figma alfred --cask +if [ ! -d /Applications/"Google Chrome.app" ]; then + fancy_echo "Google Chrome not found.. installing Google Chrome" + brew install --cask google-chrome +else + fancy_echo "Google Chrome detected" + fancy_echo "Skipping Google Chrome..." +fi + +if [ ! -d /Applications/Slack.app ]; then + fancy_echo "Slack not found.. installing Slack" + brew install --cask slack +else + fancy_echo "Slack detected" + fancy_echo "Skipping Slack..." +fi + +if [ ! -d /Applications/Rectangle.app ]; then + fancy_echo "Rectangle not found.. installing Rectangle" + brew install --cask rectangle +else + fancy_echo "Rectangle detected" + fancy_echo "Skipping Rectangle..." +fi + +if [ ! -d /Applications/'1Password 7.app' ]; then + fancy_echo "1password not found.. installing 1password" + brew install --cask 1password +else + fancy_echo "1password detected" + fancy_echo "Skipping 1password..." +fi + +if [ ! -d /Applications/'Spotify.app' ]; then + fancy_echo "Spotify not found.. installing Spotify" + brew install --cask spotify +else + fancy_echo "Spotify detected" + fancy_echo "Skipping Spotify..." +fi + +if [ ! -d /Applications/'Figma.app' ]; then + fancy_echo "Figma not found.. installing Figma" + brew install --cask figma +else + fancy_echo "Figma detected" + fancy_echo "Skipping Figma..." +fi + +if [ ! -d /Applications/'Alfred 4.app' ]; then + fancy_echo "Alfred not found.. installing Alfred" + brew install --cask alfred +else + fancy_echo "Alfred detected" + fancy_echo "Skipping Alfred..." +fi if [ ! -f ./setup_script.sh ]; then git clone https://github.com/madeintandem/SetupScript.git $HOME/tandem_setup_script From 5c621422d49414a4346785d6169136311429a53e Mon Sep 17 00:00:00 2001 From: SteveSchneider Date: Thu, 14 Sep 2023 10:42:07 -0400 Subject: [PATCH 10/10] Compatibility updates (#6) * Add compatibility for Apple silicon machines Detect the processor architecture and set the expected location of Homebrew accordingly. Use recommended method to add `brew` to path when it is installed outside of `/usr/local/bin/` by default. Add `brew -v` command after install and update commands. * Skip `brew install` tasks when Homebrew can't be installed or detected properly * Detect Chrome Spotify PWA Don't double-install Spotify if the PWA is already downloaded --- setup_script.sh | 136 +++++++++++++++++++++++++++++------------------- 1 file changed, 82 insertions(+), 54 deletions(-) diff --git a/setup_script.sh b/setup_script.sh index beb5804..60675db 100755 --- a/setup_script.sh +++ b/setup_script.sh @@ -38,69 +38,97 @@ fi # Why do we install it for everyone? # It's the program that much more of this script relies on # -if [ ! -f /usr/local/bin/brew ]; then +# set expected Homebrew install dir by processor architecture +case $(arch) in + 'arm64') + BREW_DIR=/opt/homebrew/bin + ;; + 'x86_64') + BREW_DIR=/usr/local/bin + ;; + *) + unset BREW_DIR + ;; +esac + +if ! [[ -z "$BREW_DIR" ]] && ! [[ -f $BREW_DIR/brew ]]; then fancy_echo "Homebrew not found.. installing Homebrew" /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -else + if [[ $BREW_DIR == /opt/homebrew/bin ]]; then + echo '# Set PATH, MANPATH, etc., for Homebrew.' >> ~/.zprofile + echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile + eval "$(/opt/homebrew/bin/brew shellenv)" + fancy_echo "brew added to PATH" + fi + brew -v +elif ! [[ -z "$BREW_DIR" ]] && [[ $(which brew) == $BREW_DIR/brew ]]; then fancy_echo "Homebrew detected" fancy_echo "Updating brew" brew update -fi - -if [ ! -d /Applications/"Google Chrome.app" ]; then - fancy_echo "Google Chrome not found.. installing Google Chrome" - brew install --cask google-chrome -else - fancy_echo "Google Chrome detected" - fancy_echo "Skipping Google Chrome..." -fi - -if [ ! -d /Applications/Slack.app ]; then - fancy_echo "Slack not found.. installing Slack" - brew install --cask slack -else - fancy_echo "Slack detected" - fancy_echo "Skipping Slack..." -fi - -if [ ! -d /Applications/Rectangle.app ]; then - fancy_echo "Rectangle not found.. installing Rectangle" - brew install --cask rectangle -else - fancy_echo "Rectangle detected" - fancy_echo "Skipping Rectangle..." -fi - -if [ ! -d /Applications/'1Password 7.app' ]; then - fancy_echo "1password not found.. installing 1password" - brew install --cask 1password -else - fancy_echo "1password detected" - fancy_echo "Skipping 1password..." -fi - -if [ ! -d /Applications/'Spotify.app' ]; then - fancy_echo "Spotify not found.. installing Spotify" - brew install --cask spotify -else - fancy_echo "Spotify detected" - fancy_echo "Skipping Spotify..." -fi - -if [ ! -d /Applications/'Figma.app' ]; then - fancy_echo "Figma not found.. installing Figma" - brew install --cask figma + brew -v else - fancy_echo "Figma detected" - fancy_echo "Skipping Figma..." + unset BREW_DIR + fancy_echo "No action taken for Homebrew; path did not match CPU architecture" fi -if [ ! -d /Applications/'Alfred 4.app' ]; then - fancy_echo "Alfred not found.. installing Alfred" - brew install --cask alfred +if [[ -z "$BREW_DIR" ]]; then + fancy_echo "Skipping all Homebrew managed applications..." else - fancy_echo "Alfred detected" - fancy_echo "Skipping Alfred..." + if [ ! -d /Applications/"Google Chrome.app" ]; then + fancy_echo "Google Chrome not found.. installing Google Chrome" + brew install --cask google-chrome + else + fancy_echo "Google Chrome detected" + fancy_echo "Skipping Google Chrome..." + fi + + if [ ! -d /Applications/Slack.app ]; then + fancy_echo "Slack not found.. installing Slack" + brew install --cask slack + else + fancy_echo "Slack detected" + fancy_echo "Skipping Slack..." + fi + + if [ ! -d /Applications/Rectangle.app ]; then + fancy_echo "Rectangle not found.. installing Rectangle" + brew install --cask rectangle + else + fancy_echo "Rectangle detected" + fancy_echo "Skipping Rectangle..." + fi + + if [ ! -d /Applications/'1Password 7.app' ]; then + fancy_echo "1password not found.. installing 1password" + brew install --cask 1password + else + fancy_echo "1password detected" + fancy_echo "Skipping 1password..." + fi + + if [[ -d /Applications/'Spotify.app' ]] || [[ -d "$HOME/Applications/Chrome Apps.localized/Spotify.app" ]]; then + fancy_echo "Spotify detected" + fancy_echo "Skipping Spotify..." + else + fancy_echo "Spotify not found.. installing Spotify" + brew install --cask spotify + fi + + if [ ! -d /Applications/'Figma.app' ]; then + fancy_echo "Figma not found.. installing Figma" + brew install --cask figma + else + fancy_echo "Figma detected" + fancy_echo "Skipping Figma..." + fi + + if [ ! -d /Applications/'Alfred 4.app' ]; then + fancy_echo "Alfred not found.. installing Alfred" + brew install --cask alfred + else + fancy_echo "Alfred detected" + fancy_echo "Skipping Alfred..." + fi fi if [ ! -f ./setup_script.sh ]; then