dfm offers a straightforward way to manage dotfiles without the need for a Python runtime or git submodules. Designed to simplify the process, it supports easy installation and commands for applying, listing, and verifying profiles, making it a clean option for developers looking to maintain their environment seamlessly.
dfm is a standalone, single-binary dotfiles manager designed to streamline the management of configuration files across different systems. The profile format used in dfm takes inspiration from dotbot, yet dfm operates independently without relying on a Python runtime or git submodules.
dfm apply <profile>...
./profiles/<name>.conf.yaml directory relative to the base working directory.| Command | Purpose |
|---|---|
dfm apply <profile>... | Apply one or more profiles sequentially |
dfm diff <profile> | Display planned changes without modifying the system |
dfm doctor | Check for unresolved symlinks in the installation |
dfm status | List the most recently applied profiles along with timestamps |
dfm list | Show all profiles available in the ./profiles/ directory |
Global flags such as -C <dir>, -c <path>, --dry-run, and --dbg are available for enhanced control during execution.
dfm supports several directives, which include:
defaults: Set default configurations.link: Create symlinks for specified files.shell: Execute shell commands with flexibility in defining command scripts.clean: Remove specified symlinks or files.create: Generate necessary files or directories.Additionally, the when: condition can be utilized to gate directives based on the operating system, architecture, or hostname. In instances where the target is not a symlink, dfm will back it up to ~/.dotfiles-backup/<timestamp>/ instead of failing.
For detailed documentation, refer to the full YAML specification.
dfm does not aim to provide templating, secret management, package installation, plugins, or profile inheritance, which keeps it focused and efficient for managing dotfiles.
No comments yet.
Sign in to be the first to comment.