Skip to content

Opinionated personal dotfiles (zsh + zprezto); configs optimized for macOS, Debian

License

Notifications You must be signed in to change notification settings

drewlustro/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Drew's Platform & Shell Agnostic Dotfiles

Version 3.2.0 / December 13, 2018

  • Backs up top-level dotfiles before installing
  • Works with both bash and zsh
  • Platform (OS X, Linux, etc) agnostic
  • Includes non-destructive userland includes to your home directory.
  • Employs prezto, the fast zsh framework
  • Prefer exa to ls
  • Supports standalone update of .shell directory for non-destructive updates



v3.1.0 Screenshot


ZSH Pre-Installation

Do this part only if you're running ZSH or would like to use it as your default shell.

Install ZSH via Homebrew (OS X)

brew install zsh

Install ZSH via apt (Debian/Ubuntu)

sudo apt-get install zsh -y

Launch ZSH and install prezto

zsh
cd
git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"

✪ EZ Dotfiles Install

You can clone the repository wherever you want. (I like to keep it in ~/dev-local/dotfiles. The bootstrapper script will pull in the latest version from the master branch before installing. Remember to run these commands from a bash shell!

bash -l # make sure we're running bash
git clone https://github.com/drewlustro/dotfiles.git && cd dotfiles && ./install.sh

Alternative Manual installation

  1. Download .zip & extract or git clone this repository.
  2. Open a terminal window and cd into the dotfiles directory.
  3. Run ./install.sh to install.
~/dotfiles $ ./install.sh

Bonus: Homebrew convenience install scripts

./fresh-machine/brew-install-cli.sh # installs TONS of useful binaries, libs, and CLI tools via brew
./fresh-machine/brew-install-media-cli.sh # installs heavy media CLI tools (ffmpeg, sox, etc.) via brew
./fresh-machine/brew-cask-fonts.sh  # installs a handful of useful public-domain typefaces, including many coding fonts
./fresh-machine/brew-cask-apps.sh   # installs many useful OS X applications via brew-cask

Charactaristics

Shell Config File Locations

My opinionated dotfiles are placed in the $HOME/.shell directory, so that either shell can be updated without conflict, as that directory is ignored by oh-my-zsh's repository.

  • ~/.shell/aliases.sh
  • ~/.shell/exports.sh
  • ~/.shell/extra.sh
  • ~/.shell/functions.sh
  • ~/.shell/init.sh
  • ~/.shell/path.sh
  • ~/.shell/LS_COLORS

Add custom commands without creating a new fork

The following files will be scaffolded if they do not exist and are available for your own customization, without fear of being overwritten by additional installations/updates from this repository.

  • ~/.shell-custom/aliases.sh
  • ~/.shell-custom/exports.sh
  • ~/.shell-custom/extra.sh
  • ~/.shell-custom/functions.sh
  • ~/.shell-custom/path.sh

For instance, my ~/.shell-custom/extra.sh file looks like this:

# Git credentials
# Not in the repository, to prevent people from accidentally committing under my name
export GIT_AUTHOR_NAME="John Doe"
export GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
git config --global user.name "$GIT_AUTHOR_NAME"

export GIT_AUTHOR_EMAIL="[email protected]"
export GIT_COMMITTER_EMAIL="$GIT_AUTHOR_EMAIL"
git config --global user.email "$GIT_AUTHOR_EMAIL"

# Python virtualenvwraper default environment
DEFAULT_PYTHON_ENV="default";
DEFAULT_WORKON_HOME="/sites/envs";
[ -d "$DEFAULT_WORKON_HOME" ] && export WORKON_HOME="/sites/envs";
[ -x "$(which workon)" ] && [ -d "$DEFAULT_WORKON_HOME/$DEFAULT_PYTHON_ENV" ] && workon $DEFAULT_PYTHON_ENV;

Notable Features

Tons of convenience aliases and shortcut commands

Take a look at all the .sh includes in ~/.shell/*.sh for details.

Hyper-diverse terminal colors

GNU ls and dircolors, compiled from GNU coreutils-8.21, will be installed into $HOME/bin, allowing for an elevated terminal color experience on Mac OS X 10.8.x via true LS_COLORS support.

Local user software first!

The $PATH export chain checks for executables in many common local installation paths first, preferring user-installed binaries.


Sensible OS X defaults

Executing .macos applies tons of hacker-friendly customization to OS X. Please take a look at this file if you fear for your personal preferences, but it is great to try out on new OS ins talls and old ;)

cd dotfiles
./.macos # Does tons of hacker-friendly customization to OS X

Contact & Feedback

 

Suggestions & improvements welcome!

 


 

Original Author Credit & Huge Thanks To:

    Mathias & Jason Hsieh (but not really) yep.

License

MIT

Thanks to…