M1 Mac Development Setup

Mac Usage

Mac Usage

Awesome Mac

Shell

Zsh Usage

Package Manager

Homebrew

Installation

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

Commands

1
2
3
4
5
6
7
8
9
10
11
12
13
brew install <formula>      # Install formula.
brew install --cask <cask> # Install cask.
brew update # Fetch the newest version of Homebrew and all formulae from GitHub.
brew upgrade # Upgrade outdated casks and outdated, unpinned formulae.
brew leaves # List installed formulae that are not dependencies of another installed formula.
brew tap # Tap a formula repository.
brew doctor # Check your system for potential problems.
brew cleanup # Remove stale lock files and outdated downloads for all formulae and casks, and remove old versions of installed formulae.

# List installed leaf packages by size
brew leaves | while read pkg; do
du -sh "$(brew --cellar)/$pkg" 2>/dev/null | sed "s|$(brew --cellar)/||"
done | sort -hr

npm

Installation

1
brew install node

Yarn

Installation

1
brew install yarn

CocoaPods

Installation

1
sudo gem install cocoapods

Terminal

iTerm2

Installation

1
brew install --cask iterm2

iTerm Color Schemes

Version Control

Git

Git Solutions Collection

SSH

Generating a new SSH key and adding it to the ssh-agent

Git GUI

SourceTree

1
brew install --cask sourcetree

Languages

Python3

Installation

1
brew install python3

JavaScript

Node.js Usage

Java

Installation

Java SE Development Kit
Java SE Development Kit 8

Ruby

Version manager

chruby and ruby-install

1
brew install chruby ruby-install

Installation

1
2
ruby-install ruby   # Install the current stable version of Ruby
chruby 3.2.0 # Change the current Ruby.

Package Manager

RubyGems

Dependency Manager

Bundler

1
gem install bundler

Scheme

Installation

1
brew install --cask racket

SML

Installation

1
brew install smlnj

Text Editors

VSCode

Cursor

Vim

Installation

1
brew install vim

IDE

JetBrains

Toolbox

Xcode

Developer Tools

Insomnia

The open-source, cross-platform API client for GraphQL, REST, and gRPC.

Tools

Finder Tools

quick-look-plugins

List of useful Quick Look plugins for developers

1
brew install apparency betterzip provisionql qlcolorcode qlmarkdown qlstephen qlvideo quicklookase quicklook-json quicklook-pat suspicious-package webpquicklook

Restart the QuickLook manager

1
qlmanage -r

OpenInCode

macOS Finder toolbar app to open current folder in Visual Studio Code

1
brew install --cask open-in-code

Itsycal

Itsycal is a tiny menu bar calendar.

1
brew install --cask itsycal

A powerful menu bar browser

Dozer

Hide status bar icons on macOS.

1
brew install --cask dozer

xbar

Put the output from any script or program into your macOS Menu Bar (the BitBar reboot)

1
brew install --cask xbar

Screen Saver

AppCleaner

AppCleaner is a small application which allows you to thoroughly uninstall unwanted apps.

Maccy

Lightweight clipboard manager for macOS

Installation

1
brew install --cask maccy

OpenEmu

Retro video game emulation for macOS

Command Line Tools

bat

A cat(1) clone with syntax highlighting and Git integration.

1
bat <file>

btop

Resource monitor that shows usage and stats for processor, memory, disks, network and processes.

diff-so-fancy

Good-lookin’ diffs with diff-highlight and more.

eza

A modern alternative to ls

fd

A simple, fast and user-friendly alternative to find

1
fd <pattern>

ffmpeg

A complete, cross-platform solution to record, convert and stream audio and video.

fzf

A command-line fuzzy finder

1
fzf

graphicsmagick

Image processing tools collection.

htop

A cross-platform interactive process viewer.

httrack

Website copier/offline browser.

1
httrack <URLs>

mtr

mtr combines the functionality of the traceroute and ping programs in a single network diagnostic tool.

An interactive cheatsheet tool for the command-line

ncdu

NCurses Disk Usage.

1
ncdu <dir>

pandoc

General markup converter.

pngquant

Lossy PNG compressor

1
pngquant --ext .png --force 256 *.png */*.png

prettyping

prettyping is a wrapper around the standard ping tool, making the output prettier, more colorful, more compact, and easier to read.

1
prettyping

rlwrap

rlwrap is a ‘readline wrapper’, a small utility that uses the GNU Readline library to allow the editing of keyboard input for any command.

1
rlwrap <command>

the_silver_searcher

A code searching tool similar to ack, with a focus on speed.

tig

Tig is an ncurses-based text-mode interface for git.

tldr

Simplified and community-driven man pages

1
tldr <command>

tree

List contents of directories in a tree-like format.

1
tree -L <num> -a

unrar

Command-line unarchiving tools supporting multiple formats

xxh

Bring your favorite shell wherever you go through the ssh.

z

Tracks your most used directories, based on ‘frecency’.

1
z <dir>

Virtual Machines

Multipass

Get an instant Ubuntu VM with a single command. Multipass can launch and run virtual machines and configure them with cloud-init like a public cloud.

Font

1
brew tap homebrew/cask-fonts

Fira Code

1
brew install --cask font-fira-code

Nerd Fonts

Fira Code Nerd Font

1
brew install --cask font-fira-code-nerd-font

Font Awesome

1
brew install --cask font-fontawesome

Configuration

Git Config

diff-so-fancy

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
git config --global core.pager "diff-so-fancy | less --tabs=4 -RFX"
git config --global interactive.diffFilter "diff-so-fancy --patch"

git config --global color.ui true

git config --global color.diff-highlight.oldNormal "red bold"
git config --global color.diff-highlight.oldHighlight "red bold 52"
git config --global color.diff-highlight.newNormal "green bold"
git config --global color.diff-highlight.newHighlight "green bold 22"

git config --global color.diff.meta "11"
git config --global color.diff.frag "magenta bold"
git config --global color.diff.func "146 bold"
git config --global color.diff.commit "yellow bold"
git config --global color.diff.old "red bold"
git config --global color.diff.new "green bold"
git config --global color.diff.whitespace "red reverse"