Skip to content

westurner/dotfiles

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.

Dotfiles

https://travis-ci.org/westurner/dotfiles.svg?branch=master

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 dotfiles and dotvim repositories
  • creates symlinks from HOME to __DOTFILES,
  • installs the dotfiles Python 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.

    00-zshrc.before.sh

  • bootstrap_dotfiles.sh -S installs 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

.