Dotfiles
Shell CSS HTML Ruby
Switch branches/tags
Nothing to show
Permalink
Failed to load latest commit information.
bin Rewrite dcp-export_vars Apr 4, 2017
conf shims directory May 1, 2016
dot
lib Fix for Maven wrapper script bug Apr 21, 2017
libexec Add libexec directory Feb 13, 2017
share
shims shims directory May 1, 2016
.gitignore Un-gitignore non-Jars in libexec Mar 30, 2017
LICENSE Proper line lengths for LICENSE Mar 9, 2017
README.md Update README.md, remove dotfile remover Mar 9, 2017
envrc
exitrc

README.md

DCP

Dotfiles. Big, maximalist, and scary. Working on trimming this stuff down.

Installation

The installation script can be used as follows:

curl -sSL https://dcp.danpoggi.com | bash

This URL is a temporary redirect to https://raw.githubusercontent.com/dpoggi/dcp/master/bin/dcp-bootstrap.

If you have a .vim folder, I recommend deleting or moving it before you run the installation script. The installer includes my Vim configuration.

Any dotfiles that are "in the way" when the script attempts to symlink them into ~/.dcp will be ignored and called out — it's completely up to you whether to leave them in the way or clear them out in favor of those provided. To link remaining dotfiles after deleting or moving them out of the way, run ~/.dcp/bin/dcp-install_links.

Version Managers

rbenv or RVM, pyenv (with or without pyenv-virtualenv), NVM, and rustup are supported out of the box. In practice, this means if they or their installers modify any "normal" dotfiles (.bashrc, etc.) it would be wise to:

(cd ~/.dcp && git checkout .)

This built-in support comes with shell functions to control the loading of version managers. Be warned that all of these will re-exec your shell:

disable_managers # Disable all
enable_managers  # Enable all

enable_rvm
enable_rbenv
enable_pyenv
enable_nvm
enable_rustup

Shell re-exec behavior is somewhat smart-ish. For example, on a typical macOS setup with iTerm2 or Terminal.app and zsh, it will exec -l zsh -l. Running zsh in a graphical terminal on Linux, it will most likely just exec zsh.

Customization

One of the primary goals of this project has always been maintaining at least shaky portability over a wide variety of platforms, using both bash and zsh.

As such, this repository wants to take over all your "normal" dotfiles. Customizations are then made in specific files which will be loaded by both shells.

~/.dcp/localenv is primarily for setting environment variables and will be loaded quite early. ~/.dcp/localrc is loaded slightly later and should be used for shell functions or any custom integrations. Both of these files are gitignored.

Portability Notes

In general: macOS and Linux will be the smoothest experience. BSDs may or may not work depending which ports/packages have been installed, and Solaris distributions can go either way depending how you/they have $PATH set up.

Attribution

The contents of this repository predate the initial Git commit. There may be some snippets of shell script that I did not write (snipped from blogs, StackOverflow, etc.). Attribution has been done on a best-effort basis. If you recognize something here as your own, please do not hesitate to contact me so we can work things out to your satisfaction.

Copyright

Copyright (C) 2011 Dan Poggi. MIT License, see LICENSE for details.