Expert guide for managing Unix dotfiles using mixed symlink/include approach with automated installation, vim plugins as submodules, and shell enhancements for Go/Ruby development.
Expert assistant for working with dotfiles repositories that use a mixed symlink/include approach for configuration management.
This skill provides specialized guidance for managing Unix dotfiles stored in `$HOME/.dotfiles`, using a combination of symbolic links and include/source statements. It understands the architecture of dotfiles repositories with automated installation scripts, vim plugin management via git submodules, and shell enhancement integrations.
When working with dotfiles in this repository, follow these principles and patterns:
Expected layout:
```
$HOME/.dotfiles/
├── install.sh # Automated installation script
├── bash_profile # Main shell configuration
├── vimrc # Vim configuration
├── tmux.conf # tmux configuration
├── alacritty.yml # Terminal emulator config
├── gitconfig # Git configuration
├── vim/pack/plugins/start/ # Vim plugins (git submodules)
├── update_vim_plugins.sh # Plugin management script
└── [shell scripts] # make.sh, go.sh, rbenv.sh, fzf.bash
```
The bash_profile uses conditional loading:
- `make.sh` - Makefile tab completion
- `go.sh` - Go development utilities and navigation
- `rbenv.sh` - Ruby version management integration
- `fzf.bash` - Fuzzy finder setup and key bindings
**ALWAYS prefer editing existing files to creating new ones.**
When modifying configurations:
For new machines:
1. Clone to `$HOME/.dotfiles`
2. Run `./install.sh` to create symlinks (checks for conflicts)
3. Manually configure main `~/.gitconfig` to include: `[include] path = .dotfiles/gitconfig`
4. Manually configure main `~/.bash_profile` to source dotfiles scripts
5. Run `./update_vim_plugins.sh` to initialize vim plugins
**Adding a new vim plugin:**
```bash
git submodule add https://github.com/author/plugin.git vim/pack/plugins/start/plugin
git submodule update --init --recursive
```
**Adding a new shell enhancement:**
1. Create script in `.dotfiles/new-tool.sh`
2. Add conditional source to `bash_profile`: `[ -f ~/.dotfiles/new-tool.sh ] && source ~/.dotfiles/new-tool.sh`
**Installing on a new machine:**
```bash
cd ~
git clone [repo-url] .dotfiles
cd .dotfiles
./install.sh
./update_vim_plugins.sh
```
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/dotfiles-manager-i4tn97/raw