/dotfiles

Awesome personal dotfiles

Primary LanguageShell

denisidoro/dotfiles

Demo
Awesome personal dotfiles

Installation    Shell    Scripts    Git    Docs

Full installation

# with homebrew or linuxbrew
brew install denisidoro/tools/dotfiles
dot self install

# with curl
bash <(curl -s https://raw.githubusercontent.com/denisidoro/dotfiles/master/scripts/self/install)

# with wget
bash <(wget -qO- https://raw.githubusercontent.com/denisidoro/dotfiles/master/scripts/self/install)

# with git
export DOTFILES="${HOME}/dotfiles"
git clone https://github.com/denisidoro/dotfiles "$DOTFILES"
"${DOTFILES}/bin/dot" self install

Using in shell scripts

dot::clone() {
  git clone https://github.com/denisidoro/dotfiles "$DOTFILES"
}

dot::clone_if_necessary() {
  [ -n "${DOTFILES:-}" ] && [ -x "${DOTFILES}/bin/dot" ] && return
  export DOTFILES="${HOME}/dotfiles"
  $(dot::clone >/dev/null || true)
}

dot::source() {
  dot::clone_if_necessary
  source "${DOTFILES}/scripts/core/main.sh"
}

dot::source

Calling scripts

There's a single entry point for most scripts, which is the dot command:

dot <ctx> <cmd> [<args>...] # example: dot rice pipes

Documentation

Some scripts are documented in /docs. For all other scripts, run:

dot <ctx> <cmd> --help # example: dot rice pipes --help

Shell startup performance

$ dot shell zsh benchmark
Benchmark #1: /usr/bin/time /bin/zsh -i -c exit
  Time (mean ± σ):      35.6 ms ±   3.0 ms    [User: 14.0 ms, System: 16.0 ms]
  Range (min … max):    32.7 ms …  48.8 ms    67 runs

Template

In order to setup your own dotfiles, I recommend using dotly or Sloth, which are frameworks inpired by this repository.