dotcli: add dot setup folders (XDG short-name migration)
Adds a dot setup subcommand family (idempotent, re-runnable machine-setup tasks) with a folders task that brings the 8 standard XDG user directories under a fixed short-name convention (Desktop -> .desktop, Documents -> doc, Downloads -> dwn, Music -> mus, Pictures -> pic, Videos -> vid, Templates/Public -> .ignoreme), hardcoded rather than read from ~/.config/user-dirs.dirs -- that file is a separate, manually tracked dotfile whose values can drift or go stale, and the migration must not depend on it being correct. The nested Pictures/Screenshots folder is renamed to pic/screenshots in the same pass. Content left behind in a legacy full-named folder by a fresh XDG-defaults install -- empty or not -- is merged into its short-named replacement. A same-named collision between a legacy folder and its target is never overwritten: it is skipped, reported, and the legacy folder is left in place rather than deleted while something in it could not be merged. --dry-run previews what would move/skip without touching the filesystem. xdg-user-dirs-update runs once afterward to notify running apps/portals.
This commit is contained in:
2
.github/README.md
vendored
2
.github/README.md
vendored
@@ -25,6 +25,8 @@ fish -c 'dot init'
|
||||
| `dot kde help` | Lists `dot kde`'s subcommands. |
|
||||
| `dot kde save <identifier>` | Reads a KDE setting's current live value and declares it in the manifest (`~/.config/dot/kde-manifest`). |
|
||||
| `dot kde save` | Refreshes every already-declared manifest entry's value from the live system. |
|
||||
| `dot setup` | Runs every machine-setup task (currently just `folders`). |
|
||||
| `dot setup folders` | Brings the 8 standard XDG user directories (`~/Desktop`, `~/Documents`, ...) under a fixed short-name convention (`~/.desktop`, `~/doc`, ...). |
|
||||
| `dot <git>` | Everything else is passed to `git`. |
|
||||
|
||||
See [CLAUDE.md](../.config/dot/CLAUDE.md) for the `dot` tool's internal
|
||||
|
||||
Reference in New Issue
Block a user