Arch + Hyprland dotfiles, managed as a detached git dir over $HOME.
- The git dir lives at
~/.dots.git, the work tree is$HOME. Plaingitnever discovers it — all interaction goes through thedotsfish function (.config/fish/conf.d/dots.fish). - .gitignore ignores everything (
/*) and explicitly allow-lists what gets tracked. - A gitleaks pre-push hook (.config/git-hooks/pre-push) scans every outgoing commit for secrets.
- No font files, no vendored blobs: everything installable comes from the
package lists in .config/packages (
repo.txt= explicit native,aur.txt= explicit AUR). Regenerate them with thepkgsyncfish function.
Hyprland, eww (bar / sidebar / calendar), kitty, fish, neovim, rofi, dunst,
btop, mpv, GTK/Qt theming, fontconfig (IBM Plex + JetBrainsMono Nerd Font,
Arabic → IBM Plex Sans Arabic), and assorted scripts under stuff/scripts.
git clone --no-checkout https://github.com/61021/dots.git ~/.dots.tmp
mv ~/.dots.tmp/.git ~/.dots.git; rm -rf ~/.dots.tmp
git --git-dir=$HOME/.dots.git --work-tree=$HOME config core.worktree $HOME
git --git-dir=$HOME/.dots.git --work-tree=$HOME config core.hooksPath '~/.config/git-hooks'
git --git-dir=$HOME/.dots.git --work-tree=$HOME checkout main
paru -S --needed - < ~/.config/packages/repo.txt
paru -S --needed - < ~/.config/packages/aur.txtcheckout refuses to overwrite existing files — move them aside first.