New laptop: the setup
This is my ever-expanding set of notes about setting my dev environment. One of these days I should turn it into a script or something.
Essentials
First, download and install:
While that’s happening, download:
Optional, useful tool for monitoring CPU, bandwidth, memory, etc.:
Experimental new terminal: Warp
iTerm
With iTerm, set triple-click to select wrapped lines:
Preferences / Pointer / Triple-click selects full wrapped lines
Make more room on-screen by turning this off:
Preferenes / Appearance / Panes / Show per-pane title bar with split panes
Editor
Install VS Code
Unix libraries
Install homebrew
:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Install unix libs:
brew install gpg2 git git-flow tmux imagemagick postgresql@17 redis pgcli direnv zsh ssh-copy-id openssl nmap coreutils automake autoconf libyaml readline libxslt libtool unixodbc fop starship asdf wget curl jq gh exa
To stop annoying git
warnings:
mkdir -p ~/.git/templates
Typefaces
brew tap homebrew/cask-fonts
brew install --cask font-hack-nerd-font
brew install --cask font-monoid-nerd-font
brew install --cask font-fira-code-nerd-font
brew install --cask font-cousine-nerd-font
brew install --cask font-sauce-code-pro-nerd-font
SSH
Generate an SSH key:
ssh-keygen
Install the handy-dandy ssh-copy-id
utility:
brew install ssh-copy-id
Github
Github have a great new tool for performing tasks on GitHub from the command line:
brew install gh
gh login
You can then use gh
to upload your SSH key to Github:
gh ssh-key add ~/.ssh/id_rsa.pub -t "Work Laptop"
ZSH
Install the latest version of ZSH:
brew install zsh
Set this version as the correct version of ZSH:
sudo vim /etc/shells
add the following line into the very end of the file /etc/shells
:
/usr/local/bin/zsh
or, on an M1 Mac:
/opt/homebrew/bin/zsh
Change default shell:
chsh -s /usr/local/bin/zsh
or, on an M1 Mac:
chsh -s /opt/homebrew/bin/zsh
Now install oh-my-zsh:
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
development directory
Create my local development directory:
mkdir ~/development
Dotfiles
Install my dotfiles:
git clone git@github.com:suranyami/dotfiles.git
cd dotfiles
bundle
./install.rb
Apps
Install SourceTree for enhanced Git visualization:
Don’t use the Mac App Store version of Slack, download it directly: Slack
Virtual Box
Go here
Other tools
Install Node.js
Install nmap
so I can do things like find my Raspberry Pi on the network:
brew install nmap
ASDF
As per install instructions for asdf
here: https://github.com/asdf-vm/asdf
brew install asdf
Add the following to ~/.zshrc
:
. $HOME/.asdf/asdf.sh
Install unix libs ASDF requires to build stuff:
brew install coreutils automake autoconf openssl libyaml readline libxslt libtool unixodbc
Install unix libs needed by Elixir and Erlang:
brew install fop wxwidgets
This blog post talks about how to install the above with :observer
working, as well as allowing Erlang Wx gadgets to work. But that was before when wxmac
was used instead of wxwidgets
. I include it here for reference only.
Install Erlang and Elixir:
asdf plugin add java
asdf plugin add erlang
asdf plugin add elixir
asdf plugin add python
asdf plugin add nodejs
asdf plugin add ruby
asdf install java openjdk-18
asdf install erlang latest
asdf install elixir latest
asdf install python latest
asdf install ruby latest
asdf install nodejs latest
asdf global java latest
asdf global elixir latest
asdf global erlang latest
asdf global python latest
asdf global nodejs latest
asdf global ruby latest
if you have compilation problems with Erlang, try brew uninstall pcre
, install Erlang, then reinstall pcre
.
macOS
Disable the caps-lock key in System Preferences –> Keyboard –> Modifier Keys
Postgres
To make the postgres
role:
createuser -s postgres
Foreman
brew install foreman