M1 Mac Development Setup

Mac Usage

Mac Usage

Awesome Mac

Package Manager

Homebrew

Installation

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

Commands

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.

npm

Installation

brew install node

Yarn

Installation

brew install yarn

CocoaPods

Installation

sudo gem install cocoapods

Shell

Zsh Usage

Terminal

iTerm2

Installation

brew install --cask iterm2

iTerm Color Schemes

Version Control

Git

SSH

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

Git GUI

SourceTree

brew install --cask sourcetree

Languages

Python3

Installation

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

brew install chruby ruby-install

Installation

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

Package Manager

RubyGems

Dependency Manager

Bundler

gem install bundler

Scheme

Installation

brew install --cask racket

SML

Installation

brew install smlnj

Text Editors

VSCode

Vim

Installation

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

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

OpenInCode

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

brew install --cask open-in-code

Itsycal

Itsycal is a tiny menu bar calendar.

brew install --cask itsycal

A powerful menu bar browser

Dozer

Hide status bar icons on macOS.

brew install --cask dozer

xbar

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

brew install --cask xbar

Screen Saver

AppCleaner

Maccy

Installation

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.

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.

exa

A modern replacement for ls.

fd

A simple, fast and user-friendly alternative to find

fd <pattern>

ffmpeg

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

fzf

A command-line fuzzy finder

fzf

graphicsmagick

Image processing tools collection.

htop

A cross-platform interactive process viewer.

httrack

Website copier/offline browser.

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.

ncdu <dir>

pandoc

General markup converter.

pngquant

Lossy PNG compressor

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.

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.

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

tldr <command>

tree

List contents of directories in a tree-like format.

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’.

z <dir>

Font

brew tap homebrew/cask-fonts

Fira Code

brew install --cask font-fira-code

Nerd Fonts

Fira Code Nerd Font

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

Font Awesome

brew install --cask font-fontawesome

Configuration

Git Config

diff-so-fancy

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"