Files
dotfiles/README.md
2026-02-14 08:35:47 +02:00

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.