git clone git@github.com:r0mankon/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
./setup.shsetup.sh is the unified entrypoint. It detects OS (macOS/Linux) and runs the right path. Use DRY_RUN=1 ./setup.sh to preview.
setup.sh— interactive wizard, dry-run aware, tracks state.setup.private.sh— secrets / private overlays (separate repo).setup.claude-dual.sh— installclaude-workdual-config wrapper.stow-all.sh— symlink everystow/*/package into$HOMEvia GNU Stow.stow/— packages:zsh,git,ghostty,lazygit,swiftbar,bin, etc.brew.txt,apt.txt— package manifests.NOGIT/— globally git-ignored scratch / backups.
- Editor: Meslo / Menlo, JetBrains Mono, Cascadia Code
- Terminal: Meslo Nerd Font (P10k-patched), Cascadia Mono PL
Some packages aren't in apt and must be downloaded manually from upstream.
brew tap gromgit/homebrew-fuse
brew install ntfs-3g-macThen disable SIP in recovery, replace mount_ntfs, re-enable SIP:
csrutil disable # in recovery
sudo mount -uw /
sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.original
sudo ln -s /usr/local/sbin/mount_ntfs /sbin/mount_ntfs
csrutil enable # in recoverystowconflict: target file already exists. Remove or back up, re-run.- zoxide warning: zoxide init must be last line in
.zshrc._ZO_DOCTOR=0suppresses it for Claude Code Bash tool which prependscd. compinitinsecure dirs:compaudit | xargs chmod g-w,o-w.- Missing completions: drop files in
~/.zsh/completions/(already on$FPATH).
~/.config/user-dirs.dirs— don't blindly delete on Linux; it defines XDG user dirs.