Skip to content

zachreborn/macos_setup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

macos_setup

This respository is for setting up a new Macbook with various settings I've grown to like.

List of applications

  • AWS CLI
  • bitwarden-cli
  • Bitwarden (desktop app)
  • Discord
  • Dropbox
  • Google Chrome
  • fd
  • fish
  • lsd
  • Oh-My-Posh
  • warp
  • Homebrew
  • VS Code
    • Alignment
    • Docker
    • Git Graph
    • GitLense
    • GitHub Pull Request and Issues
    • GitHub Copilot
    • HashiCorp Terraform
  • GitHub Desktop
  • GitHub CLI
  • pyenv
  • pipenv
  • python
  • terraform
  • terraform-docs
  • Magnet
  • Nerd Fonts
  • ykman
  • gpg
  • pinentry-mac
  • obsidian
  • docker cli
  • docker desktop
  • glances
  • ripgrep
  • Soundsource

Automated Installation

The easiest way to set up your macOS environment is with the automated bootstrap script:

# Clone this repository and run the bootstrap script
git clone https://github.com/zachreborn/macos_setup.git
cd macos_setup
./scripts/bootstrap-macos.sh

Features of the bootstrap script:

  • âś… Idempotent - Safe to run multiple times
  • âś… Comprehensive - Installs everything listed below automatically
  • âś… Smart - Detects and handles Apple Silicon vs Intel Macs
  • âś… Safe - Includes dry-run mode and robust error handling
  • âś… Configures - Sets up shell, themes, and environment variables

Options:

# Preview what will be installed without making changes
./scripts/bootstrap-macos.sh --dry-run

# Normal installation
./scripts/bootstrap-macos.sh

Prerequisites:

  • macOS 11+ (Big Sur or later)
  • Admin access (sudo will be requested when needed)
  • Internet connection

What gets installed:

  • Homebrew package manager with auto-updates
  • CLI Tools: fish, oh-my-posh, gh, aws, bitwarden-cli, terraform, pyenv, pipenv, ykman, gpg, docker, fd, ripgrep, lsd, glances
  • GUI Apps: Google Chrome, Warp, VS Code, GitHub Desktop, Discord, Dropbox, Steam, Obsidian, Docker Desktop, SoundSource, Amazon WorkSpaces
  • Fonts: Hack Nerd Font for terminal icons
  • Shell: fish configured as default with Oh-My-Posh theme
  • Configurations: GPG, pyenv, custom Warp theme, fish environment

Manual Installation

If you prefer to install things manually or want to understand what the bootstrap script does, here are the individual steps:

Initial Set Up

The installations of applications utilizes Homebrew as the package manager for MacOS. It is best practice to use a package manager for easier installation and keeping your applications up to date.

  1. Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. Configure automatic updates for Homebrew
brew autoupdate start --upgrade --cleanup --enable-notification

Installations

Homebrew

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

Google Chrome

  1. Install Google Chrome
brew install --cask google-chrome
  1. Login to Google Chrome

Nerd Fonts

https://www.nerdfonts.com/font-downloads

brew tap homebrew/cask-fonts
brew install --cask font-hack-nerd-font

Warp

https://www.warp.dev/

  1. Install Warp
brew install --cask warp
mkdir -p ~/.warp/themes
cd ~/.warp/themes
curl -O "https://raw.githubusercontent.com/zachreborn/warp_theme_hyper_material/main/hyper_material.yaml"
cd ~
  1. After installing, open Warp and go to Settings > Themes > Import Theme and select the hyper_material.yaml file.

fish

https://fishshell.com/

  1. Install fish and set it as the default shell
brew install fish
sudo bash -c 'echo /opt/homebrew/bin/fish >> /etc/shells'
chsh -s /opt/homebrew/bin/fish
  1. Set up fish to have brew in the path and update completions
fish_add_path /opt/homebrew/bin
fish_update_completions
  1. Set up fish to run oh-my-posh and have all functions
cp -R ~/code/macos_setup/.config/fish/* ~/.config/fish/

Oh-My-Posh

  1. Install Oh-My-Posh
brew tap jandedobbeleer/oh-my-posh
brew install oh-my-posh
mkdir ~/.poshthemes
cd ~/.poshthemes
curl -O "https://raw.githubusercontent.com/zachreborn/macos_setup/main/.poshthemes/octo-theme.omp.json"
oh-my-posh init fish --config ~/.poshthemes/octo-theme.omp.json | source
cd ~
  1. Reload your terminal
  2. Verify that the theme is working by running oh-my-posh --version

GitHub Desktop

  1. Install GitHub Desktop
brew install --cask github
  1. Run GitHub Desktop
  2. Login to GitHub

GitHub CLI

brew install gh

Amazon Workspaces

brew install --cask amazon-workspaces

VS Code

  1. Install VS Code
brew install --cask visual-studio-code
  1. Login to Github in VS Code to synchronize settings and plugins

Magnet

  1. Install Magnet by browsing to https://apps.apple.com/us/app/magnet/id441258766?mt=12
  2. Open Magnet
  3. Follow the setup instructions to enable Magnet to control your windows

AWS CLI

brew install awscli

Bitwarden CLI

Bitwarden CLI is a command-line interface for accessing and managing your Bitwarden vault.

brew install bitwarden-cli

Bitwarden CLI Usage Examples

# Login to your Bitwarden account
bw login

# Unlock your vault (returns a session key)
bw unlock

# Set the session environment variable (replace with actual session key)
export BW_SESSION="your-session-key"

# List all items in your vault
bw list items

# Search for specific items
bw list items --search "github"

# Get a specific item by name
bw get item "GitHub"

# Generate a password
bw generate --length 16 --uppercase --lowercase --number --special

# Sync your vault
bw sync

# Lock your vault
bw lock

Bitwarden Desktop App

Bitwarden Desktop is the graphical user interface for managing your Bitwarden vault.

brew install --cask bitwarden

Terraform

brew install terraform

Terraform-docs

brew install terraform-docs

Terraform-docs Usage

terraform-docs markdown table --output-file ./README.md .

pyenv

https://hackernoon.com/reaching-python-development-nirvana-bb5692adf30c

brew install pyenv

pipenv

https://hackernoon.com/reaching-python-development-nirvana-bb5692adf30c

brew install pipenv

ykman

brew install ykman

gpg

brew install gpg

pinentry-mac

brew install pinentry-mac

glances

brew install glances

Discord

brew install --cask discord

Dropbox

  1. Install Dropbox
brew install --cask dropbox
  1. Sign in to Dropbox
  2. Configure synchronization settings

Steam

brew install --cask steam

Obsidian

brew install --cask obsidian

Docker

brew install --cask docker-desktop
brew install docker

Soundsource

brew install --cask soundsource

fd

fd is a much better version of find for MacOS. It's more intuitive command structure is excellent and quite a bit faster at actually finding files.

brew install fd

ripgrep

ripgrep is a line-oriented search tool that recursively searches the current directory for a regex pattern. It's significantly faster than grep and has better default behavior for developers.

brew install ripgrep

ripgrep Usage Examples

# Basic search
rg "search term"

# Search in specific file types
rg "function" --type js

# Case insensitive search
rg -i "TODO"

# Search with line numbers
rg -n "import"

lsd

lsd is a modern replacement for ls with better defaults, colors, and icon support. It provides a more user-friendly directory listing experience.

brew install lsd

lsd Usage Examples

# Basic listing (equivalent to ls -la)
lsd

# List with file sizes in human readable format
lsd -lh

# Tree view of directory structure
lsd --tree

# Show only directories
lsd -d */

# Sort by file size
lsd -lS

# Sort by modification time
lsd -lt

Older Configurations

Hyper

https://hyper.is/

brew install hyper
hyper install hyper-material-theme

htop

brew install htop

About

This respository is for setting up a new Macbook with various settings I've grown to like.

Resources

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages