A collection of my dotfiles (e.g. `.config`, `.bashrc`)
Shell
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.config
.fonts
.gconf
grunt-init-dir
out-of-date-installation
test
.bash_profile
.bashrc
.foundryrc
.gitconfig
.gitignore
.nanorc
CHANGELOG.md
README.md
UNLICENSE
defaults.list
install.sh
release.sh

README.md

dotfiles

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.

Documentation

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

Files

  • .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

Programs

  • 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

Workflow

  • 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

Donating

Support this project and others by twolfson via donations.

http://twolfson.com/support-me

Unlicense

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.