my arch linux + hyprland dotfiles.
.
├── home/ # files mirrored into selected paths under $HOME
├── etc/ # root-owned files installed into /etc
├── install.sh # install script
└── README.md
home/ contains user config under ~/.config, user files under ~/.local, and the firefox profile template.
etc/ contains system config for NetworkManager, mkinitcpio, kernel cmdline, modprobe, pacman hooks, profile.d, snapper, sysctl, udev, and zsh.
- the repo lives at
~/.dotfiles home/mirrors selected paths under$HOME, mainly~/.configand~/.local/etc/zsh/zshenvbootstraps zsh and pointsZDOTDIRat~/.config/zsh- the firefox profile path is hardcoded near the top of
install.shand points into$XDG_CONFIG_HOME/mozilla/firefox/
git clone git@github.com:hamzahchaudhry/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./install.shinstall.sh:
- runs explicit
ln -sfncommands for the managedhome/paths - installs
home/.ssh/configinto~/.ssh/configwith mode600 - runs explicit
doas install -Dm...commands for every trackedetc/file - reloads
systemctl --user daemon-reloadat the end
it also symlinks:
user.jschrome/
from home/.config/mozilla/firefox/profile/ into the hardcoded profile path at the top of install.sh.
- zsh config lives in
home/.config/zsh/, including cached.zwcfiles - user units live in
home/.config/systemd/user/ - user service helper scripts live in
home/.local/bin/systemd/ - app launch wrappers live in
home/.local/bin/launch/ - waybar scripts live in
home/.config/waybar/scripts/ - vendor app desktop files live in
home/.local/share/applications/ home/.ssh/configis tracked; keys,known_hosts,config.local, andsockets/stay machine-local