Dotf

A small dotfiles manager which maps your declared files to destination with symlinks.

Usage

  • In ~/.dotfiles/ create a new file called .mappings

  • It should be in TOML format with everything under [general] table.

  • The entries should be "source" = "destination" where source should have path relative to ~/.dotfiles/ whereas destination should not.

    example .mappings

    [general]
    # ghostty/config is ~/.dotfiles/ghostty/config
    "ghostty/config" = "/home/username/.config/ghostty/config"
    
    # starship/config is ~/.dotfiles/starship/config
    "starship/config" = "~/.config/starship/config"
    
  • Then, start using the CLI with dotf link or dotf -l to map everything.

  • If you want to remove all links then use dotf remove or dotf -r.

  • If you want to check status of entries on which one is not linked and which is use dotf status or dotf -s.

Usage: dotf [OPTIONS] [COMMAND]

Commands:
  link    Link dotfiles from .dotfiles directory to defined paths
  remove  Remove linked dotfiles
  status  Show the status of dotfiles
  help    Print this message or the help of the given subcommand(s)

Options:
  -f, --force           forcefully link by renaming existing files when conflicts arise
  -d, --dry-run         skip destructive actions while appearing to perform said action
  -s, --skip-conflicts  skip linking for all conflicts that arise
  -h, --help            Print help
  -V, --version         Print version

IF YOU ARE USING GIT OR ANY OTHER VERSION CONTROL REMEMBER TO IGNORE .state FILE IN YOUR ~/.dotfiles/ DIRECTORY.