Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Install Mac

Setup Catalina

Settings

  • Displays:
    • Arrangement: uncheck mirror
    • For each monitor: select scaled and more space; use sRGB for color
  • Mouse: uncheck scroll direction natural
  • Dock: shrink size down; minimize using scale effect
  • Spotlight: uncheck everything
  • Internet Accounts: enable Gmail
  • Accessibility:
    • Zoom: check use scroll with modifier, use cmd-key
    • Pointer Control: click trackpad options, check enable dragging, three fingers
  • Bluetooth: show in menu bar
  • Sound: set default alert sound to "Pop", check show volume in menu bar
  • Printers: add printer
  • Keyboard:
    • Keyboard: Touch bar shows Fn keys
    • Keyboard: Customize control strip and add sleep button
    • Text: Uncheck add period with double-space
    • Text: Uncheck smart quotes and use straight ' and "
    • Input sources: Uncheck show input menu in menu bar
  • Date/Time: Clock: check display with seconds; check show date

Dock/Finder

  • Click on desktop, press Cmd+Shift+A, and drag Applications folder to the left of Downloads
  • Right click on Applications folder in dock and check 'list'
  • Right click on Downloads folder and check 'list'
  • Open a finder window and enter Cmd+Comma (for Preferences)
    • General: new finder windows show home directory
    • Advanced: Keep folders on top: check both checkboxes; select search current folder

Poweruser tweaks

defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode  -bool true # expand save dialog
defaults write NSGlobalDomain NSNavPanelExpandedStateForSaveMode2 -bool true # expand save dialog
defaults write com.apple.finder _FXShowPosixPathInTitle -bool true; killall Finder # show path in finder
defaults write com.googlecode.iterm2 QuickPasteBytesPerCall -int 1024 # slow down iterm2 pasting
defaults write com.googlecode.iterm2 QuickPasteDelayBetweenCalls -float 0.05 # slow down iterm2 pasting
defaults write com.google.Chrome PMPrintingExpandedStateForPrint2 -bool true # expand Chrome's print dialog

App Store

  • monosnap
  • divvy
    • enable accessibility in settings
    • start at login
    • global shortcut: opt+cmd+down
    • other shortcuts: left, right

Allow sudo without a password

sudo visudo

# insert 'NOPASSWD' in following line:

%admin  ALL = (ALL) NOPASSWD: ALL

Set default shell back to bash

sudo chsh -s /bin/bash
chsh -s /bin/bash

Hostname

sudo scutil --set HostName      ice # Common usage
sudo scutil --set LocalHostName ice # Bonjour
sudo scutil --set ComputerName  ice # Finder, friendly name

Copy bashrc file

curl -L http://bit.ly/2MZ8VjE > ~/.bashrc

Xcode

# copy the Xcode.xip file to the Desktop
# double-click to extract Xcode
# move Xcode to /Applications

# install command-line tools
xcode-select --install

# accept the license
sudo xcodebuild -license accept

Homebrew

ruby -e "$(curl -fsSL https://goo.gl/HwGCPa)"
brew install openssl coreutils ssh-copy-id wget git readline mc tree bash-completion jq htop-osx gpg
# NOTE: to use GNU utils, ensure PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"

Homebrew casks

brew tap homebrew/cask-versions
brew cask install google-chrome
brew cask install dropbox
brew cask install visual-studio-code-insiders
xattr -d com.apple.quarantine "/Applications/Visual Studio Code - Insiders.app"
ln -sf "/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/bin/code" /usr/local/bin/code
brew cask install github
brew cask install iterm2
brew cask install beyond-compare
brew cask install cleanmymac
brew cask install sketch
brew cask install slack
brew cask install imageoptim

brew cask install virtualbox
brew cask install skyfonts
brew cask install avibrazil-rdm

brew cask install sequel-pro # mysql GUI
brew cask install postico # postgres GUI
brew cask install postman # webdev
brew cask install android-studio
brew cask install java

brew install crystal
brew install golang
brew install python
pip install --upgrade pip

brew install diff-so-fancy # nice git diff helper
brew install nghttp2 # modern version of ab

Install Vim (see http://vimawesome.com/)

mcd ~/.vim/autoload
curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim

mcd ~/.vim/colors
wget https://raw.githubusercontent.com/kreeger/benlight/master/colors/benlight.vim

mcd ~/.vim/bundle
git clone https://github.com/kchmck/vim-coffee-script
git clone https://github.com/fatih/vim-nginx
git clone https://github.com/posva/vim-vue

cd

# more complete config
cat <<END >> ~/.vimrc
" vim config

"let g:airline_powerline_fonts=1
"let g:Powerline_symbols='unicode'

set nocompatible                  " Must come first because it changes other options

" Enable pathogen
execute pathogen#infect()

syntax on                         " Use syntax highlighting
"filetype plugin indent on         " Enable plugins

"set backspace=indent,eol,start    " Intuitive backspacing
"set hidden                        " Handle multiple buffers better.

set ruler                         " Show cursor position.
"set number                        " Show line numbers. -> This is handled via Ctrl+N

set incsearch                     " Highlight matches as you type
set hlsearch                      " Highlight matches

set ignorecase                    " Case-insensitive searching
set smartcase                     " But case-sensitive if expression contains a capital letter

set ttyfast                       " Send more characters for redraws

set mouse=a                       " enable mouse in all modes
set ttymouse=xterm2

set laststatus=2                         " always show the status bar
set statusline=[%n]\ %<%.99f\ %h%w%m%r%= " main status, file name, etc.
set statusline+=\ \ %-12(R:%l\ C:%v%)   " position in rows and cols
set statusline+=\ \ %-14(0x%B\ (%b)%)   " character under cursor
set statusline+=\ \ %P                  " percent through file

color benlight

set title                         " Set the terminal's title
set scrolloff=3                   " Show 3 lines of context around the cursor

" need to make sure these are okay to use...
set tabstop=2                     " Global tab width.
set shiftwidth=2                  " And again, related.
set expandtab                     " Use spaces instead of tabs

" set directory=$HOME/.vim/tmp//,.  " Keep swap files in one location

function! LineNoCycle()
  if (&number == 1)
    set nonumber
    set relativenumber
  elseif (&relativenumber == 1)
    set norelativenumber
  else
    set number
  end
endfunc

nnoremap <C-n> :call LineNoCycle()<cr>

" Press enter to clear last search
nnoremap <cr> :noh<cr><cr>:<backspace>
END

Ruby

# enable irb history
cat <<-END > ~/.irbrc
require 'irb/ext/save-history'

if defined? IRB.conf
  IRB.conf[:SAVE_HISTORY] = 500
  IRB.conf[:HISTORY_FILE] = "#{ENV['HOME']}/.irb_history"
end
END

# suppress extra documentation
echo 'gem: --no-document' > ~/.gemrc

# install ruby tools
brew install ruby-install chruby
source /usr/local/opt/chruby/share/chruby/chruby.sh
source /usr/local/opt/chruby/share/chruby/auto.sh

# install ruby
time ruby-install -c -j$(sysctl -n hw.logicalcpu) ruby-2.6.5 -- --disable-install-doc
echo "2.6" > ~/.ruby-version
exec bash
chruby 2.6.5; gem update --system && gem update --default && gem update; echo $ver > ~/.ruby-version

# gem update --default

# optional `chruby-auto` script (chmod to 755)
#!/usr/bin/env bash

source "${0%/*}/../share/chruby/chruby.sh"
source "${0%/*}/../share/chruby/auto.sh"

ruby "$@"

Flutter

git clone https://github.com/flutter/flutter.git
cd flutter # add this directory/bin to PATH
flutter version 1.9.1+hotfix.5
sudo gem install cocoapods
flutter doctor

Node

sudo install -d -m 775 /usr/local/n
sudo chown -R $(whoami) $(brew --prefix)/*
brew install n
n latest

# NOTE: Next line shouldn't be needed after the above 'sudo install -d -m 755 /usr/local/n'
# sudo chown -R $(whoami) /usr/local/lib/node_modules/

MySQL

brew install mysql
mysql.server start
mysqldump -u root -t mysql user -w"user='root'" | grep '^INSERT ' | sed "s/root/`whoami`/" | mysql -u root mysql # clone root
mysqladmin -u root reload

# might be needed
mysql mysql -u root -p -e "insert into user values ('localhost','$(whoami)','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0,0,'mysql_native_password','','N','2019-06-26 16:12:05',NULL,'N','Y','Y',NULL,NULL,NULL,NULL); flush privileges;"
mysqlshow

# load time zones
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql mysql

# needed for MySQL dev libs
gem install mysql2 -- --with-cflags=\"-I/usr/local/opt/openssl/include\" --with-ldflags=\"-L/usr/local/opt/openssl/lib\"

References

Files

shreeve@ice ~> brew list

adns			ghostscript		libev			llvm@6			pv
autoconf		git			libevent		llvm@8			python
automake		glib			libffi			lua@5.1			python@2
aws-elasticbeanstalk	gmp			libgcrypt		mackup			readline
awscli			gnu-sed			libgpg-error		midnight-commander	rename
bash-completion		gnupg			libheif			mongodb@3.6		ruby-build
bdw-gc			gnutls			libidn2			mpfr			s-lang
bfg			go			libimobiledevice	msgpack			shared-mime-info
bison			gradle			libksba			mysql			sqlite
c-ares			graphicsmagick		libmaxminddb		ncurses			ssh-copy-id
ccache			grep			libmpc			nettle			swig
chruby			hexyl			libomp			nghttp2			telnet
cmake			htop			libplist		nmap			tig
cocoapods		icu4c			libpng			node			tmate
coreutils		ideviceinstaller	libsmi			npth			tmux
crystal			ilmbase			libssh			oniguruma		tree
crystal-icr		imagemagick		libssh2			openexr			unbound
csvkit			ios-deploy		libtasn1		openjpeg		usbmuxd
diff-so-fancy		isl			libtiff			openssl			watch
dnsmasq			jansson			libtool			openssl@1.1		webp
expect			jasper			libunistring		p11-kit			wemux
fcgi			jemalloc		libusb			p7zip			wget
fish			jpeg			libxml2			pcre			x265
freetype		jq			libyaml			pcre2			xsv
fswatch			lazygit			libzip			pinentry		xz
gdbm			libassuan		little-cms2		pkg-config		yarn
gettext			libde265		llvm			postgresql

shreeve@ice ~> brew cask list

adoptopenjdk8
beyond-compare
cleanmymac
db-browser-for-sqlite
dropbox
font-source-code-pro
github
google-chrome
imageoptim
iterm2
macdown
postico
postman
rcdefaultapp
sketch
skyfonts
sqlectron
virtualbox
virtualbox-extension-pack
wireshark

Backing up a drive

rsync -av --exclude='*/node_modules/*' /Users/shreeve/Data/Work/Code /Volumes/General/Snapshots/Steve/20191011/shreeve/Data/Work/Code
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.