MacOS Setup

I have recently moved between a few macOS machines and have had to repeat some common development configuration. I think it’s best to document it here for both my future self and for others. Most of these are easy to install using brew.

Editors

  • emacs: brew tap "d12frosted/emacs-plus" && brew install emacs-plus
  • visual-studio-code: all config is auto-synced using GitHub.
  • vim: I just use Tim Pope’s sensible as I don’t spend as much time on vim anymore

Fonts

After brew tap "homebrew/cask-fonts"

  • font-mononoki for Agda
  • font-fira-code for everything else

Packages

See https://github.com/k4rtik/shallow-backup/tree/master/packages (private link) for complete list. Here are some essentials:

  • brave-browser
  • brew cu: brew tap buo/cask-upgrade && brew cu pin brave-browser
  • gh
  • git
  • hiddenbar
  • htop
  • hugo
  • iterm2
  • mailtrackerblocker
  • rectangle
  • rescuetime
  • ticktick
  • tree
  • yt-dlp: brew install yt-dlp/taps/yt-dlp
  • zoom

Languages

  • Haskell
  • Agda (brew install llvm@12, add it to the PATH, and then cabal install Agda)
  • LaTeX
  • OCaml and Coq (opam install coq)
  • Python3: brew install python
  • Rust
    • tealdeer
    • cargo-update
    • du-dust
    • ripgrep

Maintenance

I often issue the following command to keep most of the packages updated:

brewup && rustup update && cargo install-update -a && brew cu -a -y && tlmgr update --self --all && ghcup list -c available

where brewup is aliased to brew update; brew upgrade; brew cleanup; brew doctor

I tend to not auto-update opam packages as they can often break projects but I do maintain a default switch with the latest OCaml version and several coq-platform releases, e.g.:

❯ opam switch
#  switch                                 compiler                    description
→  __coq-platform.2021.11.0~8.14~2021.11  ocaml-base-compiler.4.10.2  __coq-platform.2021.11.0~8.14~2021.11
   default                                ocaml.4.12.1                default

Edit this page

Kartik
Graduate Student

Design and Verification of Programming Languages for realistic Quantum Computing

Previous