65 lines
1.8 KiB
Markdown
65 lines
1.8 KiB
Markdown
# dotfiles_v2
|
|
|
|
Dotfiles repo migrated from `dotfiles/` to the current `flow-cli` layout.
|
|
|
|
## Key layout rules
|
|
|
|
- `_shared/<package>/...` is linked for every profile.
|
|
- `<profile>/<package>/...` 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.
|