About
dotfm is a simple and easy to use terminal dotfile manager.
It's basically just a Python script to short-hand managment of symlinking dotfiles. It's goal is to allow you to keep all your dotfiles in a single directory (ideally without any nesting inside that dir) and allowing you to name the dotfiles whatever you want (not forcing you to use hidden file naming).
If you don't want to remember or type out the location of a dotfile everytime you want to modify it, if you just want to keep your dotfiles tidy in a repo/directory (see fig.1), maybe you swap dotfiles around a lot:
dotfiles/
├───src/
│ ├───bashrc
│ ├───nvimrc
│ ├───tmux.conf
│ ├───ssh_config
│ └───user-dirs.dirs
└───README
Opposed to the traditional approach, where you re-create the home directory structure and just clone it to your home folder (which I think is messy):
dotfiles/
├───.bashrc
├───.tmux.conf
├───.ssh/
│ └───config
└───.config/
├───nvim/
│ └─── nvimrc
└───user-dirs.dirs
See the README for more details on using the tool.
Examples
dotfm install ~/dev/gearsix/dotfiles/bashrc
- creates a symlink at
~/.bashrc -> ~/dev/gearsix/dotfiles/bashrc
- creates a symlink at
dotfm edit bashrc
- edit the dotfile at
~/dev/gearsix/dotfiles/bashrc
- edit the dotfile at
dotfm update bashrc ~/dev/gearsix/new-dotfiles/bashrc
- update the
~/.bashrc
dotfile to point to~/dev/gearsix/new-dotfiles/bashrc
- update the
dotfm remove bashrc
- remove the symlink pointing to the source dotfile (
~/.bashrc
), note that this makes a interactiverm
call.
- remove the symlink pointing to the source dotfile (