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
This commit is contained in:
7
.stowrc
7
.stowrc
@@ -1,3 +1,6 @@
|
|||||||
--dir=pkgs
|
# SPDX-FileCopyrightText: 2025 Kris Lamoureux <kris@lamoureux.io>
|
||||||
|
# SPDX-License-Identifier: 0BSD
|
||||||
|
|
||||||
--target=$HOME
|
--target=$HOME
|
||||||
--verbose
|
--no-folding
|
||||||
|
--verbose=2
|
||||||
|
58
README.md
58
README.md
@@ -5,23 +5,61 @@ SPDX-License-Identifier: 0BSD
|
|||||||
|
|
||||||
## Dotfiles
|
## Dotfiles
|
||||||
|
|
||||||
Use GNU Stow to slow down your home directory listings with my
|
Use GNU Stow (or xstow) to slow down your home directory listings with my
|
||||||
[accumulated sludge](https://web.archive.org/web/20141205101508/https://plus.google.com/+RobPikeTheHuman/posts/R58WgWwN9jp).
|
[accumulated sludge](https://web.archive.org/web/20141205101508/https://plus.google.com/+RobPikeTheHuman/posts/R58WgWwN9jp).
|
||||||
|
|
||||||
### Setup
|
### Setup
|
||||||
|
|
||||||
1. Clone into a subdirectory of `$HOME` and change into it
|
1. Create the `~/.local` directory (if it doesn't already exist)
|
||||||
|
|
||||||
git clone https://git.krislamo.org/kris/dotfiles.git ~/.dotfiles && \
|
mkdir -p ~/.local
|
||||||
cd ~/.dotfiles
|
|
||||||
|
|
||||||
2. List available configuration packages
|
2. Clone the repository
|
||||||
|
|
||||||
basename -a pkgs/*/
|
git clone https://git.krislamo.org/kris/dotfiles.git ~/.local/dotfiles
|
||||||
|
|
||||||
3. Dry run `stow` with `-n` against configuration sets and verify output before
|
3. Navigate to the repository's directory
|
||||||
running
|
|
||||||
|
|
||||||
stow -n $(basename -a pkgs/*/)
|
cd ~/.local/dotfiles
|
||||||
|
|
||||||
- Use `-nvv` for more verbose output.
|
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](https://git.krislamo.org/kris/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](https://reuse.software) 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.
|
||||||
|
Reference in New Issue
Block a user