Skip to content

Damiloju/dotfiles

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 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

No releases published

Packages

 
 
 

Contributors

Languages

  • Shell 88.9%
  • C++ 7.4%
  • Lua 1.9%
  • Ruby 1.4%
  • Makefile 0.3%
  • Perl 0.1%