Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
  dotfm - a simple script to manage dotfiles.

  dotfm [-h] [-d] [-v] [-q] COMMAND DOTFILE...

  dotfm is designed to be simple and easy to use. It's really just a
  short-hand for managing symlinks of dotfiles (it's also helpful if
  you don't want to remember or type out the location of a dotfile
  everytime you want to modify it).

  -h --help	Displays help printout
  -s --skip	Skip prompts where necessary and just use defaults
  -d --debug	Display debug logs
  -v --version	Display dotfm version
  -q --quiet	Tell dotfm to shutup (hide info logs)

  Multiple DOTFILE args can be passed to each command.

  Some terminology to avoid confusion:
    - DOTFILE refers to the filepath of the dotfile to be installed
    - DESTINATION refers to the location you would usually find a
    dotfile at. For example, the location for bashrc is ~/.bashrc
    - ALIAS refers to any name used to call a dotfile installed by
    dotfm. dotfm recognises the source filepath (DOTFILE) as an alias

  install, in <DOTFILE> ...		
    Create a symlink to DOTFILE from it's DESTINATION and register it.
	DOTFILE should be the filepath of the dotfile to install. If this
	path matches its DESTINATION, then a symlink won't be created but
	the file will still be registered by dotfm.

    If DOTFILE is recognised by dotfm, then you will be prompted for
	an install location and aliases to call the dotfile by. If the
	--skip option was passed then the defaults will be used.

  update, up <ALIAS> <DOTFILE>	
    update the source DOTFILE path (of the dotfm-registered dotfile
	matching ALIAS) that DESTINATION points to.

  link, ln <FILE> ...
    hardlink FILE to another destination, ideally a repository with a
	collection of your dotfiles.

  remove, rm <ALIAS> ...	
    If ALIAS is recognised, then the DESTINATION of the dotfile will be
	removed. This is a destructive function, use it carefully.

    Will only remove the file if the file has been installed by dotfm
    (and can be found in DOTFM CSV FILE).

  edit, ed <ALIAS> ...	
    Open DOTFILE in $EDITOR or nano if $EDITOR is not present.

    DOTFILE should be an alias of the dotfile to edit.

  list, ls <ALIAS> ...	
    Print a table of the install locations and aliases for all
	registered dotfiles. If one or more DOTFILE arguments are present,
	then only dotfiles with matching aliases will be listed.

  Go to the source folder of dotfm and run "sudo make install" or "sudo
  make link".
    - "sudo make install" - copy dotfm to the install location (recommended
    for most users).
    - "sudo make link" - create a symlink of dotfm from its current location
    to the install location (useful for development).

  By default the install location of dotfm is /usr/local/bin/dotfm. To
  modify this, just edit the value of DESTBINDIR in the Makefile.

  Go to the source folder of dotfm and run "sudo make uninstall".

  EDITOR	The text editor to edit dotfiles with. If not present,
  		nano will be used.
  HOME	The home directory of the current user
  DFMDIR	The directory in which your collection of dotfiles live.

  I would recommend modifying the "KNOWN" array in src/
  to suite your own needs if i've missed any dotfiles you frequently use.

  - gearsix <> = original author
  - marta dias - = the logo


DOTFile Manager, mirror repository: