Skip to content

Instantly share code, notes, and snippets.

Last active Jun 11, 2021
What would you like to do?
#!/usr/bin/env bash
# many settings from
# many settings from
# instructions on finding the default you've changed:
# previous install notes at:
fancy_echo() {
local fmt="$1"; shift
# shellcheck disable=SC2059
printf "\n$fmt\n" "$@"
# handle failures
trap 'ret=$?; test $ret -ne 0 && printf "failed\n\n" >&2; exit $ret' EXIT
# Things I don't know how to do from the command line:
# * use caps lock as esc for all keyboards
# * increase screen resolution to retina
# set the computer name:
export computername="qfwfq"
sudo scutil --set ComputerName "$computername"
sudo scutil --set HostName "$computername"
sudo scutil --set LocalHostName "$computername"
sudo defaults write /Library/Preferences/SystemConfiguration/ NetBIOSName -string "$computername"
# speed up key repeat
defaults write NSGlobalDomain KeyRepeat -int 1
defaults write NSGlobalDomain InitialKeyRepeat -int 20
# Disable “natural” (Lion-style) scrolling
defaults write NSGlobalDomain -bool false
# Disable Notification Center and remove the menu bar icon
launchctl unload -w /System/Library/LaunchAgents/ 2> /dev/null
# I don't think this worked; instead I went into system preferences and
# set do not disturb to run from 3:01AM to 3:00AM
# Disable auto-correct
defaults write NSGlobalDomain NSAutomaticSpellingCorrectionEnabled -bool false
# Set the icon size of Dock items to 16 pixels
defaults write tilesize -int 16
# Set the magnification to true
defaults write magnification -int 1
# Wipe all (default) app icons from the Dock
defaults write persistent-apps -array
# Show only open applications in the dock
defaults write static-only -bool true
# remove autohide delay
defaults write autohide-delay -float 0
# Automatically hide and show the Dock
defaults write autohide -bool true
# show batter percentage
defaults write ShowPercent -bool true
# show the date in the toolbar
defaults write DateFormat -string 'EEE MMM d H:mm'
# Disable the sound effects on boot
sudo nvram SystemAudioVolume=" "
# Disable sound effects when changing volume
defaults write NSGlobalDomain -integer 0
# Disable sounds effects for user interface changes
defaults write NSGlobalDomain -int 0
# Set alert volume to 0
defaults write NSGlobalDomain -float 0.0
# Show volume in the menu bar
defaults write "NSStatusItem Visible" -int 0
# Show Bluetooth in the menu bar
defaults write "NSStatusItem Visible" -int 0
# Avoid creating .DS_Store files on network or USB volumes
defaults write DSDontWriteNetworkStores -bool true
defaults write DSDontWriteUSBStores -bool true
# don't hide files
defaults write AppleShowAllFiles true
# Show the ~/Library folder
chflags nohidden ~/Library
# Show the /Volumes folder
sudo chflags nohidden /Volumes
# mouse to max tracking speed
defaults write -g -int 3
# disable shake to locate mouse pointer
defaults write ~/Library/Preferences/.GlobalPreferences CGDisableCursorLocationMagnification -bool YES
# disable pinch to zoom
defaults write TrackpadPinch -int 0
# disable trackpad rotate
defaults write TrackpadRotate -int 0
# disable double tap to zoom
defaults write MouseOneFingerDoubleTapGesture -int 0
defaults write TrackpadTwoFingerDoubleTapGesture -int 0
# fix key repeat in vs code. I don't use it that often, but this is necessary when I do
defaults write ApplePressAndHoldEnabled -bool false
# speed up window opening by disabling animation
defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool NO
# reboot systemUIServer and the dock to enable defaults to take effect
killall -KILL Dock
killall -KILL SystemUIServer
# add homebrew to the PATH
export PATH=/opt/homebrew/bin:$PATH
if ! command -v brew >/dev/null; then
fancy_echo "Installing Homebrew ..."
/bin/bash -c "$(curl -fsSL"
brew install awscli
brew install autoconf
brew install automake
brew install bash
brew install bash-completion@2
brew install bat
brew install cmake
brew install coreutils
brew install curl
brew install devd
brew install direnv
brew install dos2unix
brew install findutils
brew install ffmpeg
brew install fzf && /usr/local/opt/fzf/install --all
brew install gcc
brew install gnupg
brew install git
brew install gnu-sed
brew install go
brew install grep
brew install gh
brew install htop
brew install jq
brew install modd
# until 0.5.0 comes out
brew install --HEAD neovim
brew install nmap
brew install postgres && brew services start postgresql
brew install ripgrep
brew install sqlite
brew install tree
brew install vim
brew install wget
brew install yarn
brew install youtube-dl
# brew's install of asdf seems to be quite terrible, so let's install it the
# way they want us to
git clone ~/.asdf --branch v0.8.1
# fzf requires an installation script to run... not sure why homebrew doesn't
# do this but w/e
$(brew --prefix)/opt/fzf/install --all --update-rc
# install dotfiles
mkdir code
cd code
git clone
cd ..
cp -r code/personal_code/homedir/.* .
git clone ~/.vim/bundle/Vundle.vim
fancy_echo "now open vim and run :VundleInstall"
fancy_echo "then quit and mkdir ~/.vim/colors; cp .vim/bundle/Base2Tone-vim/colors/*.vim ~/.vim/colors"
# now set the updated bash as your login shell
echo /opt/homebrew/bin/bash | sudo tee -a /etc/shells
sudo chsh -s /opt/homebrew/bin/bash $(whoami)
brew install --cask 1password
brew install --cask alfred
brew install --cask docker
brew install --cask google-chrome
brew install --cask iterm2
brew install --cask karabiner-elements # and copy karabiner config folder into ~/.config
brew install --cask keepingyouawake
brew install --cask macvim
brew install --cask slack
brew install --cask spotify
brew install --cask vlc
# install vim-plug for both vim and neovim
curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \'
# mas (the app store cli from github) doesn't let you signin, so it's not any
# easier than just doing it by hand (ugh)
fancy_echo "open app store and install any apps you need"
# install chrome extensions: lastpass and ublock origin
# tell git to use the osx keychain
git config --global credential.helper osxkeychain
# create a personal access token to allow git to work on your computer
# copy ~/.ssh to the new computer and chown to your user
# copy ~/.gnupg to the new computer
# * set iTerm ctrl-tab and ctrl-shift-tab to "next term" and "prev term" rather
# than cycle
# install base2tone space-dark
fancy_echo "open iterm -> preferences -> profiles -> color presets and import base2tone-space-dark.itermcolors"
brew tap homebrew/cask-fonts
brew install --cask font-iosevka-slab
brew install --cask font-iosevka
brew install --cask font-hack
brew install --cask font-fira-code
asdf plugin add python
asdf install python latest
asdf plugin add ruby
asdf install ruby latest
asdf plugin add nodejs
asdf install nodejs latest
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment