Dotfiles
Bash, Python, IPython scripts, and userspace configuration https://westurner.org/dotfiles/
Install / Use
/learn @westurner/DotfilesREADME
=========== Dotfiles
| Source: https://github.com/westurner/dotfiles | Download: https://github.com/westurner/dotfiles/releases | Build: https://travis-ci.org/westurner/dotfiles | Docs: https://westurner.org/dotfiles/ | Docs: https://westurner.github.io/dotfiles/ | Docs: https://wrdfiles.readthedocs.org/en/latest/
.. image:: https://img.shields.io/github/release/westurner/dotfiles.svg :target: https://github.com/westurner/dotfiles/releases
.. image:: https://img.shields.io/github/tag/westurner/dotfiles.svg :target: https://github.com/westurner/dotfiles/tags
.. image:: https://travis-ci.org/westurner/dotfiles.svg?branch=master :target: https://travis-ci.org/westurner/dotfiles
.. _GitHub: https://github.com/westurner/dotfiles
.. _Documentation: https://westurner.org/dotfiles/
.. _ReadTheDocs: https://wrdfiles.readthedocs.org/en/latest/
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:
Installation
Requirements
Project requirements are installed by
bootstrap_dotfiles.sh_ and/or, optionally, also a Makefile_.
Bash,Git,Python,pip
.. _bootstrap_dotfiles.sh: https://github.com/westurner/dotfiles/blob/master/scripts/bootstrap_dotfiles.sh .. _Makefile: https://github.com/westurner/dotfiles/blob/master/Makefile
.. _install the dotfiles:
Install the dotfiles
| Source: https://github.com/westurner/dotfiles | Documentation: https://westurner.org/dotfiles/
The bootstrap_dotfiles.sh_ shell script:
- clones the
dotfilesanddotvimrepositories - creates symlinks from
HOMEto__DOTFILES, - installs the
dotfilesPython package, - installs additional requirements with
pip
.. code:: bash
wget bootstrap_dotfiles.sh bash ./scripts/bootstrap_dotfiles.sh -I -R
Create a virtualenv with virtualenvwrapper
named "dotfiles":
.. code:: bash
# 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:
.. code:: bash
# (Optional) Also install pkg and reqs into ~/.local/bin (pip --user)
# scripts/bootstrap_dotfiles.sh -I -R -u
.. _dotfiles git repository: https://github.com/westurner/dotfiles
.. 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_-Sinstalls dotfiles${__DOTFILES}symlinks... code:: bash
ln -s ~/-dotfiles/etc/.bashrc ~/.bashrc ln -s ~/-dotfiles/etc/.zshrc ~/.zshrc
.. code:: bash
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
.. code:: bash
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:/
$
.. _00-bashrc.before.sh: https://github.com/westurner/dotfiles/blob/master/etc/bash/00-bashrc.before.sh
.. _00-zshrc.before.sh: https://github.com/westurner/dotfiles/blob/master/etc/zsh/00-zshrc.before.sh
.. _bootstrap_dotfiles.sh: https://github.com/westurner/dotfiles/blob/master/scripts/bootstrap_dotfiles.sh
Upgrade the dotfiles
.. code:: bash
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.
.. code:: bash
# 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:
- https://westurner.org/dotfiles/usage
- https://westurner.org/dotfiles/venv
Further Dotfiles Resources
- https://dotfiles.github.io/
- https://github.com/webpro/awesome-dotfiles
.
-
https://westurner.org/dotfiles/
- https://westurner.org/dotfiles/usage
- https://westurner.org/dotfiles/usage#bash
- https://westurner.org/dotfiles/usage#vim
- https://westurner.org/wiki/workflow
Related Skills
node-connect
340.5kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
claude-opus-4-5-migration
84.2kMigrate prompts and code from Claude Sonnet 4.0, Sonnet 4.5, or Opus 4.1 to Opus 4.5
frontend-design
84.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
model-usage
340.5kUse CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.
