Code Monkey home page Code Monkey logo

dotfiles's Introduction

A custom dotfile configuration based on the excellent oh-my-zsh framework by Robby Russell.

Setup

Installation

NOTE: Git is required for installation.

curl "https://raw.githubusercontent.com/jonoliver/dotfiles/master/script/install.sh" | sh

The above command will do the following:

  • Install oh-my-zsh at ~/.oh-my-zsh (if not already installed)
  • Install dotfiles at ~/.dotfiles (backing up any existing "dotfiles" directory)
  • Symlink ~/.dotfiles/zshrc to ~/.zshrc (backing up any existing ".zshrc" file)

That's nice, but let's install some cool stuff!

dot && ./script/tool_installer.sh

The above command will install lots of useful stuff, including:

Features

Customization

The /custom directory is used to override the default oh-my-zsh functionality. Any configuration files added to this directory with a .zsh extension will automtically be loaded when the Terminal is started. More information can be found in the oh-my-zsh README.

Environment

env.zsh contains configuration settings related to environment and theme. You can modify this file to change how your Terminal looks and acts based on your environment.

You can also define functions to change these settings based on the type of coding environment you are working in. For example, running rubyenv will customize the Terminal for a Ruby environment, changing your editor and displaying the Ruby version in the prompt (if running RVM or rbenv). Running defaultenv will restore the original default settings.

Theme

Commando is a custom theme located under custom/themes. This theme includes several variables which can be set in order to display certain information in the command prompt:

THEME_USERNAME=true      #Display the username
THEME_MACHINENAME=true   #Display the machine name
THEME_RUBYVERSION=true   #Display the ruby version
THEME_DATETIME=true      #Display the date/time

These variables can be set directly from the command line or from env.zsh or any other .zsh file in the /custom directory.

Aliases

This configuration was built with productivity in mind. As such, the ability to easily manage and recall custom aliases is an important requirement. There are several aliases that exist to help with this functionality:

# reload all config files
alias rl="source $DOTFILES/zshrc"

# display aliases
alias al="alias"

# reload aliases
alias arl="source $ALIASFILE"

# edit aliases
alias aed='$EDITOR $ALIASFILE'

# search aliases for pattern
alias ag='alias | grep'

Private files

Any files containing .private. in the filename will not be tracked by git. This is useful for adding .zsh configuration files to the custom folder that may contain private information or machine specific information. For example, a user may include a user.private.zsh on their local machine, or a server.private.zsh on their server containing private configuration details.

Bonus: Extra color schemes for iTerm users

If you are using iTerm (and if you're on a Mac, you probably should be), there are a few color schemes available in the /iterm directory. These are modified versions of of some of the schemes that can be found at iterm2colorschemes.com. Installation instructions can be found here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.