My personal dotfiles, managed as a git repo with a symlink-based install script.
dotfiles/
├── home/ # Files symlinked to $HOME
│ ├── .gitconfig
│ ├── .zshenv
│ ├── .profile
│ ├── .npmrc
│ └── .commitlintrc.json
├── config/ # Directories symlinked to ~/.config/
│ ├── nvim/ # Neovim — see README inside
│ ├── zsh/ # Zsh configuration
│ ├── sheldon/ # Sheldon (zsh plugin manager)
│ ├── starship/ # Starship prompt
│ ├── fastfetch/ # System info
│ └── ghostty/ # Ghostty terminal
├── install.sh # Symlink installer
├── .pre-commit-config.yaml # Pre-commit hooks (lint, format, secrets)
├── .gitignore
└── LICENSE
| Config | Description |
|---|---|
| nvim | Lazy.nvim + Snacks.nvim + Kanagawa. See config/nvim/README.md for plugins, keybindings, and language servers. |
| zsh | Vi-mode, autosuggestions, history substring search, fzf, aliases |
| sheldon | Lightweight zsh plugin manager configuration |
| starship | Cross-shell prompt with Kanagawa colors |
| fastfetch | System info display |
| ghostty | Fast terminal emulator |
| File | Description |
|---|---|
.gitconfig |
Delta, difftastic, absorb, custom aliases |
.zshenv |
Points ZDOTDIR to ~/.config/zsh/ |
.profile |
Sources cargo env and envman load script |
.npmrc |
Sets npm global prefix to ~/.npm-global |
.commitlintrc.json |
Conventional commits enforcement |
- Linux (Fedora tested)
- Zsh 5.0+
- Git 2.20+
- Neovim 0.12+ (for nvim config)
git clone https://github.com/izayoilv/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./install.shThe install.sh script creates symlinks from ~/.config/ and $HOME to the repo. Re-run after updates.
MIT © 2026 IzayoiLv