Personal dotfiles for macOS and WSL.
| Tool | Config | Notes |
|---|---|---|
| zsh | .zshrc |
Oh My Zsh, Powerlevel10k, mise, custom functions |
| Powerlevel10k | .p10k.zsh |
Lean style with nerd font glyphs |
| tmux | osx/.tmux.conf, wsl/.tmux.conf |
Prefix C-a, TPM plugins, Solarized dark theme, battery status |
| Alacritty | .alacritty.toml |
MesloLGS NF font, xterm-256color |
| nano | osx/.nanorc |
Syntax highlighting via Homebrew nano |
| Windows Terminal | WindowsTerminal/settings.json |
WSL profile with tmux auto-attach |
tmux fzf fd ripgrep bat lsd diff-so-fancy hub nano tlrc mise
fzf-tab zsh-z zsh-autosuggestions fast-syntax-highlighting
tmux-better-mouse-mode extrakto tmux-resurrect tmux-battery
git clone https://github.com/jediahkatz/dotfiles ~/dotfiles
cd ~/dotfiles
./scripts/install-macos.shThe install script is idempotent — safe to run multiple times. It will:
- Install Homebrew (if missing)
- Install CLI tools via
brew(includingmisefor version management) - Install Oh My Zsh, Powerlevel10k, and zsh plugins
- Install Node.js LTS via mise
- Install TPM and tmux plugins
- Install MesloLGS Nerd Font
- Create symlinks (backing up any existing files to
*.bak)
After installing, restart your terminal or run exec zsh -l.
The MesloLGS Nerd Font is installed automatically
via brew install --cask font-meslo-lg-nerd-font. Set your terminal font to MesloLGS Nerd Font.
mise manages Node.js (and other tool) versions. It reads .nvmrc,
.node-version, and .mise.toml files automatically.
mise use node@20 # use Node 20 in current project
mise use --global node@lts # set global default
mise ls # list installed versionsSee scripts/README for the WSL install order. The WSL scripts (scripts/bash.sh,
scripts/zsh.sh, scripts/powershell.ps1) are older and may need updates.
.
├── .alacritty.toml # Alacritty terminal config (TOML, current format)
├── .alacritty.yml # Alacritty config (legacy YAML format, kept for reference)
├── .p10k.zsh # Powerlevel10k theme configuration
├── .zshrc # Main zsh configuration
├── osx/
│ ├── .tmux.conf # tmux config for macOS
│ └── .nanorc # nano config for macOS (Homebrew paths)
├── wsl/
│ └── .tmux.conf # tmux config for WSL
├── WindowsTerminal/
│ └── settings.json # Windows Terminal settings
└── scripts/
├── install-macos.sh # macOS install script (recommended)
├── bash.sh # Legacy: install zsh on Ubuntu
├── zsh.sh # Legacy: original install notes
├── powershell.ps1 # Legacy: WSL2 setup from PowerShell
└── README # Legacy script run order
| Source | Destination |
|---|---|
~/dotfiles/.zshrc |
~/.zshrc |
~/dotfiles/.p10k.zsh |
~/.p10k.zsh |
~/dotfiles/.alacritty.toml |
~/.alacritty.toml |
~/dotfiles/osx/.tmux.conf |
~/.tmux.conf |
~/dotfiles/osx/.nanorc |
~/.nanorc |
| Function | Description |
|---|---|
copy <file> |
Copy file contents to clipboard (strips trailing newlines) |
mcd <dir> |
Create a directory and cd into it |
fif <term> [dir] |
Find-in-file using ripgrep + fzf |
slice <start:stop:step> [file] |
Python-style line slicing |
diff |
Wraps diff with diff-so-fancy output |
reload |
Reload the shell |