... for Bash / ZSH / Git Bash (Windows) / Cygwin (Windows) / Bash on Ubuntu on Windows
- Technical Documentation - Comprehensive technical guide covering architecture, design, components, and security
- Quick Start - See Installation below
- Customization - See Add custom commands
You can clone the repository wherever you want. (I like to keep it in ~/Projects/dotfiles, with ~/dotfiles as a symlink.) The bootstrapper script will pull in the latest version and copy the files to your home folder.
# get the code
cd ~ ; git clone https://github.com/voku/dotfiles.git; cd dotfiles
# only for Debian based e.g. Ubuntu, Lubuntu, Kubuntu etc.
./firstInstallDebianBased.sh
# only for Cygwin (Windows)
./firstInstallCygwin.sh
# copy the dotfiles into your home directory
./bootstrap.shTo update, cd into your local dotfiles repository and then:
./bootstrap.shIf ~/.config_dotfiles does not exists, the "bootstrap.sh"-script will create a default config for you.
My ~/.config_dotfiles looks something like this:
#!/bin/sh
CONFIG_DEFAULT_USER="lars"
CONFIG_ZSH_PLUGINS="(git zsh-completions zsh-syntax-highlighting)"
CONFIG_BASH_PLUGINS="(git)"
CONFIG_ZSH_THEME="voku"
CONFIG_BASH_THEME="voku"
CONFIG_CHARSET_UTF8=true
CONFIG_LANG="en_US"
CONFIG_TERM_LOCAL="" # terms: screen byobu tmux
CONFIG_TERM_SSH=""If ~/.extra exists, it will be sourced along with the other files. You can use this to add a few custom commands without the need to fork this entire repository, or to add commands you don’t want to commit to a public repository.
My ~/.extra looks something like this:
#!/bin/sh
export DOTFILESSRCDIR="/home/lars/dotfiles/"
GIT_AUTHOR_NAME="Lars Moelleken"
GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
git config --file=$HOME/.gitconfig.extra user.name "$GIT_AUTHOR_NAME"
GIT_AUTHOR_EMAIL="lars@moelleken.org"
GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"
git config --file=$HOME/.gitconfig.extra user.email "$GIT_AUTHOR_EMAIL"
git config --file=$HOME/.gitconfig.extra push.default simpleYou could also use ~/.extra to override settings, functions and aliases from my dotfiles repository. It’s probably better to fork this repository instead, though. And you can use ~/.vimrc.extra to edit the vim settings without touching the main configuration.
For detailed information about the architecture, components, and advanced usage patterns, see the Technical Documentation.
bash .redpill/tests/functions-tests.sh
zsh .redpill/tests/functions-tests.sh- Modular Architecture: Separate configuration files for aliases, functions, exports, and more
- Plugin System: Extensible
.redpillplugin architecture with themes and Git integration - Cross-Platform: Works on Linux, macOS, Windows (Git Bash/Cygwin/WSL)
- Safe Defaults: Built-in safety mechanisms for file operations
- Easy Customization: Use
.extraand.config_dotfilesfor personal settings without forking
Suggestions/improvements welcome!
- DrVanScott and his dotfiles repository
- TuxCoder and his dotfiles repository
- Mathias Bynens and his awesome dotfiles repository
- @ptb and his OS X Lion Setup repository
- Ben Alman and his dotfiles repository
- Chris Gerke and his tutorial on creating an OS X SOE master image + Insta repository
- Cãtãlin Mariş and his dotfiles repository
- Gianni Chiappetta for sharing his amazing collection of dotfiles
- Jan Moesen and his ancient
.bash_profile+ shiny tilde repository - Lauri ‘Lri’ Ranta for sharing loads of hidden preferences
- Matijs Brinkhuis and his dotfiles repository
- Nicolas Gallagher and his dotfiles repository
- Sindre Sorhus
- Tom Ryder and his dotfiles repository
- Kevin Suttle and his dotfiles repository and OSXDefaults project
- Haralan Dobrev
- anyone who contributed a patch or made a helpful suggestion