Dotfiles¶
Goals¶
Streamline frequent workflows
Configure Bash, ZSH, and Vim
Configure Python, pip, virtualenv, virtualenvwrapper
Configure IPython
Configure Gnome
Configure i3wm
Support Debian Linux, Ubuntu Linux, OSX
Document commands and keyboard shortcuts
Create a productive working environment
Installation¶
Requirements¶
Project requirements are installed by bootstrap_dotfiles.sh and/or, optionally, also a Makefile.
Bash, Git, Python, pip
Install the dotfiles¶
The bootstrap_dotfiles.sh shell script:
clones the
dotfilesanddotvimrepositoriescreates symlinks from
HOMEto__DOTFILES,installs the
dotfilesPython package,installs additional requirements with pip
wget bootstrap_dotfiles.sh
bash ./scripts/bootstrap_dotfiles.sh -I -R
Create a virtualenv with virtualenvwrapper
named “dotfiles”:
# Install virtualenvwrapper
pip install virtualenvwrapper # apt-get install python-virtualenvwrapper
source $(which 'virtualenvwrapper.sh') # 07-bashrc.virtualenvwrapper.sh
export WORKON_HOME="~/-wrk/-ve27" # __WRK/-ve python2.7
mkdir -p $WORKON_HOME
# Create a virtualenvwrapper virtualenv
mkvirtualenv dotfiles # workon dotfiles
mkdir $VIRTUAL_ENV/src
cd $VIRTUAL_ENV/src
# Clone the dotfiles git repository
branch="master" # stable
# branch="develop" # development
git clone ssh://git@github.com/westurner/dotfiles -b ${branch}
cd dotfiles
# Install dotfiles pkg, symlinks, and extra pip requirements
scripts/bootstrap_dotfiles.sh -I -R # -I calls -S
With Python builds that haven’t set a prefix which is writeable
by the current user, you can also install into ~/.local with
pip --user:
# (Optional) Also install pkg and reqs into ~/.local/bin (pip --user)
# scripts/bootstrap_dotfiles.sh -I -R -u
Note
See Quickstart, which uses venv-style paths.
Source the dotfiles¶
Bash (and ZSH) configuation sets are sequentially numbered 00-99.
00-bashrc.before.sh sources a documented, numerically sequential sequence of bash scripts.
ZSH loads much of the standard Bash configuration and oh-my-zsh.
bootstrap_dotfiles.sh
-Sinstalls dotfiles${__DOTFILES}symlinks.ln -s ~/-dotfiles/etc/.bashrc ~/.bashrc ln -s ~/-dotfiles/etc/.zshrc ~/.zshrc
# Source the dotfiles
source ~/.bashrc # source ~/.zshrc
# source ${__DOTFILES}/etc/.bashrc
## source ${__DOTFILES}/etc/bash/00-bashrc.before.sh # dotfiles_reload
### dotfiles configuration sequence # (\d\d)-bashrc.(.*).sh
#### source ${__DOTFILES}/etc/bash/99-bashrc.after.sh
##### source ${__PROJECTSRC} # ${__WRK}/.projectsrc.sh
# print venv configuration
dotfiles_status
ds
Last login: Tue Dec 2 15:01:56 on ttys000
#
# dotfiles_reload()
#ntid _TERM_ID="#SElGeTf5VcA" #_USRLOG="/Users/W/-usrlog.log"
# dotfiles_status()
HOSTNAME='nb-mb1'
USER='W'
__WRK='/Users/W/-wrk'
PROJECT_HOME='/Users/W/-wrk'
WORKON_HOME='/Users/W/-wrk/-ve'
VIRTUAL_ENV_NAME=''
VIRTUAL_ENV=''
_SRC=''
_APP=''
_WRD=''
_USRLOG='/Users/W/-usrlog.log'
_TERM_ID='#SElGeTf5VcA'
PATH='/Users/W/.local/bin:/Users/W/-dotfiles/scripts:/usr/sbin:/sbin:/bin:/usr/local/bin:/usr/bin:/opt/X11/bin:/usr/local/git/bin'
__DOTFILES='/Users/W/-dotfiles'
#
# cd /
#SElGeTf5VcA W@nb-mb1:/
$
$ stid 'dotfiles'
#stid _TERM_ID="dotfiles" #_TERM_ID__="dotfiles install" #_USRLOG="/Users/W/-usrlog.log"
# stid 'dotfiles'
dotfiles W@nb-mb1:/
$
Upgrade the dotfiles¶
# check for any changes to symlinked dotfiles
cdd # cddotfiles
git status && git diff # gsi ; gitw diff
# pull and upgrade dotfiles and dotvim
scripts/bootstrap_dotfiles.sh -U
Quickstart¶
This is a verbose example of installing and working with a
VIRTUAL_ENV in WORKON_HOME named “dotfiles”.
See Install the dotfiles for more terse installation instructions.
# clone and install dotfiles and dotvim
# with venv-style paths (_SRC, _APP, _WRD)
# __WRK -- base path for workspace [venv]
__WRK="$HOME/-wrk"
cd $__WRK # cdwrk [venv]
# WORKON_HOME -- path to virtualenv dirs [virtualenvwrapper]
WORKON_HOME="${__WRK}/-ve27" # ~/-wrk/-ve27
test -d ${WORKON_HOME} || mkdir -p ${WORKON_HOME}
cd $WORKON_HOME # cdworkonhome cdwh cdve [venv]
# VIRTUAL_ENV_NAME -- basename for VIRTUAL_ENV [venv]
VIRTUAL_ENV_NAME="dotfiles"
# VIRTUAL_ENV -- current virtualenv path [virtualenv]
VIRTUAL_ENV="${WORKON_HOME}/${VIRTUAL_ENV_NAME}"
cd $VIRTUAL_ENV # cdv cdvirtualenv [venv, virtualenvwrapper]
# _SRC -- basepath of source repositories (e.g. for pip)
_SRC="${VIRTUAL_ENV}/src"
cd $_SRC # cdsrc cds [venv]
# _APP -- basename of current working directory [venv]
_APP="dotfiles"
# _WRD -- working directory path [venv]
_WRD="${_SRC}/${_APP}" # cdwrd cdw [venv]
git clone https://github.com/westurner/dotfiles $_WRD
git clone https://github.com/westurner/dotvim ${_WRD}/etc/vim
cd $_WRD # cdwrd cdw [venv]
# __DOTFILES -- symlink root for current dotfiles [venv]
__DOTFILES="${HOME}/-dotfiles"
ln -s $_WRD $__DOTFILES
ls ~/-dotfiles
cd $__DOTFILES # cddotfiles cdd [venv]
## Install the dotfiles
$_WRD/scripts/bootstrap_dotfiles.sh -h # help
$_WRD/scripts/bootstrap_dotfiles.sh -I # or: make install
$_WRD/scripts/bootstrap_dotfiles.sh -S # or: make install_symlinks
For further documentation, see:
Further Dotfiles Resources¶
.