This repo contains links and config files for Simon's typical working environment
Essential package manager for macOS
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
A smart and user-friendly command line shell
brew install fish
Easily install packages for Fish Shell
curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install | fish
A Powerline-style Git-aware fish theme optimized for awesome
omf install bobthefish
Install a nerd fonts patched font, and enable nerd fonts support:
brew tap homebrew/cask-fonts
brew install --cask font-hack-nerd-font
set -g theme_nerd_fonts yesOh My Fish plugin to integrate Homebrew paths into shell
omf install brew
Oh My Fish plugin providing a new cd command to help you change the current working directory fast.
omf install cd
Creates some great shorthand aliases for common git calls
omf install https://github.com/jhillyerd/plugin-git
A number of handy functions for use in macOS
omf install osx
Computes string digests using various hashing algorithms
omf install hash
macOS comes with an outdated version of the Git CLI. Install the latest with
brew install git
Install the latest version with
brew install go
A fast linters runner for Go
brew install golangci-lint
gotestsum runs tests using go test -json, prints formatted test output, and a summary of the test run. It is
designed to work well for both local development, and for automation like CI.
Container runtimes for macOS - great alternative to Docker Desktop
brew install colima
brew install docker docker-compose
mkdir -p ~/.docker/cli-plugins
ln -sfn /opt/homebrew/opt/docker-compose/bin/docker-compose ~/.docker/cli-plugins/docker-compose
colima startNote you'll also likely need to add the following environment variable: DOCKER_HOST=unix:///$HOME/.colima/docker.sock
Great terminal emulator for macOS
A productivity application for macOS.
- Launch applications and find files on your mac using hotkeys
- Clipboard history
- Snippets
- Perform quick maths calculations
Everyone needs a password manager
Save and restore windows based on your display configuration or user created profiles
Modern open-source text editor. I used to use Atom but that's being sunsetted :(
Great UI tool to compare and merge files. Use for resolving git conflicts.
To add the command line support, do the following in the DMG mounted volume:
sudo cp Extras/diffmerge.sh /usr/local/bin/diffmerge
sudo chmod 755 /usr/local/bin/diffmerge
sudo mkdir -p /usr/local/share/man/man1/
sudo cp Extras/diffmerge.1 /usr/local/share/man/man1/Then to set it as your preferred tool for git on the command line:
git config --global diff.tool diffmerge
git config --global difftool.diffmerge.cmd "/usr/local/bin/diffmerge \"\$LOCAL\" \"\$REMOTE\""
git config --global merge.tool diffmerge
git config --global mergetool.diffmerge.trustExitCode true
git config --global mergetool.diffmerge.cmd "/usr/local/bin/diffmerge --merge --result=\"\$MERGED\" \"\$LOCAL\" \"\$BASE\" \"\$REMOTE\""My IDE of choice. Includes great support for Go. Recommend the following plugins:
| Plugin | Description |
|---|---|
| Go | Adds Go support (this has all the functionality of GoLand) |
| GO Imports Tidy | Helps group your Go import lines |
| Go Linter | Integrates the golangci-lint linters |
| Terraform and HCL | Support for Terraform |
| Kubernetes | Jetbrains official support for Kubernetes |
| AWS Toolkit | Official AWS plugin from Amazon |
I regularly use the following browser plugins:
| Plugin | Description |
|---|---|
| 1password | My choice of password manager |
| OneTab | Save memory and reduce anxiety by collapsing all open tabs into a single page list |
| AdblockPlus | Get rid of annoying ads |
| PrintFriendly | Remove any unnecessary elements from web pages before printing |
| AutoHideDownloadsBar | Hide the annoying Downloads bar in Chrome |
This repo contains the following config files:
| Filename | Description |
|---|---|
| iTerm-profile.json | Config file for iTerm2. Import under Preferences > Profiles |