Files
dotfiles/README.md
Kris Lamoureux 4b01fd8c44 Revert to root level package structure for stow
- Document xstow usage for systems lacking GNU Stow
- Add SPDX headers to .stowrc for license compliance
- Add REUSE specification compliance notes to README
2025-10-06 21:47:34 -04:00

2.1 KiB

Dotfiles

Use GNU Stow (or xstow) to slow down your home directory listings with my accumulated sludge.

Setup

  1. Create the ~/.local directory (if it doesn't already exist)

    mkdir -p ~/.local
    
  2. Clone the repository

    git clone https://git.krislamo.org/kris/dotfiles.git ~/.local/dotfiles
    
  3. Navigate to the repository's directory

    cd ~/.local/dotfiles
    
  4. Dry run stow with -n against configuration sets and verify, e.g.,

    stow -n vim
    

Using xstow

On systems without GNU Stow, you can build and use xstow as an alternative for managing symlinks. Build a statically linked binary using xstow-builder, then copy it to ~/.local/bin/ on your target system. You need to specify the target directory -t because xstow does not use the .stowrc file.

Bootstrapping

If you copy xstow to ~/.local/bin before stowing the bash package, you'll hit a bootstrapping problem. You need xstow in your $PATH to easily use it, but you need the updated .bashrc (from the bash package) to add ~/.local/bin to your $PATH in the first place. To break this cycle, invoke xstow directly with its full path for the initial setup.

  1. Place the xstow binary at ~/.local/bin/xstow

  2. Sideline your .bashrc file

    cp ~/.bashrc ~/.bashrc.bak
    
  3. Inside the repository, dry run xstow ( -n ) using the full path

    ~/.local/bin/xstow -t "$HOME" -v 2 -n bash
    
    • Remove -n only once you are sure it will work as intended
    • After stowing the bash package, start a new shell or source .bashrc

Licensing

This project follows the REUSE specification.

Efforts have been made to include SPDX license headers and a LICENSES directory with the appropriate licenses, since not all configurations in these dotfiles are original.

Please ensure that the repository passes the reuse lint check.