Cross-platform dev environment setup — Windows, macOS, Ubuntu.
Stack: Neovim (LazyVim) · Zellij · Starship · PowerShell (Win) / Zsh (Unix) · fzf
curl -fsSL https://raw.githubusercontent.com/nkhoit/dotfiles/main/install.sh | bashirm https://raw.githubusercontent.com/nkhoit/dotfiles/main/install.ps1 | iexNote: Run PowerShell as Administrator, or enable Developer Mode (Settings → For Developers) for symlink support.
| Tool | macOS | Ubuntu | Windows |
|---|---|---|---|
| Neovim | brew | GitHub release | winget |
| Starship | brew | installer script | winget |
| Zellij | brew | GitHub release | — |
| fzf | brew | git clone | winget |
| ripgrep | brew | apt | winget |
| fd | brew | apt | winget |
| Node.js | brew | NodeSource | winget |
| Python | brew | apt | winget |
| JetBrains Mono Nerd Font | brew cask | GitHub release | winget |
| Config | Destination |
|---|---|
nvim/ |
~/.config/nvim (Unix) · %LOCALAPPDATA%\nvim (Win) |
starship/starship.toml |
~/.config/starship.toml |
zellij/config.kdl |
~/.config/zellij/config.kdl |
zsh/.zshrc |
~/.zshrc |
powershell/...profile.ps1 |
$PROFILE |
copilot/instructions.md |
~/.copilot/instructions.md |
Existing configs are backed up with a .backup.<timestamp> suffix before linking.
├── install.sh # macOS/Linux installer
├── install.ps1 # Windows installer
├── nvim/ # Neovim (LazyVim) config
├── starship/ # Starship prompt config
├── zellij/ # Zellij terminal multiplexer config
├── copilot/ # GitHub Copilot CLI global instructions
├── powershell/ # PowerShell profile (Windows)
└── zsh/ # Zsh config (macOS/Linux)
- Set your terminal font to
JetBrainsMono Nerd Fontfor icons to render - Neovim plugins install automatically on first launch — just run
nvim - Zsh plugins (autosuggestions, syntax-highlighting) install on first shell open
Both scripts are idempotent — safe to run again to pick up changes:
~/.dotfiles/install.sh # Unix
~/.dotfiles/install.ps1 # WindowsOr just git pull inside ~/.dotfiles — symlinks mean configs update instantly.