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.
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.
brew cask install ubersicht
Library -> Application Support -> Übersicht -> widgets. However, what i do is i setup my widgets to be in my Github repo or dropbox folder so that they are synced and can be backed up and i link the folder directly to the desired location via
ln -s ~/Projects/Configurations/config/widgets/ ~/Library/Application\ Support/U¨bersicht/widgetswhere the first parameter is the location of the
widgets/folder cloned. Note I have included the folder link in my
.osxfile, you may need to adjust the path of the first argument.
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/ 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.
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
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
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
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.
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
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:
gitignorerepo for easy fetching of
.gitignorefiles into various projects
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:
update.shscript. Usually this is good when you have lots of changes in your repos and you wish to fetch all the changes afterwards, but simply skip this if this is a fresh installation.
oh-my-zshscripts by symlinking the folder and the
zsh-syntax-highlightingand does that automatically.
bash-itscript files and guide throughout the installation process.
grcfor command output coloring
It will install
homebrew and the following brew formulas:
It will install
cask and the following applications:
Terminalthemes as prompt you for the name of the color scheme you want to apply and apply it for you
.osxfile which contains some system wide modifications and runs it for you. I recommend that you read the
.osxfile and enable or disable the features that you like. I also create some symlinks there for my Sublime Text 3 configurations and the widgets of Übersicht.
sh update.sh and it will take care of the rest