Preferred configuration for any computer I do work on
There are a lot of things I need to configure when on a new computer, and I find myself doing this frequently. This is a tool for setting everything up the way I like it, and hopefully a base for you to set up things how you like them too, at very least.
This setup is intended to work only on OSX, and has been tested with OSX Mavericks and up. If you are not running OSX or are running an old version, things might not work, so be careful. Also, upgrade your OS. If you are on another OS, I would welcome patches or forks to make this work cross-OS, but I'm not in place where I can sink significant amounts of time into making this happen myself, so as far as I know, this repo will remain OSX-only.
This tool has the capacity to replace settings for your terminal, sublime text, alfred, a number of osx system settings, and your desktop background, and will install a number of apps and binaries. If you don't want some of these things to happen, it might be better to back your stuff up or manually install individual sections, which is described below. For any sections that will overwrite settings of any sort, you will be warned and given a chance to opt out.
This tool is ready to be installed initially on a completely bare machine, right after a fresh install of OSX, the only prerequisite is the xcode command line tools, which apple will install easily for you with this command run in your terminal:
$ xcode-select --install
When this is finished, run the following command to install the config tool:
$ curl https://jenius.github.io/config/install | sh
This will prompt you to install xcode command line tools, and ask for you password so that it can correctly permission directories to not need sudo in the future as much as possible. If you are worried about giving your password, feel free to scan the source first to make sure no shenanigans are going on. But this is open source so it would be pretty silly for me to write in anything questionable.
This tool has been made very specifically to be modular, so that you can choose and install just the pieces you want if you don't want everything. Everyone has different config preferences, and while I would of course understand if you chose to copy all of mine exactly, since they are the best, I understand that you might not want to. If you don't, you have two choices:
Below, I'll list out each of the install tools, and what they do. This can of course also be found in the source if you'd like more details, but the source is not documentation so I don't expect anyone to look there, and no developer ever should. Document your code!
Install: conf install dotfiles
This task will copy over a nice set of dotfiles for configuring bash preferences. It will overwrite .bashrc
, .bash_profile
, .profile
, and .gitconfig
(make sure to back these up if you already have them configured). It also links in a couple utilities for git and the command line that are loaded via the bash profile.
The real guts of this task are in .profile, which is commented and you should feel free to scan through for specifics. Overall, it gives you a nice pretty prompt including info about git if you're using it, adds a bunch of git shortcuts for common tasks, a couple aliases for rails and powder, and a number of general and fun utility aliases and functions.
Install: conf install osx
This task tweaks a bunch of configuration in OSX. More specifically, it will:
If there are any other optimizations you have made to OSX and enjoyed feel free to open an issue and suggest it!
Install: conf install bins
As developers (I assume the main audience), there are a number of important command line utilities that are useful to have installed. This task uses homebrew to get a few essentials up and running. Specifically:
Install: conf install apps
Thanks to the wonders of homebrew cask, native app installation can now be automated. This task installs the following apps:
Install: conf install node
Pretty straightforward, just installs nodejs, most recent version.
Install: conf install npm
Will automatically install node if not already installed, then put in some useful global npm packages, specifically:
Install: conf install ruby
Uses rbenv to install the latest stable release of ruby. This one takes a few minutes because it is super slow installing ruby, so be prepared to wait. But it will work.
Install: conf install gems
Will install ruby if not already present, then put in some useful ruby gems, specifically:
Install: conf install sublime
Will install sublime text 3 and set up the preferences the way I like them. First, it installs package control, then put in the following packages:
And adjust the user preferences to these.
Install: conf install vim
Sets up vim preferneces to always have syntax highlighting on, sets the color theme to tomorrow-night, and makes indents 2 spaces. Nothing too crazy, I don't use vim as often as sublime for local editing.
Install: conf install git
Installs the latest version of git and prompts you to set it up with your credentials and ssh key.
Install: conf install adium
Installs Adium if not already present, reskins it to look awesome, and adds a few useful extensions.
Install: conf install desktop
Sets your desktop background to my current desktop of choice ; )
Sets your screen saver to the wonderful nibbble for design inspiration.
Install: conf install screensaver