Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🏠 Dotfiles

✨ One command to rule them all ✨

macOS Neovim Tmux Zsh Lua

Dotfiles for bootstrapping and backing up my Mac development environment. A single ./install script symlinks configs into place and installs all dependencies via Homebrew.


📦 What's Included

Module Description
🐚 zsh Oh My Zsh + Powerlevel10k, autosuggestions, syntax highlighting, lazy NVM, custom aliases
📝 nvim Neovim with Lazy.nvim — LSP, Treesitter, Telescope, Neo-tree, DAP & 40+ plugins
🖥️ tmux Vi-mode, true color, mouse support, session persistence (resurrect/continuum), modular config
🍺 homebrew Brewfile with CLI tools, languages, services, and fonts
🦥 lazygit Tokyo Night-themed lazygit config
scripts t (tmux session switcher), update (update all tools), nvim-health (setup checker)
📗 nvm Default global npm packages (LSP servers, formatters, linters)
🖼️ iterm Exported iTerm2 profile backup
🔧 git Git config with aliases, global gitignore
🍎 macos macOS system preferences script (keyboard, Finder, Dock, screenshots)
📐 editorconfig 2-space indent (4 for PHP/Python), LF endings, UTF-8
🤖 claude Claude Code settings → ~/.claude/settings.json (gitignored)

🚀 Installation

chmod +x install
./install
📋 What the install script does
Step Action
1️⃣ Install Xcode Command Line Tools (if missing)
2️⃣ Install Oh My Zsh (if missing)
3️⃣ Install Homebrew (if missing)
4️⃣ Symlink dotfiles (~/.zshrc, ~/.zprofile, ~/.p10k.zsh, ~/.tmux.conf, ~/.config/nvim, etc.)
5️⃣ Run brew bundle to install everything in the Brewfile
6️⃣ Set up NVM with default packages
7️⃣ Symlink lazygit, editorconfig, & git config
8️⃣ Clone TPM (Tmux Plugin Manager)
9️⃣ Apply macOS system preferences
🔟 Create ~/Code workspace directory

🧰 Makefile

You can also install modules selectively:

make brew        # Just install Homebrew packages
make nvim        # Just symlink Neovim config
make tmux        # Just set up tmux
make zsh         # Just link zsh config
make nvm         # Just set up NVM defaults
make update      # Update everything (brew, nvim plugins, tpm, omz)
make clean       # Remove all symlinks (uninstall)

🗂️ Structure

.
├── 🍺 homebrew/Brewfile           # Homebrew dependencies
├── ⚙️  install                     # Bootstrap script
├── 🗑️  uninstall                   # Remove all symlinks
├── 📋 Makefile                    # Selective install targets
├── 🖼️  iterm/backup.itermexport    # iTerm2 profile
├── 🦥 lazygit/config.yml          # Lazygit theme
├── 🔧 git/
│   ├── gitconfig                  # Git aliases & settings
│   └── .gitignore_global          # Global ignores
├── 🍎 macos/
│   └── defaults.sh               # macOS system preferences
├── 📝 nvim/                       # Neovim config (Lazy.nvim)
│   ├── init.lua
│   ├── lua/user/                  # Options, keymaps, plugin specs
│   └── snippets/                  # Snippets (TS, TSX)
├── 📗 nvm/default-packages        # Global npm packages
├── ⚡ scripts/
│   ├── t                          # Tmux session switcher
│   ├── update                     # Update all tools
│   └── nvim-health                # Neovim setup health check
├── 🖥️  tmux/
│   ├── tmux.conf                  # Core settings
│   ├── theme.conf                 # Status line & colors
│   ├── keybindings.conf           # Key bindings
│   └── plugins.conf               # TPM plugin declarations
├── 🐚 zsh/
│   ├── .zprofile                  # Login shell (Homebrew)
│   ├── .zshrc                     # Shell config
│   ├── .p10k.zsh                 # Powerlevel10k theme
│   └── custom/
│       ├── aliases.zsh            # Custom aliases
│       ├── tools.zsh              # pyenv & Docker init
│       └── local.zsh.example      # Machine-specific template
├── 📐 .editorconfig               # Editor formatting rules
└── 🤫 .hushlogin                  # Suppress login banner

🛠️ Key Tools

💬 Languages & Runtimes

Node.js Python Go Lua Deno TypeScript

🔧 CLI Tools

ripgrep · fzf · lazygit · awscli · kubectl · buf · wget · ngrok

🗄️ Services

Redis RabbitMQ PostgreSQL

✏️ Neovim Highlights

🎨 Tokyo Night colorscheme · 🔭 Telescope fuzzy finder · 🧠 LSP (TypeScript, Lua, Bash, Vue, PHP, JSON, CSS/HTML) · 💡 nvim-cmp completions · 🧹 conform.nvim formatting · 🔍 nvim-lint · 🐛 DAP debugging · 📊 Gitsigns · 📑 Bufferline · 🚀 Lualine


⌨️ Custom Aliases

Alias Command Description
lg lazygit 🦥 Open lazygit
wip git add . && git commit -m 'chore: wip' 💾 Quick work-in-progress commit
code cd ~/Code 📂 Jump to projects
.. / ... / .... cd up 1/2/3 levels 🔼 Quick navigation
ll ls -lAFh 📋 Detailed file listing
mkcd <dir> mkdir -p && cd 📁 Create & enter directory

🔄 Maintenance

update          # Run from anywhere — updates brew, nvim plugins, tpm, omz
nvim-health     # Check that LSP servers, formatters, and tools are installed

🖥️ Machine-Specific Overrides

Create zsh/custom/local.zsh (gitignored) for settings that shouldn't be committed:

cp zsh/custom/local.zsh.example zsh/custom/local.zsh

🙏 Credits

📝 Neovim config heavily influenced by Jess Archer — see their course on Laracasts
Tmux session script (t) inspired by ThePrimeagen
💡 More dotfile inspiration at dotfiles.github.io

⚡ Happy hacking! ⚡

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages