Dotypasta let you easily fetch, save and apply dotfiles.
Inspired by chezmoi
dotypasta is still in early development
If you want to give it a shot, clone the repository and cargo build
Dotypasta relies on two things:
- a
.dotypastarc
in your home directory, it tells dotypasta which files must be copied. - a
dotypasta
folder at~/.local/share/
, usually a git repostory, where all the dotfiles are stored.
This is a simple flat toml file.
dotypasta = [".dotypastarc"]
zsh = [".zshrc", ".oh-my-zsh/custom/themes/nizil.zsh"]
i3 = [".config/i3/config", ".config/i3blocks/config"]
vi = [".vimrc", ".config/nvim/init.vim"]
With such config file, dotypasta has 4 apps defined (dotypasta, zsh, i3 and vi) with their respective files. It expects to find this files in the dotypasta directory (see below).
Using the load
subcommand, dotypasta clone a repository named dotfiles
from a specified user at $HOME/.local/share/dotypasta
.
This directory must respect a structure commonly used among dotfiles
repository, i.e. the root of the directory is supposed to be your home.
In the previous example, the repository must have .dotypastarc
, .zshrc
, .vimrc
at the root of the repository, a config
file in a directory .config/i3/
, and so on.
-
dotypasta load <username>
clone adotfiles
repository-
--hub [github | gitlab | bitbucket ... ]
to select the git host -
-t <reference>
to load a specific tag or branch- fix the detached head issue
-
--ssh
to clone the repository using ssh -
--apply
to directly apply the configuration
-
-
dotypasta clear
to delete$HOME/.local/share/dotypasta
-
dotypasta config <appname>
show you the files copied forappname
as configured in.dotypastarc
-
dotypasta config <appname> -a <file> -a <file2>...
add all files to theappname
configuration -
dotypasta config <appname> -d <file> -d <file2>...
delete all files from theappname
configuration
-
-
dotypasta diff
show you the difference between the loaded dotfiles and your current configuration-
--app <appname> --app <appname2>...
to see the difference for specific apps
-
-
dotypasta apply
copy all the dotfiles from the loaded configuration to the host-
--app <appname> --app <appname2>...
to apply the configuration for specific apps
-
-
dotypasta save
copy all the dotfiles from the host to the local repository-
--app <appname> --app <appname2>...
to backup dotfiles for specific apps - automatically commit & push
-
-m <message>
to edit the commit message
-
-
- improved UI/UX