Skip to content

About

📑 .dotfiles for Bash (Linux) / ZSH (Linux) / Git Bash (Windows) / Cygwin (Windows) / Bash on Ubuntu on Windows

Topics

Resources

Stars

220 stars

Watchers

10 watching

Forks

 
 

Latest commit

 

History

1,273 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📑 .dotfiles

... for Bash / ZSH / Git Bash (Windows) / Cygwin (Windows) / Bash on Ubuntu on Windows

--> Screenshots & Screencasts

📚 Documentation

Installation

Using Git and the bootstrap script

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.sh

To update, cd into your local dotfiles repository and then:

./bootstrap.sh

Add custom commands without creating a new fork

If ~/.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 simple

You 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.

🔧 Advanced Usage

For detailed information about the architecture, components, and advanced usage patterns, see the Technical Documentation.

Run the tests

bash .redpill/tests/functions-tests.sh
zsh .redpill/tests/functions-tests.sh

Key Features

  • Modular Architecture: Separate configuration files for aliases, functions, exports, and more
  • Plugin System: Extensible .redpill plugin 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 .extra and .config_dotfiles for personal settings without forking

Feedback

Suggestions/improvements welcome!

Thanks to…

About

📑 .dotfiles for Bash (Linux) / ZSH (Linux) / Git Bash (Windows) / Cygwin (Windows) / Bash on Ubuntu on Windows

Topics

Resources

Stars

220 stars

Watchers

10 watching

Forks

Releases

Packages

Contributors

Languages