1
0
Fork
You've already forked stow-dotfiles
0
No description
  • QML 89.3%
  • Lua 4.6%
  • Shell 2.5%
  • SCSS 2%
  • Go 1%
  • Other 0.6%
2026年07月10日 13:11:12 -04:00
common add notifications to quickshell panel 2026年07月08日 18:48:45 -04:00
debian update niri for debian and quickshell 2026年07月10日 13:11:12 -04:00
gentoo add to quickshell other distros installed 2026年07月08日 19:00:56 -04:00
void changes to quickshell 2026年07月08日 18:58:15 -04:00
.gitignore fix quickshell 2026年07月08日 18:30:37 -04:00
README.md modularize the configs for different distros 2026年06月16日 15:27:49 -04:00

GNU Stow dotfiles

This repository stores dotfiles and config directories for GNU Stow using a modular structure.

Structure

The repository is organized into:

  • common/ - Shared configurations used across all distributions
  • void/ - Void Linux-specific configurations
  • debian/ - Debian-specific configurations
  • gentoo/ - Gentoo-specific configurations

This allows you to maintain distro-specific configs (like fastfetch and niri) while sharing common configs across all systems.

Usage

Stowing common packages

From the root of this repository, stow common packages into your home config directory:

stow -t "$HOME/.config" -d common nvim
stow -t "$HOME/.config" -d common ghostty
stow -t "$HOME/.config" -d common mako

For dotfiles that belong in your home directory:

stow -t "$HOME" -d common zsh

Stowing distro-specific packages

Stow packages from your distribution's directory:

For Void Linux:

stow -t "$HOME/.config" -d void fastfetch
stow -t "$HOME/.config" -d void niri

For Debian:

stow -t "$HOME/.config" -d debian fastfetch
stow -t "$HOME/.config" -d debian niri

For Gentoo:

stow -t "$HOME/.config" -d gentoo fastfetch
stow -t "$HOME/.config" -d gentoo niri

Stowing everything at once

You can stow multiple packages in one command:

# Common packages
stow -t "$HOME/.config" -d common nvim ghostty mako wallust wofi eww
# Distro-specific (example for Void)
stow -t "$HOME/.config" -d void fastfetch niri

Recreating on a new install

  1. Clone this repository into a location you want to keep your dotfiles in:

    git clone <your-repo-url> ~/Projects/gnu-stow
    cd ~/Projects/gnu-stow
    
  2. Make sure GNU Stow is installed on the new machine.

  3. Stow common packages first:

    stow -t "$HOME/.config" -d common nvim ghostty mako wallust wofi
    stow -t "$HOME" -d common zsh
    
  4. Then stow your distro-specific packages (replace void with your distro):

    stow -t "$HOME/.config" -d void fastfetch niri
    

Daily workflow

  • Editing an already stowed file usually does not require any extra Stow command.

  • If you add a new file, move files around, or change a package layout, run stow -R for that package.

  • Examples:

    # Restow a common package
    stow -t "$HOME/.config" -d common -R mako
    # Restow a distro-specific package
    stow -t "$HOME/.config" -d void -R fastfetch
    

Repository layout

The repository uses a modular structure with separate directories for common and distro-specific packages:

common/ # Shared configs used everywhere
├── nvim/
├── ghostty/
├── mako/
└── ...
void/ # Void Linux specific
├── fastfetch/
└── niri/
debian/ # Debian specific
├── fastfetch/
└── niri/
gentoo/ # Gentoo specific
├── fastfetch/
└── niri/

Each package folder contains its internal structure matching the target you stow into. For example, common/nvim/nvim/ will be stowed to ~/.config/nvim/.

Adding new packages

For common packages (used across all distros):

  • Add to the common/ directory
  • Example: common/newapp/newapp/config.conf

For distro-specific packages:

  • Add to the appropriate distro directory
  • Example: void/newapp/newapp/config.conf

If a package needs different configurations per distro, create it in each distro directory instead of common.