Personal dotfiles managed with GNU Stow, organized so each application lives in its own package.
.
├── applications/{dot-config/mimeapps.list,dot-local/share/applications/}
├── backgrounds/dot-config/backgrounds/
├── dunst/dot-config/dunst/
├── flavours/dot-config/flavours/templates/
├── greetd/etc/greetd/
├── hyprland/dot-config/hypr/
├── hypr/dot-config/hypr/
├── install/
├── kitty/dot-config/kitty/
├── rofi/dot-config/rofi/
├── nvim/dot-config/nvim/
├── scripts/{day_night.zsh,wallpick.py,gdtouch.zsh,fzf-git.sh/}
├── starship/dot-config/
├── systemd/dot-config/systemd/user/
├── waybar/dot-config/waybar/
├── yazi/dot-config/yazi/
└── zshrc/{.zshrc,.zshenv}
Each directory mirrors the final path under $HOME (or another target) using the dot- prefix so stow --dotfiles expands hidden paths correctly.
Refer to the GNU Stow manual for usage details. Notes specific to this repo:
- Always pass
--dotfilessodot-*paths resolve to hidden files. greetdtargets the root filesystem; stow it withsudo stow -t / greetd.- Other packages can be stowed from the repo root with
stow --dotfiles <package>.
git clone https://github.com/jfwerbes/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
chmod +x ./install/install.sh && ./install/install.shRemove .git if you plan to version your own changes.
flavours keeps supported apps in sync. Stow flavours alongside themed apps (Waybar, Dunst, Kitty, Rofi, Starship, Hyprland) and run flavours apply <scheme> to switch themes. Templates live in flavours/dot-config/flavours/.
Stow systemd and scripts to enable scheduled theming:
stow --dotfiles systemd scriptsscripts/day_night.zsh picks a wallpaper, applies the matching flavours scheme, and sets it on the first active monitor via hyprctl. Waybar picks up style changes automatically via its reload_style_on_change setting. User units day_night.service and day_night.timer run the script at 06:00 and 17:00 (update the ExecStart path for your username). After stowing, run systemctl --user daemon-reload and systemctl --user enable --now day_night.timer.
Install the expected tools before stowing to avoid missing command errors.
hyprland · hyprpaper · waybar · openrgb · kitty · rofi · dolphin · zsh · starship · zoxide · fzf · fd · eza · bat · neovim · wf-recorder · slurp · jq · wireplumber · pavucontrol · dunst · godot · openssh
flavours · spotify-player · nerd-fonts-anonymice · nerd-fonts-caskaydia-cove
- Modular packages make it easy to enable/disable pieces of the setup.
- Symlinks keep the working tree clean while preserving Git versioning.
- Moving to a new machine is a matter of cloning and stowing the desired packages.

