📂 My old dotfiles, originally forked from Paul Miller and enhanced to safely run multiple times consecutively.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Josh Habdas 3bfcf24a15
chore(home/.gitconfig): update email and signing key
2 years ago
bin Bootstrapper overhaul and even moar features 5 years ago
etc Bootstrapper overhaul and even moar features 5 years ago
git-extras Update git-release.sh 7 years ago
home chore(home/.gitconfig): update email and signing key 2 years ago
terminal feat(osx): add visual sql management tool, remove dupe nvm, move rvm 5 years ago
.gitignore feat(security): add gpg signed commits 4 years ago
.gitmodules feat(editor): ditch sublime text in favor of atom 4 years ago
README.md Brew up some Minio 4 years ago
bootstrap.sh Brew up some Minio 4 years ago
install.sh Revert "Run bootstrapper with zsh" 5 years ago
osx.sh Maybe this'll work 5 years ago
symlink-dotfiles.sh feat(editor): ditch sublime text in favor of atom 4 years ago

README.md

Dotfiles

Colourful & robust OS X and Linux configuration files and utilities for web development. Forked from Paul Miller's dotfiles and modified for ease of use. Quickly bootstrap your system with the goods you need to succeed.

It can be run multiple times on the same machine safely. It installs, upgrades, or skips packages based on what is already installed on the machine.

Features

  • Greatly customized zsh with auto-completion and syntax highlighting
  • Automated installation of common developer console and OS X apps
  • Colorful theme for OS X Terminal
  • Additional Web security and ad blocking behavior (optional)
  • A bunch of useful git extras

What it sets up

  • A ~/Development directory with dotfiles recursively cloned for easy upkeep
  • Atom A hackable text editor for the 21st Century
  • Caffeine to keep the monitor on during presentations
  • DeathToDSStore .DS_Store is an abomination and must be stopped
  • Dropbox for personal file sharing
  • Elinks for web browsing from the command line
  • Flux for adjusting your Mac's display color so you can sleep better
  • Git for distributed source control management
  • Gitify for GitHub Notifications on your menu bar
  • Google Chrome for browser debugging
  • Homebrew for managing operating system libraries
  • Homebrew Cask for quickly installing Mac apps from the command line
  • Homebrew Services so you can easily stop, start, and restart services
  • htop as a replacement for top
  • hub for interacting with the GitHub API
  • irssi terminal-based IRC chat client
  • ngrok to expose a local server behind a NAT or firewall to the internet
  • nvm for simple Node version management
  • minio S3 compatible cloud storage server
  • Postgres is an object-relational database management system
  • Screenhero screen sharing for collaboration in teams
  • Sequel Pro for MySQL database management
  • Spectacle for zero-config window management
  • tmux used to multiplex several virtual consoles
  • Quick Look Plugins from someone awesome
  • wget for better scripting pairty with Linux
  • z quickly switch between directories using the frecency algorithm
  • Zsh as your shell with the following powerful features:
    • ZERO DEPENDENCIES!
    • z to allow jumping between directories
    • rm moves file to the OS X trash
    • Automatic setting up of terminal tab / window title to current dir
    • Sexy syntax highlighting and translucency
    • Auto-completion
    • A bunch of useful functions:
      • extract archive.tar.bz — unpack any archive (supports many extensions)
      • ram safari — show app RAM usage
      • openfiles — real-time disk usage monitoring with dtrace.
      • loc py coffee js html css — count lines of code in current dir in a colourful way.
      • ff file-name-or-pattern - fast recursive search for a file name in directories.
      • curl http://site/v1/api.json | json - pretty-print JSON
      • aes-enc, aes-dec - safely encrypt files.
    • Neat git extras:
      • Opinionated git log, git graph
      • Enables rerere for easier rebasing
      • gcp for fast git commit -m ... && git push
      • git pr <pull-req> [origin] for fetching pull request branches
      • git cleanup — clean up merged git branches. Very useful if you’re doing github pull requests in topic branches.
      • git summary — outputs commit email statistics.
      • git release — save changes, tag commit. If used on node.js project, also push to npm.
      • git url - opens GitHub repo for current git repo.
      • git-changelog, git-setup etc.
    • homesick / homeshick-compatible

Getting started

  1. Perform steps in Building system from scratch
  2. Fork this repo
  3. Modify .gitconfig for your GitHub account
  4. Review bootstrap.sh, install.sh and customize to your liking
  5. Run the installation script
  6. Install Node using nvm once terminal restarted
    nvm i node && nvm alias default node or, for a specific Node version:
    nvm i v0.10.32 && nvm use v0.10.32
  7. If necessary, set your --global username and email in Git.
  8. Configure GPG keys for verified commits on GitHub.

Installation

When ready run the installer, replacing username with your own once repo is forked customized:

curl --silent https://raw.githubusercontent.com/username/dotfiles/master/install.sh | sh

Where username is your GitHub username.

File structure

  • bin — files that are symlinked to any directory with binaries in $PATH
  • etc — various stuff like OS X text substitutions / hosts backup
  • git-extras — useful git functions, defined in home/gitconfig
  • home — files that are symlinked to $HOME directory
  • terminal — terminal theme & prompt

Building system from scratch

  • Install Source Code Pro font.
  • Install Xcode from the App Store & Xcode CLI Tools.
  • Change Terminal.app theme to terminal/paulmillr.terminal.
  • Change default shell to ZSH: chsh -s /bin/zsh.
  • Insert proper hosts from etc/hosts to system’s /etc/hosts.
  • Enable tabbing to all controls from Keyboard preferences to allow tabbing in dialogs.
  • Unmap shortcut keys to allow Column Text Selection selection in Atom

Todo

License

The MIT license.

Copyright (c) 2015-2016 Josh Habdas (https://habd.as)
Copyright (c) 2013 Paul Miller (http://paulmillr.com/)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.