A collection of my dotfiles (e.g. `.config`, `.bashrc`)
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



A collection of my dotfiles (e.g. .config, .bashrc)

This is written for both Linux Mint 17.1 (Cinnamon) and Mac OS X Mountain Lion.

Getting started

To install dotfiles, run ./install.sh.

This will create symlinks and copy/append files when symlinks are inappropriate.


Bash prompt

My bash prompt is hosted at twolfson/sexy-bash-prompt. It provides file system, git branch, and git status via symbols.

Example screenshot of sexy-bash-prompt


  • .bash_profile - Bash script that is run at login
    • Sets default editor to Sublime Text
    • Enables CLI coloring
    • Runs .bashrc for aliases and PATH updates
  • .bashrc - Run when a new terminal is opened
    • Creates aliases
    • Add helper and polyfill commands
    • Enables tab completion for git and fab
    • Adds customized sexy bash prompt
  • .config/sublime-text-3/Packages/User - Configuration for Sublime Text
    • Includes list of commonly used packages in [Package Control.sublime-settings](.config/sublime-text-3/Packages/User/Package Control.sublime-settings)
  • .fonts/anonymous+Pro-Powerline.ttf - Anonymous Pro, a monospaced font with serifs
    • This font comes from Powerline which contains additional characters. However, I don't use them.
  • .gitconfig
    • Set up credentials for twolfson (me)
    • Disable creation of .orig files
    • Set meld as mergetool/difftool
    • Enable git colors
    • Add aliases
      • add-pr - Adds a new remote for fetching pull requests as branches
      • amend - Update previous commit
      • git - For chaining of multiple git's (e.g. git git status)
  • .gconf - Configurations for Gnome (e.g. Ctrl+Alt+Del for gnome-system-monitor)
  • .nanorc - Adds syntax highlighting for nano
.bashrc aliases
  • inco - Opens a Chrome Incognito window
  • lock - Locks computer via screensaver on Gnome/Cinnamon
  • volume - Control sound output

Directory movements

  • cd - Moved to directory and pushes onto directory stack (via pushd)
  • .., [...], ..... - Navigate up one, [...], five directories (via pushd)
  • ~ - Navigate to the home directory (via pushd)
  • ,,, [...], ,,,,, - Navigate back one, [...], five directories (in the pushd stack via popd)
  • , - List out current pushd/popd stack
  • copy - Aliases for consistent copying functionality across Linux Mint and OSX


  • Sublime Text 3 with [Package Control][], text editor with great plugin system and ecosystem
  • nodemon, watches .js files for changes and re-executes a script
    • Great for restarting local development servers on save
  • listen-spawn, listens for HTTP requests and re-executes a script
  • livereload, automatically refresh browser when a file is updated
  • hub, adds more GitHub commands (e.g. repo creation, open current repo in browser)
  • howdoi, look up StackOverflow answers from the command line
  • Charles Proxy, inject scripts and fake pages when developing against 3rd party sites
  • git-extras, adds bonus git commands (e.g. git back to reset previous commit, git ignore to add a file pattern to .gitignore)
  • Google Music, music player hosted by Google
  • Pixlr, Photoshop from the browser
  • Firefox with Firebug, browser and development tool of choice
  • Vagrant, create and teardown development virtual machines on the fly
  • ievms, installs Internet Explorer virtual machines
  • VirtualBox, virtual machine runtime
  • nano, small and intuitive text editor that I use for git commit messages
  • Gmail with labs plugins, Google's mail program
    • Keyboard shortcuts, key bindings to navigate and categorize emails
    • Undo, allows me to undo an accidental archive action
    • Favicon, view unread email count in favicon
  • Shortcut Foo, flash cards for program shortcuts
  • grunt-init-node, prompt style boilerplate for node modules
  • gti, "alias" similar to sl for ls that plays GTI animation but runs `git command afterwards
  • victorious-git, plays fanfare upon merge conflict resolution

Linux Specific

  • gnome-terminal, terminal emulator for Gnome
  • Amarok, music player for Linux
  • Quod Libet, manage music library tags
  • wmctrl-pad, manage window positions and layout
    • Integrates nicely with keyboard shortcuts
  • gnome-pie, cursor based launcher
    • Useful for GUI tasks like quick launching screenshot selection

Mac OS X Specific

  • iTerm 2, terminal emulator for OS X with nice configuration settings
  • Spectacle, adds shortcuts to position windows
  • Alfred, makes actions more accessible (e.g. lock)
  • Go2Shell, open a shell via button in Finder window


  • Key repeat is set to very high
  • Use multiple monitors, layout to see everything at a glance
  • Create new files via a shortcut
    • 'Quick File Creator' inside Sublime Text
  • Duplicate files files in one command
  • When debugging a problem, I use a binary search of console.log statements
  • When finding methods/strings in foreign code bases, I use 'Find: In Current File' via Find++ in Sublime Text
    • Alternatively, I use git grep to search the git filesystem
  • Checkout and merge previous branches via git checkout/merge -. See Coderwall protips for more.
  • I use live coding frequently in multiple scenarios
  • Open GitHub and Phabricator from Sublime Text via Githubinator and Phabricator plugins
  • Create new repos in GitHub via hub
  • Create templated repos via grunt-init-node
  • Learn program shortcuts early on (e.g. bash, less)
  • Inside Sublime Text, multiple word selection is great for deleting a single word as well as adjusting multiple


Support this project and others by twolfson via donations.



As of Feb 28 2014, Todd Wolfson has released this repository and its contents to the public domain.

It has been released under the UNLICENSE.