Skip to content

Latest commit

 

History

History
189 lines (141 loc) · 7.7 KB

RUNBOOK.org

File metadata and controls

189 lines (141 loc) · 7.7 KB

Runbook for My OS X Setup

This is my hopefully complete Runbook for getting a new MacOS computer running.

Install Iterm2
https://iterm2.com/; a terminal emulator and long-time companion.
  • From this repository I eventually need to load the Default profile, for all of the keybinding goodness. See ./iterm/Default.json.
  • curl -L https://iterm2.com/shell_integration/zsh -o ~/.iterm2_shell_integration.zsh
Install homebrew
https://brew.sh ; package manager
Install OhMyZsh
https://github.com/ohmyzsh/ohmyzsh ; zshell option
Install Powerlevel10k
https://github.com/romkatv/powerlevel10k
Install Base16 Shell
https://github.com/chriskempson/base16-shell
Install ImageOptim
https://imageoptim.com/ ; remove image metadata
brew install cmake
cross-platform make (may not be necessary with MacOS only install)
brew tap homebrew/cask
make sure to get access to casks
brew install maccy
a multi-paste clipboard.
brew install git
MacOS git is always behind the times, this will help keep it updated.
brew install git-extras
some extra commands for git
brew install git-secrets
handle git secrets (e.g., keychain)
brew install hub
terminal integration with GitHub
brew install openssl
You’re going to want this for rbenv, though look at ./runbooks/ruby-openssl
brew install postgresql
postgresql database
brew install rbenv
Ruby version manager (we’ll install Ruby’s later)
brew install redis
Going to need this for asyn rails work
brew install dbus
Message bus system, providing inter-application communication
brew install ag
A solid replacement for grep
brew install ripgrep
Another solid replacement for grep that allows PERL Regexp (command is rg)
brew install rga
A wrapper around ripgrep for PDFs, Office Files, etc.
brew install terminal-notifier
Send MacOS notifications from terminal
brew install enchant
a wonderful spell checker that powers the jinx.el package.
brew install fd
find replacement
brew install fzf
Fuzzy finder
brew install bat
A cat clone with syntax highlighting
brew install pandoc
for converting documents to different formats
brew install appcleaner
for cleaning out applications and all their extra files
brew install smudge/smudge/nightlight
command light control of the Night Shift settings (see https://github.com/smudge/nightlight)
brew install difftastic
a more robust diff-ing tool
brew install cloc
a Perl tool to determine LOC for a project
brew install npm
Node package manager
brew install tree
Tree
brew install erdtree
a better tree (command is et)
brew install enchant
https://abiword.github.io/enchant/ for spelling
brew install rsync
The default MacOS package was 2.6; homebrew has v3.x
brew install starship
A Cross-Shell Prompt
brew install plantuml
For this to work in Org Mode, I needed to run sudo ln -sfn /opt/homebrew/opt/openjdk@21/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-21.jdk; which pre-supposed having brew installed openjdk
brew install yaml-language-server
To provide linting for YAML (and other features)

Go Lang

Install Delve
https://github.com/go-delve/delve?tab=readme-ov-file
  • Install Air
Install gopls
either brew install gopls or go install golang.org/x/tools/gopls@latest ; for Language Server support
Install goimports
go install golang.org/x/tools/cmd/goimports@latest

Fonts

Emacs

The following is necessary for getting Emacs up and running

brew install libgit2
C-Library for Git that improves Emacs’s magit speed
brew install coreutils
GNU file, shell, and text utilities
brew install mactex
for LaTeX rendering (e.g., org mode exports)
ln -s $HB_PATH/bin/gls $HB_PATH/bin/ls
This addresses ”ERROR: Listing directory failed but ‘access-file’ worked”
  • brew tap d12frosted/emacs-plus
  • brew install emacs-plus@29 --with-ctags --with-poll --with-debug --with-dbus --with-modern-pen-lds56-icon --with-native-comp --with-mailutils --with-imagemagick

Note: Once you have Emacs running (see install.rb below), make sure to run M-x all-the-icons-install-fonts.

In my Dotemacs repository, I have my preferred Emacs icon. It was generated by “AI”

Alternate

brew install emacs-mac --with-dbus --with-glib --with-imagemagick --with-jansson --with-libxml2 --with-rsvg --with-mac-metal --with-native-comp --with-natural-title-bar --with-starter --with-emacs-sexy-icon

Language Servers

Ruby
gem install solargraph
YAML
npm install -global yaml-language-server

Dictionary

In http://mbork.pl/2017-01-14_I’m_now_using_the_right_dictionary the author speaks about using the 1918 Webster’s dictionary; in part to fill their reading and references with vibrant and living words.

brew install sdcv
the translation

To add to Dictionary.app:

Run ./install.rb

ruby install.rb to create various symlinks and set some MacOS defaults

NPM Packages

npm install -g doctoc
A markdown table of contents generator

SSH Keys

Ensure that I have up to date SSH keys

For Github, need to create a new app token

Install Karabiner

https://karabiner-elements.pqrs.org/

Then set:

  • Right option key to send ESC
  • Caps lock to send CTRL
  • Left shift + Right shift sends CAPS LOCK

Spotlight Skip ~/git

Note the path needs to be absolute:

  • sudo plutil -insert Exclusions.0 -string /Users/jfriesen/git /System/Volumes/Data/.Spotlight-V100/VolumeConfiguration.plist
  • launchctl stop com.apple.metadata.mds
  • launchctl start com.apple.metadata.mds

The above is inspired from: https://alexwlchan.net/files/2021/ignore_folders_in_spotlight.py

Install Hammerspoon

See Hammerspoon/hammerspoon: Staggeringly powerful MacOS desktop automation with Lua.

For this to be most effective, I nee

The Deprecated

Prior to Maccy Raycast, I used Jumpcut (brew cask install jumpcut). The benefit of Raycast is that the multi-paste buffer is Rich Text aware. The downside? It’s venture capital funded, so expect enshitification.