Personal dotfiles managed with GNU Stow.
This repository contains configurations for various command-line tools and applications, organized as modular packages that can be independently installed using GNU Stow.
- bat - Configuration for bat, a cat clone with syntax highlighting
- kitty - Terminal emulator configuration including Dracula theme and custom settings
- nvim - Neovim configuration with LazyVim setup
- zellij - Configuration for Zellij, a terminal workspace manager
- zsh - Zsh shell configuration with support for machine-specific aliases
- GNU Stow
- Git
Install GNU Stow:
# macOS
brew install stow
# Debian/Ubuntu
sudo apt install stow
# Arch Linux
sudo pacman -S stow- Clone this repository to your home directory:
git clone https://github.com/yourusername/dotfiles.git ~/.dotfiles
cd ~/.dotfiles- Install packages using GNU Stow:
# Install all packages
stow */
# Or install specific packages
stow zsh
stow nvim
stow kitty
stow bat
stow zellijThis will create symlinks from your home directory to the files in this repository.
To install (symlink) a specific package:
stow <package-name>To remove the symlinks for a package:
stow -D <package-name>To update symlinks after making changes:
stow -R <package-name>Each package follows the GNU Stow convention where the directory structure mirrors your home directory:
dotfiles/
├── zsh/
│ └── .zshrc
├── nvim/
│ └── .config/
│ └── nvim/
│ └── init.lua
└── kitty/
└── .config/
└── kitty/
└── kitty.conf
When you run stow zsh, it creates a symlink at ~/.zshrc pointing to ~/.dotfiles/zsh/.zshrc.
The zsh configuration supports machine-specific aliases and settings through .zshrc_aliases file, which can contain host-specific configurations and secrets.
- Modular configuration management
- Easy to install/uninstall individual packages
- Version controlled configurations
- Support for machine-specific customizations
- Clean separation of concerns
Personal configuration files - use at your own discretion.