Stower is a tool designed to help you manage and organize your files using GNU Stow. It simplifies the process of creating symlinks for your files in a specified target directory while keeping the original files organized in a stow directory. Stower focuses solely on creating symlinks and does not support removing or modifying existing stows. Stower can be run in two modes: automatic mode using a configuration file, and manual mode.
In automatic mode, Stower reads a configuration file that specifies the stow directory, the target directory, the files to manage, and the package name for each package. This mode is suitable for managing multiple packages/applications at once.
# Default stow directory
default_stow_dir=~/configurations
# Zsh configuration
[zsh]
files=~/.zshrc ~/.zprofile
target=~
# Neovim configuration
[nvim]
files=~/.config/nvim/init.vim ~/.config/nvim/coc-settings.json
target=~/.config/nvim
stow_dir=~/custom_stow
# Tmux configuration
[tmux]
files=~/.tmux.conf ~/.tmux.conf.local
target=~
# Git configuration
[git]
files=~/.gitconfig ~/.gitignore
target=~
- Clone the repository and navigate to the directory.
- Make the
stower
script executable:chmod +x stower
- Run Stower:
./stower
- Select
1
for automatic mode. - Ensure a file named
stower_config
is in the current directory. - Stower will read the configuration file and process each package as specified.
In manual mode, Stower will guide you through the process of selecting the stow directory, the target directory, the files you want to manage, and the package name. This mode is suitable for managing a single package/application at a time.
- Select the stow directory: Choose where your packages will be stored.
- Select the target directory: Choose where symlinks to your packages will be created.
- Specify the files to manage: Enter the paths of the files you want to manage.
- Specify the package name: Enter a name for the package.
- Clone the repository and navigate to the directory.
- Make the
stower
script executable:chmod +x stower
- Run Stower:
./stower
- Select
2
for manual mode. - Follow the prompts to select the stow directory, target directory, files to manage, and package name.
Feel free to open issues and submit pull requests on the GitHub repository.