| Crates.io | dot-linker |
| lib.rs | dot-linker |
| version | 1.0.0 |
| created_at | 2025-06-08 18:55:36.259039+00 |
| updated_at | 2025-06-08 18:55:36.259039+00 |
| description | symlink your dotfiles |
| homepage | https://github.com/dijith-481/dot-linker |
| repository | https://github.com/dijith-481/dot-linker |
| max_upload_size | |
| id | 1705171 |
| size | 27,490 |
symlink's your dots
A simple, GNU Stow-like utility for managing your configuration files (dotfiles) by creating symbolic links. It allows you to keep your dotfiles in a version-controlled directory and link them to their proper locations.
--no-symlink).--visual)..gitignore-style patterns to exclude files from linking.Currently, you need the Rust toolchain to build the project.
# Clone the repository
git clone <your-repo-url>
cd dot-linker
# Build the release binary
cargo build --release
# The binary will be at target/release/dot-linker
./target/release/dot-linker --help
The command-line interface provides all the options you need to manage your links.
Usage: dot-linker [OPTIONS] [DIR]
Arguments:
[DIR] The directory to symlink from
Options:
-t, --target <TARGET> The directory to symlink to
-f, --files <FILE>... The files to symlink highier precedence than dir
-i, --ignore <IGNORE>... The files to ignore
-n, --no-symlink simulate the symlink no actual linking
-v, --visual asks for confirmation before actions
--verbose prints verbose output
-u, --unset unset symlink
-c, --config <CONFIG> path to config file
-h, --help Print help
-V, --version Print version
dot-linker can be configured using an ignore file to prevent certain files or patterns from being linked.
The application looks for an ignore file in the following order:
-c, --config option.$XDG_CONFIG_HOME/dotlinker/dotignore (e.g., ~/.config/dotlinker/dotignore).~/dotfiles/.dotlinker/dotignore).If no ignore file is found, a default one will be created at ~/.config/dotlinker/dotignore with the following content:
# This file is used to ignore files when symlinking
.git*
README.md
LICENSE
Assume your dotfiles are stored in ~/dotfiles.
This will link files like ~/dotfiles/.zshrc to ~/.zshrc.
# The target directory defaults to $HOME/.config if not provided
# and the source directory defaults to the current directory.
cd ~/dotfiles
dot-linker
# Or, more explicitly:
dot-linker -t ~ ~/dotfiles
This removes the symlinks from your home directory. Your original files in ~/dotfiles are safe.
dot-linker --unset -t ~ ~/dotfiles
Simulate linking to see which files would be created, without making any changes.
dot-linker --no-symlink -t ~ ~/dotfiles
Prompt for a (y/n) confirmation before creating each symlink.
dot-linker -v -t ~ ~/dotfiles
Link only your niri and foot configurations into ~/.config.
cd dotfiles
dot-linker -t ~/.config -f nvim alacritty
Link eveything other than niri and foot configurations into ~/.config.
cd dotfiles
dot-linker -t ~/.config -i nvim alacritty
This project is licensed under the MIT License. See the LICENSE file for details.