Personal dotfiles for macOS and Linux. Managed with make.
git clone <this repo> ~/dotfiles
cd ~/dotfiles
makemake detects the OS and runs either make mac or make linux.
Installs Xcode CLI tools, Homebrew, and packages from Brewfile, then
symlinks everything:
make macInstalls packages via apt, downloads the latest Neovim AppImage, and
symlinks everything:
make linux| Config | Description |
|---|---|
zsh/ |
Zsh config and plugins |
nvim/ |
Neovim config (Lua, lazy.nvim) |
tmux.conf |
Tmux config |
tmux-osx.conf |
macOS-specific tmux overrides |
ghostty/ |
Ghostty terminal config (macOS) |
gitconfig |
Git config |
DefaultKeyBinding.dict |
macOS system-wide keybindings (Emacs-style word movement) |
phoenix.js |
Phoenix window manager config (macOS) |
bash/ |
Bash config |
gdb/, gdbinit |
GDB config and pretty-printers |
pythonrc.py |
Python REPL config |
inputrc |
Readline config (Linux) |
claude/ |
Claude Code skills and config |
codex/ |
Codex skills and config |
| Target | Description |
|---|---|
make all |
Auto-detect OS and run mac or linux |
make mac |
Full macOS setup |
make linux |
Full Linux setup |
make nvim |
Symlink Neovim config only |
make ghostty |
Symlink Ghostty config only (macOS) |
make keybindings |
Symlink DefaultKeyBinding.dict (macOS) |
make tpm |
Install tmux plugin manager |
make claude |
Symlink Claude config and install claude CLI |
make ssh-key |
Generate SSH key if one doesn't exist |
make unlink |
Remove symlinks |