Source URL: Opal on Github

What do you do when you have a mac or linux computer, and you get another one? You’ve spent a lot of  time customizing your command line via your dot files (.bashrc, .bash_profile, .gitconfig, .vimrc, etc) over the last few years. Normally getting your command line configured on your new machine often takes a lot of work. If you’re like most people, it’s because the reusable parts are mixed in with the environment-specific parts. That’s where Opal can help.

Opal is  linux/unix command line framework for power users and web developers. Its’ design makes it re-usable across users and machines, and is easily extendable. Initially, Opal was  created as a personal project to share my configuration across computers. During my research, people had created a number of cool solutions, that were virtually identical. The drawback was they weren’t shareable or reusable. To make them reusable, I added many of such snippets to Opal. I wanted the project to be useful for others as well – so I made it extensible. Each major UNIX config file is created so that it includes the base configuration from Opal at the top, allowing the user to add their own below. Here’s a minimal .bashrc example to demonstrate what I mean.

source ~/opal/bash/bashrc

# Add you config below
source ~/.bash-aliases

alias gca="git commit -a"
alias ll="ls -l"

The 3 main pieces are Bash, Vim, and Git. Some users prefer ZShell, while others C Shell. However, I focus on Bash, since it has the biggest user base across Linux and Mac systems.

Bash Shell Configuration

The .bashrc and .bash_profile provide a default shell configuration.


Vim Editor Configuration

A set of Vim files are provided, one for general editing, as well as a configuration file for a number of major open source projects like WordPress, Drupal, CodeIgniter, Zend Framework. A number of utility commands to make your command line experience little easier,  a little better.

It was designed in part, with the hope of minimizing the duplication across individual dotfiles projects. Several utility functions are included, as well as multiple vimrc files to help web developers