yar-kravtsov
today at 12:06 PM
Great question! GNU Stow and lnk solve similar problems but with different approaches:
GNU Stow:
- Package-based structure: Requires organizing dotfiles into "packages" (subdirectories)
- Symlink-only: Just handles symlinking, no version control integration
- Manual Git: You manage Git separately (git clone ā stow package-name)
- Perl dependency: Requires Perl to be installed
- No safety net: No atomic operations or rollback if something goes wrong
lnk:
- File-based workflow: Takes your existing dotfiles as-is, moves them to managed location
- Git-integrated: Wraps Git commands (lnk push, lnk pull) for seamless workflow
- Atomic operations: If something fails, automatically rolls back changes
- Single binary: No dependencies, just download and run
- New machine workflow: lnk init -r repo && lnk pull handles clone + restore in one step
Key Difference in Workflow:
Stow approach:
# Organize files into packages first
mkdir -p ~/.dotfiles/vim/.config/nvim
mv ~/.config/nvim/init.lua ~/.dotfiles/vim/.config/nvim/
git add . && git commit
# On new machine:
git clone repo ~/.dotfiles
stow vim # Creates symlinks
lnk approach:
# Start with files where they are
lnk add ~/.config/nvim/init.lua # Moves and links automatically
lnk push "added nvim config"
# On new machine:
lnk init -r repo && lnk pull # Clone + restore in one command
Bottom line: Stow is a pure symlinking tool that you combine with Git manually. lnk is an opinionated workflow that handles the entire dotfiles lifecycle (move ā version ā sync ā restore).
delusional
today at 1:07 PM
[flagged]
justusthane
today at 1:11 PM
The comment or the code? The comment does not read like AI to me, but who knows.