# dotfiles_v2 Dotfiles repo migrated from `dotfiles/` to the current `flow-cli` layout. ## Key layout rules - `_shared//...` is linked for every profile. - `//...` is linked only for that profile. - A package-local `_root/` maps to absolute paths via sudo. - Example: `_shared/dnsmasq/_root/opt/homebrew/etc/dnsmasq.conf` -> `/opt/homebrew/etc/dnsmasq.conf` - Package target paths are home-relative from package root. - Example: `_shared/bin/.bin/flow` -> `~/.bin/flow` ## Flow config Config files live at: - `_shared/flow/.config/flow/config.yaml` - `_shared/flow/.config/flow/packages.yaml` - `_shared/flow/.config/flow/profiles.yaml` ## External modules (submodule-style packages) This repo uses flow module packages for shared components: - `_shared/nvim/_module.yaml` -> `git@gitea.tomastm.com:tomas.mirchev/nvim-config.git` - `_shared/barg/_module.yaml` -> `git@gitea.tomastm.com:tomas.mirchev/barg-parser.git` Module packages are refreshed by flow on `dotfiles init` and `dotfiles sync`. Useful commands: ```bash flow dotfiles modules list flow dotfiles modules sync ``` ## Profiles - `macos` - `linux` ## Quick start ```bash flow dotfiles init --repo /absolute/path/to/dotfiles_v2 flow dotfiles modules sync flow dotfiles link --profile macos flow bootstrap run --profile macos --var HOSTNAME=mymac --var USER_EMAIL=you@example.com --dry-run ``` ## Migrated packages from original dotfiles - Shared: `bin`, `git`, `gitignore`, `zsh`, `tmux`, `htop`, `addpaths`, `dnsmasq`, `nvim` (module), `barg` (module) - macOS: `ghostty`, `wezterm`, `kitty`, `alacritty`, `karabiner`, `linearmouse`, `rectangle`, `borders`, `sol`, `homebrew`, `setup` - Linux: `kwin` ## Notes - `flow-cli` treats target conflicts as errors (including `_shared` vs profile), so package paths must stay unique.