1fd8e7e77375c34ad9dc9d1126002f72594b9c54
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.
dotfiles
Dotfiles managed as a bare git repo checked out over $HOME, for machines
running CachyOS with KDE Plasma.
Bootstrapping a new machine
mkdir -p ~/.config/fish/functions
curl -fsSL https://git.alexion.dev/alexion/dotfiles/raw/branch/main/.config/fish/functions/dot.fish \
-o ~/.config/fish/functions/dot.fish
fish -c 'dot init'
Commands
| Command | Description |
|---|---|
dot help |
Lists available commands. |
dot init |
Bootstraps the dotfiles repo on a new machine. |
dot install <pkgs> |
Installs the given pacman packages and appends them to the tracked list (~/.config/dot/packages/pacman). |
dot install --restore |
Reinstalls every package from the tracked list. |
dot kde apply |
Pushes every manifest entry's declared value onto the live system. |
dot kde diff |
Reports every schema-backed setting whose live value differs from its default, tagged declared or undeclared. |
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 for the dot tool's internal
architecture, bootstrap logic, subcommand dispatch, and test suite.
Keybindings
See keybindings.md for custom and useful default keybindings across configured tools (currently: tmux).
Description
Languages
Nix
50.5%
TypeScript
48%
Shell
1.2%
Lua
0.3%