My Development Setup on a Macbook
Tags: python, programming, javascript
Published: 2016-11-04 14:13:26

---
title: My Development Setup on a Macbook
published: true
description: Lightweight dev tools for a perfect dev environment
cover_image: https://cdn-images-1.medium.com/max/1600/1*4cK7ZH4hBqLJvecS9e02EA.png
tags: Python, Programming, Javascript
---

I recently purchased a new 13" Macbook Pro 2015(after Apple's brilliant keynote) and quite like it so far. This is my first experience with macOS. After using strictly GNU/Linux distros for about 4 years(Fedora, Ubuntu, Mint, Arch, Elementary OS) I finally decided to take the plunge and use macOS. The battery life, excellent keyboard and trackpad, a beautiful display makes coding on it a really enjoyable experience. Something that I was surely missing on my bulky HP Pavilion G6.

![newmacbook](https://cdn-images-1.medium.com/max/1600/1*4cK7ZH4hBqLJvecS9e02EA.png)

Before starting off with my development setup, I would say there are a plenty of such blog-posts and guides available to make your machine the #ultimatedevmachine. The aim of this post is not that but just to share some of the tools I believe make your macOS experience more complete. I personally followed [this](https://github.com/nicolashery/mac-dev-setup) as the holy grail but I'll break it down for you to include only the most relevant things that a generalist developer can install on her laptop and also not make it bloated.

## iTerm2
As developers spend most of the time tinkering with stuff on terminals, the first thing that you should do is to replace macOS default terminal with iTerm2. It has a lot of great features, about which you can read more [here](http://www.iterm2.com/features.html).
I'm using Solarized Dark theme which can be easily downloaded over [here](http://ethanschoonover.com/solarized). Apart from this, there are several other customisations which I simply took from this [guide](https://github.com/nicolashery/mac-dev-setup#beautiful-terminal).
![Beautiful terminal experience withÂ iTerm2](https://cdn-images-1.medium.com/max/1600/1*e-vvoq1ZzKbsaV_nPaUNgA.png)

## Homebrew
It's the essential package manager every developer should be using. It makes installing other packages very convenient by downloading latest stable release, creating a symlink to `/usr/local` and some really cool features like installing directly from a PR. You can read more about such features here. As a learning exercise for myself, I am going to try my hands on creating a formula for [coala](https://coala.readthedocs.org/).

## zsh
No discussion of the terminal should ever be complete without mentioning zsh even once IMHO. I've been using zsh for 2 years and there's just no going back to old school bash. I've got so accustomed to zsh that it feels almost impossible to work on bash anymore. You can install zsh by
`brew install zsh`
![zsh beingÂ brewed](https://cdn-images-1.medium.com/max/1600/1*0iHDpfIHgRK96x_hnb8vIw.png)

I also use `Prezto` along with zsh rather than the popular `Oh My Zsh!` because it's darn slow after a couple of plugins. You can follow the installation details present in the official documentation here.
To change default theme you need to edit the following line in `~./zpreztorc`

`zstyle â€˜:prezto:module:prompt' theme â€˜powerline'` 

with the theme name. You can find out all theme names using

`prompt -l` 

You can find a comprehensive list of all things zsh over [here](https://github.com/unixorn/awesome-zsh-plugins).

## Sublime Text
As a developer you'll also spend a hefty time with editors as they are the place where magic happens. I have setup my Sublime Text to maximize my productivity while coding. I use the following plugins, but first in order to install any one of them you need to [install](https://packagecontrol.io/installation) Package Control which is the package manager for Sublime Text.
After you have setup Package Control, you can verify that it should look like:

![âŒ˜+shift+ P](https://cdn-images-1.medium.com/max/1600/1*ngOH3TNldmqJk418wsInMA.png)

Some of the plugins I use: 
- [SideBarEnhancements](https://github.com/SideBarEnhancements-org/SideBarEnhancements/tree/st3)
- [Emmet](http://emmet.io/) (A great time saver!)
- [SublimeLinter](http://www.sublimelinter.com/en/latest/)
- [ColorPicker](https://packagecontrol.io/packages/ColorPicker)
- [BracketHighlighter](https://packagecontrol.io/packages/BracketHighlighter)

I'm using [Material Theme](https://github.com/equinusocio/material-theme) which really prettifies it by a stretch.
![Material Theme on SublimeÂ Text](https://cdn-images-1.medium.com/max/1600/1*w0Fbwfsrzba83RCNkWHXnw.png)

# Vim
I'm learning to use more and more Vim these days so I'll keep this section as a TBA and will update soon.

# macOS Apps
These are some of the apps that I believe should come preinstalled in any macOS.

- Alfred
- InsomniaX
- CleanmyMac3
- Omnifocus
- Ulysses
- Android File Transfer
- Cheatsheetapp
- iStatMenus

So far I'm really happy with it but will keep adding tools or plugins that I find on the go. I am still in the honeymoon phase with my Mac so if you think I did an injustice to this post by not including your favourite tool, tweet it out to me and I'll definitely check it out.
Till then, Happy Coding!

This article was originally posted on my blog over [here](https://medium.com/@mrkaran/my-development-setup-7e767d33fc41#.epefeqil5)