Personal shell, prompt, and editor config for Fedora and macOS.
Stack: Zsh · Starship (Gruvbox Rainbow preset) · zimfw plugin manager · modern Rust CLI tools.
git clone git@github.com:mathielo/dotfiles.git ~/.dotfiles
cd ~/.dotfiles && ./install.shSupported: Fedora and macOS. The script sudos for package installs and may prompt for your password again at chsh.
After the script finishes: log out and back in (or open a new terminal) and set your terminal font to MesloLGS NF. First zsh launch auto-installs zimfw plugins (a few seconds).
-
Installs packages via the native package manager:
- Fedora:
sudo dnf install -y zsh starship zoxide fzf eza bat ripgrep fd-find git-delta - macOS:
brew install zsh starship zoxide fzf eza bat ripgrep fd git-delta+brew install --cask font-meslo-lg-nerd-font
- Fedora:
-
Installs MesloLGS Nerd Font (Fedora only) to
~/.local/share/fontsfrom romkatv/powerlevel10k-media, then runsfc-cache -f. On macOS this is handled by the Homebrew cask above. -
Symlinks configs (prompts before overwriting):
Target Source Method ~/.zshrc~/.dotfiles/zshrcsymlink ~/.zimrc~/.dotfiles/zimrcsymlink ~/.aliases.zsh~/.dotfiles/aliases.zshsymlink ~/.vimrc~/.dotfiles/vimrcsymlink ~/.zshrc.local~/.dotfiles/zshrc.localcopy (per-machine tweaks) ~/.config/starship.tomlstarship preset gruvbox-rainbowgenerated -
Configures git globally:
core.editor=vim,commit.gpgsign=true,deltaas the pager (core.pager,interactive.diffFilter,delta.navigate,merge.conflictstyle=zdiff3). -
Changes the default shell to zsh via
chsh -s "$(command -v zsh)".
zimfw itself is bootstrapped automatically on first zsh launch by zshrc, which downloads zimfw.zsh and runs init to pull all plugins listed in zimrc.
~/.zshrc.local is copied (not symlinked) so each machine can diverge. It's sourced at the end of ~/.zshrc — use it for machine-specific PATH entries, aliases, or env vars. The repo's copy is just a commented template.
| Name | What it does | Quick example |
|---|---|---|
| starship | Cross-shell prompt (Gruvbox Rainbow preset) | See here |
| zoxide | Smarter cd with frecency |
z dot jumps to ~/.dotfiles |
| fzf | Fuzzy finder — Ctrl-R history, Ctrl-T files, Alt-C dirs | vim $(fzf) |
| eza | Modern ls with colors/icons/git status |
ll, eza --tree |
| bat | cat with syntax highlighting + git gutter |
bat README.md |
| ripgrep | Fast recursive grep |
rg TODO |
| fd | Friendlier find |
fd '\.md$' |
| delta | Side-by-side syntax-highlighted git diffs | git diff (auto) |
| Name | What it does | Quick example |
|---|---|---|
| zimfw | Zsh plugin manager | zimfw upgrade |
| zsh-autosuggestions | Greys-out the next command from history | Type gi, press → to accept |
| fast-syntax-highlighting | Colors commands as you type | Typos render red |
| zsh-history-substring-search | Prefix-based up-arrow search | Type git, press ↑ |
| fzf-tab | Replaces Tab completion with an fzf picker | cd <Tab> |
- Plugins:
zimfw upgrade - Starship:
brew upgrade starship/sudo dnf upgrade starship - Dotfiles:
cd ~/.dotfiles && git pull
- Linux:
terminals/Tilix/ - macOS:
terminals/iTerm2/