weaning off oh my zsh

Since December 2011, I've been working with ZSH, an alternate shell for *nix-based operating systems which has conventions similar to BASH, ZSH adds a number of more modern features to the standard shell fare, such as more customization options for your prompt and extendable autocompletion. To get started on it, I've employed the lovely Oh My ZSH framework which helps to organize your ZSH settings (.zshrc) and use functionality developed by others so you can explore the wonderful possibilities of this awesome shell.

Oh My ZSH was designed for new users, and is meant to be replaced at some point in the future by a .zshrc that handles everything. This was also my eventual goal, but after getting more comfortable with Oh My ZSH, I began realizing that I would be missing out on a number of enhancements it gives my shell experience:

I need a framework for ZSH that can accomplish these goals, but doesn't bother with the theming or tricks designed to enable newbies to use ZSH. As someone mildly comfortable with this shell already, I want something a little more powerful but maybe not so easy to use.

Introducing DOTS

The features of Oh My ZSH I highlighted above make it a possibility to use as a power user of ZSH. But as the aim of the Oh My ZSH project is to help newer users get acquainted with the shell, I've decided to start my own project, forked from Oh My ZSH but without the newbie sugar like themes and installation management tasks. I figure everyone can figure that out on their own. The idea behind this framework is for you to fork it, and maintain that fork with your own "dot files", scripts and other home-dir tools you need for general hackery. Once again, it's meant as a starting point but it strips away unnecessary shit that you're never, ever going to use.

Git it!

So you wanna try it out? First, uninstall Oh My ZSH! (rm -rf ~/.oh-my-zsh) and run this little diddy:

curl -L https://github.com/tubbo/dots/raw/master/tools/install.sh | sh

Persisting your dot files

Not only is DOTS designed to take care of your basic ZSH tasks, it also persists your home directory configuration files ("dot files") across your machines. To invoke this feature, simply type the following in your home directory:

persist .gemrc

(or whatever file you want persisted)

This will move the file to ~/.dots/config/gemrc, add it to the git repository, and symlink ~/.gemrc to ~/.dots/config/gemrc. You can now commit this file into Git and synchronize it across machines when you update dots!

To stop persisting a file, type:

forget .gemrc

This will replace the symlink with the file it's linked to and remove it from the Git repository. You will have to make a commit to confirm this change.

Posted on .