Skip to content

Repository files navigation

Dotfiles

Personal configuration files managed with GNU Stow.

Structure

dotfiles/
├── bash/           # Bash config (.bashrc)
├── fish/           # Fish config (.config/fish/)
├── git/            # Git config (.gitconfig, .gitignore_global)
├── gpg/            # GPG config (.gnupg/)
├── nvim/           # Neovim config (.config/nvim/)
├── ssh/            # SSH config (.ssh/)
├── tmux/           # Tmux config (.tmux.conf)
├── zsh/            # Zsh config (.config/zsh/)
└── setup-system.sh # System provisioning script

Quick Install

git clone https://github.com/youruser/dotfiles.git ~/dotfiles
cd ~/dotfiles
./setup-system.sh

Manual Stow

cd ~/dotfiles
stow fish git nvim tmux zsh bash ssh gpg

Restow a single package:

stow -R fish

Requirements

  • GNU Stow
  • Fish shell (optional, but recommended)
  • Neovim >= 0.9

Provisioning Script

The setup-system.sh script supports:

  • Arch Linux (pacman + yay)
  • Debian/Ubuntu (apt)
  • Fedora/RHEL (dnf)

It installs:

  • Core packages (git, zsh, tmux, neovim, etc.)
  • Development toolchains (Rust, Node.js via fnm/nvm, Go, Bun)
  • Shell enhancements (atuin, zoxide, fzf, delta)
  • Python tools via pipx
  • Then stows all dotfiles

Key Configs

Tool Config
Shell Fish (primary), Zsh, Bash
Editor Neovim (lazy.nvim, catppuccin, LSP)
Terminal Tmux (prefix C-a)
Git Delta pager, useful aliases
History Atuin (syncable shell history)
Navigation Zoxide (smart cd)
Node fnm (fast node manager)

Secrets

Never commit secrets. The .gitignore excludes:

  • SSH private keys
  • GPG private keys
  • Any *.local files

Add machine-specific config in ~/.config/fish/config.fish.local or similar.

About

⚡ Personal collection of .dotfiles configs

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages