A macOS-first personal dotfiles repository for shells, terminals, multiplexers, editors, and daily CLI tools. There is no build output here — the files in this repository are the final configuration.
git clone git@github.com:RenovZ/dotfiles.git -- ~/.config/dotfileszsh:
cp ~/.zshrc ~/.zshrc.backup
ln -sf ~/.config/dotfiles/zshrc ~/.zshrcfish:
cd~/.config
mv fish fish.backup
ln -s dotfiles/fish .- Shells:
zshandfishshare a common environment/toolchain setup throughprofile.sh - zsh: Powered by Oh My Zsh, Powerlevel10k,
fzf-git.sh,zoxide, and shell completions - fish: Reuses the shared shell environment via
bass, withtide,fzf, andzoxide - Terminals: Configs for
zellij,wezterm, andghostty - Editors:
helixandzedwith theme auto-switching support - File Tools:
lf,yazi,bat, andzathuraconfigurations - Toolchains: Rust (Cargo), Go, Kubernetes (kubectl/helm/kubebuilder), asdf, pnpm, bun
- Homebrew: Configured to use Tsinghua mirrors by default
| Path | Description |
|---|---|
export.sh | Environment variables and PATH exports (sourced first by profile.sh) |
profile.sh | Shared shell entrypoint; loads exports, Homebrew, language env, and aliases |
zshrc / p10k.zsh | Main zsh config and Powerlevel10k prompt |
fish/ | Fish config, functions, completions, and plugin list |
zellij/ | zellij config with tmux-like keybindings and layouts |
wezterm/ / ghostty/ | Terminal emulator configurations |
helix/ | Helix editor config, language settings, and theme auto-switch helpers |
lf/ / yazi/ / bat/ / zathura/ | File manager and reader tool configs |
cargo/ | Rust Cargo configuration |
legacy/ | Archived configs no longer in active use |
vendor/fzf-git.sh/ | Git submodule providing fzf-git.sh |
This repository assumes it lives at ~/.config/dotfiles. If you clone it elsewhere, update the hardcoded source paths accordingly.
git clone --recurse-submodules <your-repo-url>~/.config/dotfiles
cd~/.config/dotfiles
git submodule update --init --recursiveCreate symlinks selectively. Do not blindly replace your existing setup.
mkdir -p ~/.config
ln -sfn ~/.config/dotfiles/zshrc ~/.zshrc
ln -sfn ~/.config/dotfiles/helix ~/.config/helix
ln -sfn ~/.config/dotfiles/wezterm ~/.config/wezterm
ln -sfn ~/.config/dotfiles/ghostty ~/.config/ghostty
ln -sfn ~/.config/dotfiles/zellij ~/.config/zellij
ln -sfn ~/.config/dotfiles/yazi ~/.config/yazi
ln -sfn ~/.config/dotfiles/zed ~/.config/zedFor fish, merge or symlink the repository fish/ directory into ~/.config/fish, and ensure bass is installed.
Missing dependencies usually just disable optional completions/prompt integrations; the shell remains functional.
- Homebrew
- Oh My Zsh
- Powerlevel10k
- fzf
- fd
- zoxide
- asdf
- fish (optional)
- zellij (optional)
- helix (optional)
- wezterm or ghostty (optional)
- kubectl, helm, kubebuilder (optional, for completions)
profile.shis the central entrypoint shared by bothzshrcandfish/config.fishhomebrew.shenables Tsinghua mirrors; modify or skip it if not neededfish/fish_pluginsdeclarestide,plugin-docker-compose,plugin-git, andbasszellij/config.kdlfollows a tmux-like keybinding scheme for easier switchingwezterm/wezterm.luaandghostty/configboth use translucent windows and a unified visual style- See
helix/README.md,fish/README.md, andlf/README.mdfor component-specific notes
This is a config repository, so there is no test suite. Syntax checks and manual loading are the appropriate validation methods.
# shell scripts
shellcheck *.sh
# fish syntax
fish -n fish/config.fish
# zellij
zellij --check
# helix
hx --health