# Dotfiles Personal configuration files managed with GNU Stow. ## Contents - **tmux**: Terminal multiplexer configuration - **kitty**: Modern terminal emulator configuration - **nvim**: Neovim configuration (AstroNvim based) - **fish**: Fish shell configuration with Fisher plugins ## Installation ### Prerequisites ```bash # Install Homebrew (if not installed) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # Install GNU Stow brew install stow ``` ### Clone and Deploy ```bash # Clone the repository git clone https://git.anvil.it.com/kaffa/dotfiles.git ~/dotfiles # Navigate to dotfiles directory cd ~/dotfiles # Deploy configurations (choose what you need) stow tmux # Deploy tmux config stow kitty # Deploy kitty config stow nvim # Deploy nvim config stow fish # Deploy fish config # Or deploy all at once stow tmux kitty nvim fish ``` ## Management ### Add new configuration ```bash # Example: Adding a new tool configuration mkdir -p ~/dotfiles/toolname/.config/toolname cp -r ~/.config/toolname/* ~/dotfiles/toolname/.config/toolname/ stow toolname ``` ### Update existing configuration Configurations are symlinked, so any changes made to the actual config files will automatically be reflected in the repository. Just commit and push the changes: ```bash cd ~/dotfiles git add . git commit -m "Update configurations" git push ``` ### Remove configuration ```bash # Unstow (remove symlinks) stow -D tmux # Or remove all stow -D tmux kitty nvim fish ``` ## Structure ``` ~/dotfiles/ ├── tmux/ │ └── .tmux.conf ├── kitty/ │ └── .config/ │ ├── kitty.conf │ └── dracula.conf ├── nvim/ │ └── .config/ │ └── nvim/ └── fish/ └── .config/ └── fish/ ``` ## Notes - Original configuration files are backed up to `~/backups/` before stowing - Use `stow -n ` to simulate what will happen without making changes - Use `stow -v ` for verbose output to see what's being linked