Skip to content

mathielo/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

Personal shell, prompt, and editor config for Fedora and macOS.

Stack: Zsh · Starship (Gruvbox Rainbow preset) · zimfw plugin manager · modern Rust CLI tools.

Install

git clone git@github.com:mathielo/dotfiles.git ~/.dotfiles
cd ~/.dotfiles && ./install.sh

Supported: 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).

What install.sh does

  1. 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
  2. Installs MesloLGS Nerd Font (Fedora only) to ~/.local/share/fonts from romkatv/powerlevel10k-media, then runs fc-cache -f. On macOS this is handled by the Homebrew cask above.

  3. Symlinks configs (prompts before overwriting):

    Target Source Method
    ~/.zshrc ~/.dotfiles/zshrc symlink
    ~/.zimrc ~/.dotfiles/zimrc symlink
    ~/.aliases.zsh ~/.dotfiles/aliases.zsh symlink
    ~/.vimrc ~/.dotfiles/vimrc symlink
    ~/.zshrc.local ~/.dotfiles/zshrc.local copy (per-machine tweaks)
    ~/.config/starship.toml starship preset gruvbox-rainbow generated
  4. Configures git globally: core.editor=vim, commit.gpgsign=true, delta as the pager (core.pager, interactive.diffFilter, delta.navigate, merge.conflictstyle=zdiff3).

  5. 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.

Per-machine tweaks

~/.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.

Installed tools

CLI utilities

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)

Zsh plugins (managed by zimfw)

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>

Keeping things up to date

  • Plugins: zimfw upgrade
  • Starship: brew upgrade starship / sudo dnf upgrade starship
  • Dotfiles: cd ~/.dotfiles && git pull

Terminal profiles

About

Personal shell, prompt, and editor config for Fedora and macOS.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors