Reproducible workstation dotfiles for this Ubuntu machine.
config/: app configs (i3,kitty,nvim,picom,gtk-3.0,gtk-4.0)home/: shell/login files (.bashrc,.profile, optional.Xresources,.xinitrc,.gitconfig)localbin/: user-facing helper scriptsbootstrap/: install/link scriptssystem/: verification scripts and tracked system metadatadocs/: practical usage docs and generated repo map
nnn behavior currently lives in shell startup plus localbin/nnn-opener; there is
no tracked config/nnn/ tree at the moment.
git clone <remote> ~/workspace/dotfiles
cd ~/workspace/dotfiles
./bootstrap/install.sh
./bootstrap/link.sh- i3 binds execute helper scripts by absolute repo path (
/home/sf/workspace/dotfiles/localbin/...). bootstrap/link.shalso symlinks everylocalbin/*file into~/.local/binfor shell use.~/.local/binis prepended in bothhome/.bashrcandhome/.profile.- Firefox launch from i3 goes through
localbin/firefox-session, which prefersfoxbefore genericfirefox. - Per-workspace i3-resurrect save/restore wrappers use double-press confirmation and prune Firefox + VS Code replay commands from
workspace_<n>_programs.json.
docs/architecture.md: repo structure, invariants, and how bootstrap/runtime/verification fit togetherdocs/bootstrap.md: install/link flow, idempotency, and recoverydocs/i3-workflow.md: keybind workflow, save/restore behavior, and i3-resurrect gotchasdocs/command-surface.md: user-facing scripts, aliases/functions, and safety notesdocs/command-surface-policy.md: command-surface invariantsdocs/repo-map.md: generated structural index of the tracked tree
make repo-map
i3 -C -c config/i3/config
./system/check-no-external-user-paths.sh
./system/verify-i3-helper-paths.shhost/<hostname>/link.shis sourced at the end ofbootstrap/link.shwhen present.- Existing files are never overwritten by link script; they are moved to
~/dotfiles_link_backup_<timestamp>/. - This repo does not track secrets, SSH keys, browser profiles, or runtime caches.