Skip to content

Instantly share code, notes, and snippets.

@wflanagan
Forked from chris-sev/setup.sh
Created January 30, 2024 21:30
Show Gist options
  • Save wflanagan/636aaf0bafc9d56172799aaacfc3efbc to your computer and use it in GitHub Desktop.
Save wflanagan/636aaf0bafc9d56172799aaacfc3efbc to your computer and use it in GitHub Desktop.
Mac Setup
# how to run this thingy
# create a file on your mac called setup.sh
# run it from terminal with: sh setup.sh
# heavily inspired by https://twitter.com/damcclean
# https://github.com/damcclean/dotfiles/blob/master/install.sh
# faster dock hiding/showing (run in terminal)
# defaults write com.apple.dock autohide-delay -float 0; defaults write com.apple.dock autohide-time-modifier -int 0;killall Dock
# add dock spacer
# defaults write com.apple.dock persistent-apps -array-add '{tile-data={}; tile-type="spacer-tile";}' && killall Dock
#!/bin/bash
set -euo pipefail
# Display message 'Setting up your Mac...'
echo "Setting up your Mac..."
sudo -v
# Homebrew - Installation
echo "Installing Homebrew"
if test ! $(which brew); then
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
fi
# Install Homebrew Packages
cd ~
echo "Installing Homebrew packages"
homebrew_packages=(
"git"
"node"
"n"
"php"
"composer"
)
for homebrew_package in "${homebrew_packages[@]}"; do
brew install "$homebrew_package"
done
# make sure composer global packages is in your PATH. example:
# export PATH=~/.composer/vendor/bin:$PATH
# Install Casks
echo "Installing Homebrew cask packages"
homebrew_cask_packages=(
"adobe-creative-cloud"
"cron"
"descript"
"discord"
"github"
"keycastr"
"lastpass"
"notion"
"raycast"
"reflect"
"screenflow"
"setapp"
"slack"
"spotify"
"quitter"
"visual-studio-code"
"warp"
)
# extra apps to install
# arc
# homerow: https://homerow.app
# apps in mac store
# fantastical
# apps in setapp (check your setapps favorites list)
# bartender
# sip (color picker)
# yoink
# cleanshot
# cleanmymac
# session
# swish
# numi
# tableplus
# xsnapper
# install n (https://github.com/tj/n)
# make sure you follow steps here to take control of /usr folders
# configure npm permissions to current user
# http://npm.github.io/installation-setup-docs/installing/a-note-on-permissions.html
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
for homebrew_cask_package in "${homebrew_cask_packages[@]}"; do
brew install --cask "$homebrew_cask_package"
done
# configure git
git config --global user.name "Chris Sev"
git config --global user.email "[email protected]"
gh config set git_protocol "ssh"
# Create projects directory called batcave
echo "Creating a Batcave directory"
mkdir -p $HOME/documents/batcave
# oh-my-zsh
echo "Adding Oh my zsh"
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
git clone https://github.com/agkozak/zsh-z $ZSH_CUSTOM/plugins/zsh-z
# zsh configuration
touch ~/.my-zshrc
# aliases
echo "alias ni='npm i'" >> ~/.my-zshrc
echo "alias ns='npm start'" >> ~/.my-zshrc
echo "alias nb='npm run build'" >> ~/.my-zshrc
echo "alias nd='npm run dev'" >> ~/.my-zshrc
echo "alias artisan='php artisan'" >> ~/.my-zshrc
# zsh plugins
echo "plugins=(git zsh-completions zsh-z)" >> ~/.my-zshrc
echo "source /usr/local/share/zsh-autosuggestions/zsh-autosuggestions.zsh" >> ~/.my-zshrc
echo "source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" >> ~/.my-zshrc
# add our zshrc config to the main zshrc config
echo ". ~/.my-zshrc" >> "$HOME/.zshrc"
# Generate SSH key
echo "Generating SSH keys"
ssh-keygen -t rsa
echo "Copied SSH key to clipboard - You can now add it to Github"
pbcopy < ~/.ssh/id_rsa.pub
# Complete
echo "Installation Complete"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment