A collection of things I like to use, intended to be used as a reference for initial setup of an OSX dev machine. Includes a few (sanitized) template configuration files based off of my personal preferences.
- BetterTouchTool: For setting up custom macros for your keyboard/touchpad (template config included
configs/profile.bttpreset).- More info about the template config here
- homebrew: Package manager. Machines with arm64 processors may want to install brew in an x86 shell for more reliable package compatibility.
- iTerm2: Terminal replacement (template config included
configs/iterm2_profile.json).- More info about the template config here
- Notion: Wiki-style note-taking app with Markdown support and various templates.
- Oh My Zsh: Zsh framework for plugins and themes (more info about the template
.zshrcfile here). - Zed: A fast Rust-based editor, favorite extensions here
- MacsyZones: A window snapping tool, works just like Powertools FancyZones
- jq: JSON processor
- fnm: Fast Node version manager
- httpie: A user-friendly cUrl stand-in
- pnpm: Performant node package manager
- pure: My zsh theme of choice
- tldr: man pages but prettier
- uv: All-in-one Python management
brew install awscli git git-lfs curl httpie jq pnpm fnm pure uv# Reconciliation behaviour for divergent branches
git config pull.ff true
# Alias for one line git log
git config --global alias.olog "log --oneline"
# Alias to print upstream name for working branch
git config --global alias.ref "rev-parse --abbrev-ref HEAD@{upstream}"
# Push with upstream as working branch name
git config --global alias.upush "push $(git branch --show-current)"
# Global git ignore
git config --get core.excludesfile # check if it exists first
mkdir -p ~/.config/git && touch ~/.config/git/ignore # if it doesn't exist then create one in the default location
git config --global core.excludesFile '~/.gitignore'
echo ".idea/" >> ~/.config/git/ignore # example of adding Jetbrains IDE project files to global ignoreKeyboard Shortcuts
I use these shortcuts with QMK compatible keyboards (Ex. Fn + Q will trigger the macro for β β₯ β, which resizes the focused window to the left half of my monitor).
| Shortcut | Action |
|---|---|
β β₯ β |
Resize focused window to left half |
β β₯ β |
Resize focused window to right half |
β β₯ β |
Maximize focused window |
β β₯ β β |
Move focused window to next monitor |
β β₯ P |
Capture screenshot to clipboard |
Trackpad Shortcuts (Only works with Apple force touch trackpads)
| Shortcut | Action |
|---|---|
| Press bottom-left corner | Resize focused window to left half |
| Press bottom-right corner | Resize focused window to right half |
| Press top-left corner | Maximize focused window |
| Press top-right corner | Capture screenshot to clipboard |
Run this command before using this template config to use the correct root directory (requires jq):
cat <<< $(jq ".\"Working Directory\" = \"/Users/$(whoami)\"" iterm2_profile.json) > iterm2_profile.jsonDoesn't stray too far from the default settings, some changes include:
- Dracula themed colors and other cosmetic settings
- Pane splitting opens the new pane in the same directory as the original pane
- 10,000 scroll-back lines
- Natural text editing (Ex. text navigation shortcuts like
β₯ βandβ β)
- Pure prompt initialization
- FNM initialization
- Jetbrains Mono font
- Material Icon Theme
- Dracula Theme