Stepping up your dev game

Setting-up a superhero development environment

May 23 2015
Reading Time: 11 minutes
Contribute to this post on Github

Setting up a proper development environment can be a tedious task. This post walks you through various configuration and automatic bash scripts that i have created to help automate setting up your development environment

In every developer time, there comes a time when he has to set-up his new working environment. For me, the transition from Windows powered PC to a Mac OSX powered laptop was one of the best things I did in my career. I found the openness of things you can do on a Unix based system accompanied with a solid appealing set of software. However, setting everything the way you want it can be time consuming, so i decided after few trials and errors to share my experience in customizing my machine and how it can be easily transferred into other machines as well.

Customizing the UI

mac-osx-desktop
MacOSX Custom layout and widgets

First, lets start with the light weight things. The desktop and general UI enhancement. I always love to show some nice widgets on my desktop, for that i am using Übersicht. I have used Geektool which basically allows you to run custom scripts and display them on the desktop, but i wasn’t at all happy with the experience of styling those “widgets” and the availability of 3rd party widgets. Übersicht lets you run system commands and display their output on your desktop in little containers, called widgets. Widgets are written using HTML5, which means they are:

There is already a nice set of widgets published in the gallery. In my widgets folder, you will find the set of widgets i am using with customized positioning and styling.

Widgets

Installation

Other Widgets

One element that i use that is not part of Übersicht is Dateline. It is a discrete desktop calendar with support to iCal and other calendar applications.

Geeklets

In the geeklets/ folder there is a backup of the deprecated Geeklet scripts that i used with the old Geektool. If you still prefer it over Übersicht then feel free to use them.

Dock & Desktop Icons

In the flat-icons you will find the set of flat icons i have used for my mounted HDD icons and the dock. To easily change application icons, i suggest you use LiteIcon which can be also installed via my caskfile.sh

To further customize the dock, i use Dockmod which is the most feature-rich application for dock theming with support up to OSX Yosemite in order to provide a transparent Dock background. Dockmod can be also installed via my caskfile.

I also remove the arrow icons for aliases/shortcuts which can be done automatically when executing my .osx file or manually by typing the following command in the terminal:

mv /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/AliasBadgeIcon.icns /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/AliasBadgeIcon_OFF.icns

Finder

Although i have the latest OSX Yosemite update, i am still unhappy with the capabilities of the Finder. I have found that PathFinder is a great replacement. Just head over and you can check the list of things you can do with this great piece of software.

Other Tools

Alfred Workflows

Workflows are one of the key features in Alfred v2; They provide a way for you to extend Alfred to perform the tasks you need more efficiently.

For example, with a workflow, you can launch a group of applications from a hotkey, create custom search filters for frequent searches or run scripts from a keyword.

The Workflows i use are (Located in the workflows folder):

Workflows Reference

Setting-up the Machine

Developers are very picky about their working environment. We may consolidate various . files tailed for our tastes over years and track the change in a version control system. It’s no secret that on the UNIX world, dotfiles play a very important part when it comes to making your terminal look good. Be it on Linux, be it on a Mac. Dotfiles are there so you can configure your favorite software to look just the way you like it.

Dotfiles can be used to customize the look of the terminal, to manage bundles with Vim and saving configuration for almost anything.

One thing that normally annoys me, is the fact that whenever I rebuild my machine (or build a new one) I need to copy over my dotfiles, and obviously make sure they are kept up-to-date on all my devices when I change something.

My configuration consists of the following:

Installation

First of all you will have to clone this repository into your local machine, and since there are a bunch of other git modules in this repo, you will need to recursively clone this repository and all of it children using:

git clone --recursive http://github.com/ahmadassaf/Configurations

Note If you have cloned without –recursive, you may find out that some folders are empty. To fix this:

git submodule update --init

Afterwards you can launch the installation by running sh install.sh. What this will do is:

Updates

Simply run sh update.sh and it will take care of the rest


Twitter Facebook Google+