This is a repo is meant to assist you in preparing your Macbook Pro M1 for software development purposes.
- Go to Google Calendar
- Click the three dots in the top right corner
- Click
More Tools->Create Shortcut - Provide a name for the shortcut
- Check
Open as window - Click
Create
- Go to the Visual Studio Code site and download the required installer for your OS
- Once VS Code is installed, open the program
- Press
command + shift + pto open the command pallet - Type in
Shell Command: Install 'code' command in PATHand click the option that appears- Installing the
codecommand in PATH allows you to use it in the terminal
- Installing the
This install can take anywhere between 10-60 mins
Move on to this section once the Mac Developer Tools download is finished.
- To see which shell your terminal is running:
$ echo $0
## Output if you are running zsh:
-zsh
## Output if you are running bash:
-bash - Enter the following command into your terminal:
chsh -s /bin/zsh- Enter the following command into your terminal:
chsh -s /bin/zshAntigen is a plugin manager for zsh.
- In your root (~) directory, create a new hidden directory called
.antigen:
cd ~; mkdir .antigen; cd .antigen- Next install
antigen:
curl -L git.io/antigen > antigen.zshNext, we will add some basic configurations that will run every time you open a new terminal window.
- Next we will create and configure our
.zshrcfile:
code ~/.zshrc- Paste in the following code:
source ~/.antigen/antigen.zsh
# Load the oh-my-zsh's library.
antigen use oh-my-zsh
# Bundles from the default repo (robbyrussell's oh-my-zsh).
antigen bundle lukechilds/zsh-nvm
antigen bundle git
antigen bundle heroku
antigen bundle pip
antigen bundle lein
antigen bundle command-not-found
# Syntax highlighting bundle.
antigen bundle zsh-users/zsh-syntax-highlighting
# Load the theme.
antigen theme robbyrussell
# Tell Antigen that you're done.
antigen apply- Restart your terminal, which should kick off a bunch of application installations, and you will see your terminal change a bit.
Note that we loaded a theme called robbyrussell there are many different themes you can test out and install by changing the name provided inline antigen theme <NAME OF THEME> in your .zshrc file. You can find an expansive list of themes here
Now that we have antigen installed and configured, it is straightforward to install Node.js.
- Enter the following command into your terminal:
nvm install --lts- Open your
~./zshrcfile:
code ~./zshrc- Add the following to the top of the
~./zshrcfile:
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm- You can check to see if
nodeinstalled properly by running the following command:
node
## Expected Output:
Welcome to Node.js v16.15.0.
Type ".help" for more information.
>Be mindful that the install command in the section above will install the latest version, which might not be what you want. If, for some reason, you would like to change the version of Node you are running, you can use the following command:
nvm use 0.00.0- Enter the following command:
npm install -g gatsby-cli- Once complete disable Gatsby telemetry:
gatsby telemetry --disable- Enter the following command:
npm install -g @sanity/cli- Generate an SSH Key:
$ ssh-keygen -t -C "[email protected]"
ssh-keygen -t -C "[email protected]"- When prompted, provide a location and name for your SSH Key
# Prompt Message: Enter file in which to save the key (/Users/rogercampbellii/.ssh/id_ed25519):
# Your Input:
/Users/rogercampbellii/.ssh/<NAME OF SSH KEY>
/Users/rogercampbellii/.ssh/personal-mrrogercampbell- When prompted to
Enter passphrasejust hit enter twice - Verify your SSH Key was properly created:
$ ls ~/.ssh
# Expected output:
<NAME OF SSH KEY> <NAME OF SSH KEY>.pub
# Example Output:
personal-mrrogercampbell personal-mrrogercampbell.pub- Start the
ssh-agent:
$ eval "$(ssh-agent -s)"
# Expected Output:
Agent pid 10374- Load your SSH key:
$ ssh-add ~/.ssh/personal-mrrogercampbell- Copy your SSH key:
pbcopy < ~/.ssh/<Name of Your SSH Key>.pub- Go to GitHub
- Click your profile picture on the top right of the page
- Click
Settings - In the
Accesssection on the right clickSSH and GPG keys - Click
New SSH key - Provide a
Title; could be the name of your computer - Paste the Key we copied in step 1
- Click
Add SSH key - Provide your GitHub Password when prompted
- Run the following command:
ssh -T [email protected]- If prompted with this message enter yes:
# Are you sure you want to continue connecting (yes/no/[fingerprint])?
$ yes
# Expected Output
# Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
# Hi <GitHub Username>! You've successfully authenticated, but GitHub does not provide shell access.-
Create a global
.gitignorefile:touch ~/.gitignore -
Add the .DS_Store to
.gitignorefile:# Being sure that this pesky file is never added to a repo. echo ".DS_Store" >> .gitignore
-
Set User Information:
git config --global user.name "GitHub Username"
git config --global user.email "Email Registered With GitHub"- Set Default Configurations:
# Sets VS Code as default editor for merge conflict messages
git config --global core.editor 'code --wait'
# Sets 'main' as default branch name on all locally created repos
git config --global init.defaultBranch main
# Registers your global .gitignore
git config --global core.excludesfile ~/.gitignoreCheck Global Configurations:
git config --list --global- Before moving on with this section, complete the
GitHub SSH Keyssection for each GitHub account you need to work with. - Open your
.zshrcfile
code ~/.zshrc- Create the following alias:
alias sshc="ssh-add -D; ssh-add ~/.ssh/<Name of SSH Key>"
# Alais syntax breakdown
alias <custom-alias-name>=”<command>”You will need to do this for each SSH Key you want to utilize
# Examples:
# This command does four different things:
# 1. ssh-add -D; -> Removes any existing ssh key from the ssh-agent
# 2. ssh-add ~/.ssh/<SSH_KEY_NAME>; -> adds work ssh key to ssh-agent
# 3. git config --global user.name \"<USERNAME>\"; -> Sets git username for commit messages
# 4. git config --global user.email \"<[email protected]>\" -> Sets git email for commit messages
alias sshwork="ssh-add -D; ssh-add ~/.ssh/<SSH_KEY_NAME>; git config --global user.name \"<USERNAME>\"; git config --global user.email \"<[email protected]>\""
# Create one for personal also:
alias sshp="ssh-add -D; ssh-add ~/.ssh/<SSH_KEY_NAME>; git config --global user.name \"<USERNAME>\"; git config --global user.email \"<[email protected]>\""
# This is list all alias loaded in the ssh-agent
alias chkssh="ssh-add -l;"
# Prints all git config global settings
alias gitconfig="git config --list --global"- Rectangle App - Move and resize windows in macOS using keyboard shortcuts or snap areas
- JSONView - Pretty-prints JSON instead of prompting to download it or rendering it as text.
- Code Spell Checker - Spelling checker for source code
- Grammarly - A grammar checking for Visual Studio Code using Grammarly.
- Live Share - Real-time collaborative development from the comfort of your favorite tools.
- Lorem ipsum - Generates and inserts lorem ipsum text
- Markdown All in One - All you need to write Markdown, keyboard shortcuts, table of contents, auto preview and more
- Markdown Preview Enhanced - Markdown Preview Enhanced ported to vscode
- npm - npm support for VS Code created by Microsoft
- Profile Switcher - Allows you to switch between different profiles you have created
- React.js code snippets - Code snippets for React.js development in ES6 syntax
- Settings Sync - Synchronize Settings, Snippets, Themes, File Icons, Launch, Keybindings, Workspaces and Extensions Across Multiple Machines Using GitHub Gist.
- How to configure and use aliases in ZSH - Linux Hint
- Generating a new SSH key and adding it to the ssh-agent - GitHub
- Multiple SSH Keys settings for different github account - didn't work
- How to install Node.js and NPM with MacOS’s new zsh terminal - AJ Keller
- Setting up multiple GitHub accounts, the nicer way - This guy says he has SSH keys being utilized based on repo file location. I have yet to be able to get his solution working.
- SSH Academy - ssh-add program - Usage, ssh-agent, SSH keys
- Global gitignore



