Modern, fully automated development environment for Linux/WSL.
git clone https://github.com/yourusername/dotfiles ~/.dotfiles
cd ~/.dotfiles
./install.shWait 5-10 minutes, then:
source ~/.bashrc
nvim # First launch installs plugins
tmuxThat's it! Everything is configured.
- Neovim with LazyVim
- Node.js via fnm (Fast Node Manager)
- Rust via rustup
- Go compiler
- Build tools (gcc, cmake, etc.)
- Rust (rust-analyzer, rustfmt)
- TypeScript/JavaScript (tsserver, prettier)
- Vue.js (vue_ls)
- Go (gopls, goimports)
- C/C++ (clangd, clang-format)
- HTML/CSS (html, cssls, prettier)
- Tailwind CSS
- Lua, Bash, JSON, YAML
- ripgrep - Better grep
- fd - Better find
- bat - Better cat
- eza - Better ls
- fzf - Fuzzy finder
- delta - Better git diff
- zoxide - Smarter cd
- gh - GitHub CLI
- lazygit - Git TUI
- Tmux with TPM + plugins
- Gruvbox theme everywhere
- Claude Code integration
./install.sh # Full installation (recommended)
./install.sh --minimal # Just dotfiles + neovim
./install.sh --force # Reinstall everything- Claude Code integration:
<leader>oato ask Claude - LSP everywhere: Full language support out of the box
- Auto-formatting: Format on save for all languages
- Fuzzy finding:
Ctrl+pfor files - Treesitter: Advanced syntax highlighting
- Prefix:
Ctrl+a(notCtrl+b) - Vi-mode keybindings
- Mouse support enabled
- Session persistence with resurrect/continuum
- Gruvbox theme
- fnm for Node.js (faster than nvm)
- Modern aliases (ls→eza, cat→bat, cd→zoxide)
- fzf integration (
Ctrl+rfor history,Ctrl+tfor files) - Git prompt with status
cd my-rust-project
nvim
# rust-analyzer, rustfmt, crates.nvim all active
# <leader>rr to run, <leader>ct for crate infocd my-nextjs-project
nvim
# tsserver, vue_ls, tailwindcss LSP all active
# Prettier formatting on savecd my-go-project
nvim
# gopls, goimports all active
# Format on savecd ~/.dotfiles
git pull
./install.sh --force:Lazy syncOr use Claude Code skill: /update-neovim-plugins
# Backup before changes
~/.dotfiles/.claude/skills/backup-and-restore/backup.sh "reason"
# Restore from backup
~/.dotfiles/.claude/skills/backup-and-restore/restore.shCheck installation log:
cat ~/.dotfiles-install.logCheck Neovim health:
nvim +checkhealthSee SETUP.md for detailed troubleshooting.
Create ~/.bashrc.local:
export MY_VAR="value"
alias myalias="command"Add to nvim/lua/plugins/custom.lua:
return {
{ "author/plugin-name", opts = {} },
}.
├── install.sh # Main installation script
├── scripts/ # Modular installation scripts
├── bash/ # Bash configs (*.bash auto-sourced)
├── git/ # Git configs
├── nvim/ # Neovim config (LazyVim)
│ └── lua/
│ ├── config/ # Core settings
│ └── plugins/ # Plugin configs
├── tmux/ # Tmux config
├── vim/ # Legacy vim (optional)
└── .claude/skills/ # Claude Code skills
- Ubuntu 20.04+, Debian 11+, or WSL2
- ~2GB disk space
- Internet connection
- sudo access
MIT
Built with: