These dotfiles are built for day-to-day development, centered around Neovim, tmux, and zsh. The setup is designed to balance visual polish with practical speed, while staying easy to reproduce with minimal steps.
- Shell:
zsh+oh-my-zsh+powerlevel10k - Editor:
neovim+lazy.nvim+ LSP + DAP - Terminal multiplexer:
tmux - Dashboard animation:
terminaltexteffects (tte)+logo.txt
dashboard preview source: ./logo.txt
- A complete Neovim setup including LSP, completion, and DAP
- Startup UX with
dashboard.nvim, including animated preview effects - Git workflow powered by
lazygit+delta - Dependencies split into Required and Optional groups for gradual adoption
- git
- iTerm2 (manual install)
- neovim
- Node.js (
nvim-dapphp adapter /copilot.lua) - oh-my-zsh
- ripgrep (
fzf-lualive_grep) - fzf
- lazygit
- delta
- tmux
- zsh
- docker (manual install)
- powerlevel10k (manual install)
- terminaltexteffects (tte) (
dashboard.nvimpreview)
This guide uses $HOME/dotfiles as an example path (the installer works from any clone location).
git clone https://github.com/noir4y/dotfiles.git
cd ~/dotfiles
./install.shTo install required dependencies at the same time (macOS + Homebrew):
./install.sh --depsPackages installed with --deps: git, neovim, tmux, zsh, ripgrep, node, fzf, lazygit, delta
(iTerm2 is required but must be installed manually)
To include optional dependencies as well:
./install.sh --optionalAdditional packages installed with --optional: none (only manual-install tools remain optional)
(docker / powerlevel10k must be installed manually)
install.sh creates links for:
~/.zshrc~/.p10k.zsh~/.tmux.conf~/.config/nvim
Existing files are backed up by default. You can also run the linking commands manually if needed.
BACKUP_DIR="$HOME/.dotfiles_backup_$(date +%Y%m%d_%H%M%S)"
mkdir -p "$BACKUP_DIR" "$HOME/.config"
[ -e "$HOME/.zshrc" ] || [ -L "$HOME/.zshrc" ] && mv "$HOME/.zshrc" "$BACKUP_DIR/.zshrc"
[ -e "$HOME/.p10k.zsh" ] || [ -L "$HOME/.p10k.zsh" ] && mv "$HOME/.p10k.zsh" "$BACKUP_DIR/.p10k.zsh"
[ -e "$HOME/.tmux.conf" ] || [ -L "$HOME/.tmux.conf" ] && mv "$HOME/.tmux.conf" "$BACKUP_DIR/.tmux.conf"
[ -e "$HOME/.config/nvim" ] || [ -L "$HOME/.config/nvim" ] && mv "$HOME/.config/nvim" "$BACKUP_DIR/nvim"
ln -sfn ~/dotfiles/zshrc ~/.zshrc
ln -sfn ~/dotfiles/p10k.zsh ~/.p10k.zsh
ln -sfn ~/dotfiles/tmux.conf ~/.tmux.conf
ln -sfn ~/dotfiles/nvim ~/.config/nvimOptions:
./install.sh --dry-run(preview changes)./install.sh --force(replace without backup)./install.sh --deps(install required dependencies via Homebrew)./install.sh --optional(install optional dependencies via Homebrew)
- Import
~/dotfiles/iterm.jsonin iTerm2 (Settings > Profiles > Other Actions... > Import JSON Profiles...). - (Optional) Install
terminaltexteffects (tte)if you want animated dashboard logo output. - Launch
nvimto trigger automatic plugin installation. - Open
:Masonand verify the language servers / formatters you need. - Start
tmuxand confirm keybindings. - Launch
lazygitand checkdeltaintegration output.
- Files:
<leader>f - Grep:
<leader>g - Buffers:
<leader>b - Git status picker:
<leader>e - File tree toggle:
<leader>ft - Window resize mode:
<leader>w - DAP:
<F1>..<F5>,<F9>,<F10>
zshrc: zsh / oh-my-zsh / alias / fzftmux.conf: tmux keybind and pane behaviorlazygit.yml: lazygit + delta settingsnvim/: Neovim config (plugins, keymaps, LSP, DAP, dashboard)logo.txt: dashboard preview source fortte
