Proper dotfiles are the very heart of an efficient working environment.
- Terminals: GhostTTY
- Shell: Fish
- Editor: NeoVim
- Colorscheme: GitHub Light & Dark
- Font: Fira Code from Nerd Fonts
On macOS, Homebrew is the package manager.
Clone this repository and optionally bootstrap your system:
git clone [email protected]:mavam/dotfiles.git ~/.dotfiles
cd .dotfiles
./bootstrapThe bootstrap script will ask you whether you'd like to setup specific components.
The Bash utility dots links configuration content from this repository
into your prefix (default: $HOME), treating each top-level directory as a
"tool" whose contents mirror the layout you want under $HOME. Add files to a
tool directory and, with a root mapping, they will be picked up automatically.
Install everything:
./dots installInstall a subset (your shell expands globs before the script runs):
./dots install git gpg "neovim*"Preview the plan without touching the filesystem:
./dots diff gitRemove previously linked files:
./dots remove gitInspect overall status or the current environment:
./dots list
./dots doctorThe script is careful about existing files unless you pass --force. Use the
--prefix DIR flag to dry-run installs into an alternate location.
To add a new tool, create a directory (e.g., foo/) and drop your config files
inside. When you need custom targets or directory preparation, add a
foo/tool.config.yaml manifest:
root:
target: "~/.config/fish"
directories:
- path: "~/.gnupg"
permissions: "700"root mirrors the tool directory under the given target so new files are picked up automatically, and the optional directories entries let you pre-create sensitive paths with the right permissions.