diff --git a/MIT-LICENSE.txt b/MIT-LICENSE.txt
new file mode 100644
index 000000000..42f607f5d
--- /dev/null
+++ b/MIT-LICENSE.txt
@@ -0,0 +1,22 @@
+The MIT License (MIT)
+
+Copyright (c) 2009-2016 Robby Russell and contributors
+See the full list at https://github.com/robbyrussell/oh-my-zsh/contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/README.markdown b/README.markdown
new file mode 100644
index 000000000..1edabcf20
--- /dev/null
+++ b/README.markdown
@@ -0,0 +1,213 @@
+
+
+
+
+Oh My Zsh is an open source, community-driven framework for managing your [zsh](http://www.zsh.org/) configuration. That sounds boring. Let's try this again.
+
+__Oh My Zsh is a way of life!__ Once installed, your terminal prompt will become the talk of the town _or your money back!_ Each time you interact with your command prompt, you'll be able to take advantage of the hundreds of bundled plugins and pretty themes. Strangers will come up to you in cafés and ask you, _"that is amazing. are you some sort of genius?"_ Finally, you'll begin to get the sort of attention that you always felt that you deserved. ...or maybe you'll just use the time that you saved to start flossing more often.
+
+To learn more, visit [ohmyz.sh](http://ohmyz.sh) and follow [@ohmyzsh](https://twitter.com/ohmyzsh) on Twitter.
+
+## Getting Started
+
+### Prerequisites
+
+__Disclaimer:__ _Oh My Zsh works best on Mac OS X and Linux._
+
+* Unix-based operating system (Mac OS X or Linux)
+* [Zsh](http://www.zsh.org) should be installed (v4.3.9 or more recent). If not pre-installed (`zsh --version` to confirm), check the following instruction here: [Installing ZSH](https://github.com/MaximKraev/oh-my-zsh/wiki/Installing-ZSH)
+* `curl` or `wget` should be installed
+* `git` should be installed
+
+### Basic Installation
+
+Oh My Zsh is installed by running one of the following commands in your terminal. You can install this via the command-line with either `curl` or `wget`.
+
+#### via curl
+
+```shell
+sh -c "$(curl -fsSL https://raw.github.com/MaximKraev/oh-my-zsh/master/tools/install.sh)"
+```
+
+#### via wget
+
+```shell
+sh -c "$(wget https://raw.github.com/MaximKraev/oh-my-zsh/master/tools/install.sh -O -)"
+```
+
+## Using Oh My Zsh
+
+### Plugins
+
+Oh My Zsh comes with a shit load of plugins to take advantage of. You can take a look in the [plugins](https://github.com/MaximKraev/oh-my-zsh/tree/master/plugins) directory and/or the [wiki](https://github.com/MaximKraev/oh-my-zsh/wiki/Plugins) to see what's currently available.
+
+#### Enabling Plugins
+
+If you spot a plugin (or several) that you would like to use with Oh My Zsh, you will need to edit the `~/.zshrc` file. Once you open it with your favorite editor, you'll see a spot to list all the plugins that you'd like Oh My Zsh to load in initialization.
+
+For example, this line might begin to look like...
+
+```shell
+plugins=(git bundler osx rake ruby)
+```
+
+#### Using Plugins
+
+Most plugins (should! we're working on this) include a __README__, which documents how to use them.
+
+### Themes
+
+We'll admit it. Early in the Oh My Zsh world, we may have gotten a bit too theme happy. We have over one hundred themes now bundled. Most of them have [screenshots](https://wiki.github.com/MaximKraev/oh-my-zsh/themes) on the wiki. Check them out!
+
+#### Selecting a Theme
+
+_Robby's theme is the default one. It's not the fanciest one. It's not the simplest one. It's just right (for him)._
+
+Once you find a theme that you want to use, you will need to edit the `~/.zshrc` file. You'll see an environment variable (all caps) in there that looks like:
+
+```shell
+ZSH_THEME="MaximKraev"
+```
+
+To use a different theme, simply change the value to match the name of your desired theme. For example:
+
+```shell
+ZSH_THEME="agnoster" # (this is one of the fancy ones)
+```
+
+Open up a new terminal window and your prompt should look something like...
+
+
+
+In case you did not find a suitable theme for your needs, please have a look at the wiki for [more of them](https://github.com/MaximKraev/oh-my-zsh/wiki/External-themes).
+
+If you're feeling feisty, you can let the computer select one randomly for you each time you open a new terminal window.
+
+
+```shell
+ZSH_THEME="random" # (...please let it be pie... please be some pie..)
+```
+
+
+## Advanced Topics
+
+If you're the type that likes to get their hands dirty, these sections might resonate.
+
+### Advanced Installation
+
+Some users may want to change the default path, or manually install Oh My Zsh.
+
+#### Custom Directory
+
+The default location is `~/.oh-my-zsh` (hidden in your home directory)
+
+If you'd like to change the install directory with the `ZSH` environment variable, either by running `export ZSH=/your/path` before installing, or by setting it before the end of the install pipeline like this:
+
+```shell
+export ZSH="$HOME/.dotfiles/oh-my-zsh"; sh -c "$(curl -fsSL https://raw.github.com/MaximKraev/oh-my-zsh/master/tools/install.sh)"
+```
+
+#### Manual Installation
+
+##### 1. Clone the repository:
+
+```shell
+git clone git://github.com/MaximKraev/oh-my-zsh.git ~/.oh-my-zsh
+```
+
+##### 2. *Optionally*, backup your existing `~/.zshrc` file:
+
+```shell
+cp ~/.zshrc ~/.zshrc.orig
+```
+
+##### 3. Create a new zsh configuration file
+
+You can create a new zsh config file by copying the template that we included for you.
+
+```shell
+cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
+```
+
+##### 4. Change your default shell
+
+```shell
+chsh -s /bin/zsh
+```
+
+##### 5. Initialize your new zsh configuration
+
+Once you open up a new terminal window, it should load zsh with Oh My Zsh's configuration.
+
+### Installation Problems
+
+If you have any hiccups installing, here are a few common fixes.
+
+* You _might_ need to modify your `PATH` in `~/.zshrc` if you're not able to find some commands after switching to `oh-my-zsh`.
+* If you installed manually or changed the install location, check the `ZSH` environment variable in `~/.zshrc`.
+
+### Custom Plugins and Themes
+
+If you want to override any of the default behaviors, just add a new file (ending in `.zsh`) in the `custom/` directory.
+
+If you have many functions that go well together, you can put them as a `XYZ.plugin.zsh` file in the `custom/plugins/` directory and then enable this plugin.
+
+If you would like to override the functionality of a plugin distributed with Oh My Zsh, create a plugin of the same name in the `custom/plugins/` directory and it will be loaded instead of the one in `plugins/`.
+
+## Getting Updates
+
+By default, you will be prompted to check for upgrades every few weeks. If you would like `oh-my-zsh` to automatically upgrade itself without prompting you, set the following in your `~/.zshrc`:
+
+```shell
+DISABLE_UPDATE_PROMPT=true
+```
+
+To disable automatic upgrades, set the following in your `~/.zshrc`:
+
+```shell
+DISABLE_AUTO_UPDATE=true
+```
+
+### Manual Updates
+
+If you'd like to upgrade at any point in time (maybe someone just released a new plugin and you don't want to wait a week?) you just need to run:
+
+```shell
+upgrade_oh_my_zsh
+```
+
+Magic!
+
+## Uninstalling Oh My Zsh
+
+Oh My Zsh isn't for everyone. We'll miss you, but we want to make this an easy breakup.
+
+If you want to uninstall `oh-my-zsh`, just run `uninstall_oh_my_zsh` from the command-line. It will remove itself and revert your previous `bash` or `zsh` configuration.
+
+## Contributing
+
+I'm far from being a [Zsh](http://www.zsh.org/) expert and suspect there are many ways to improve – if you have ideas on how to make the configuration easier to maintain (and faster), don't hesitate to fork and send pull requests!
+
+We also need people to test out pull-requests. So take a look through [the open issues](https://github.com/MaximKraev/oh-my-zsh/issues) and help where you can.
+
+### Do NOT send us themes
+
+We have (more than) enough themes for the time being. Please add your theme to the [external themes](https://github.com/MaximKraev/oh-my-zsh/wiki/External-themes) wiki page.
+
+## Contributors
+
+Oh My Zsh has a vibrant community of happy users and delightful contributors. Without all the time and help from our contributors, it wouldn't be so awesome.
+
+Thank you so much!
+
+## Follow Us
+
+We have an [@ohmyzsh](https://twitter.com/ohmyzsh) Twitter account. You should follow it.
+
+## Merchandise
+
+We have [stickers](http://shop.planetargon.com/products/ohmyzsh-stickers-set-of-3-stickers) and [shirts](http://shop.planetargon.com/products/ohmyzsh-t-shirts) for you to show off your love of Oh My Zsh. Again, this will help you become the talk of the town!
+
+## License
+
+Oh My Zsh is released under the [MIT license](MIT-LICENSE.txt).
diff --git a/cache/.easter-egg b/cache/.easter-egg
new file mode 100644
index 000000000..4b6164edb
--- /dev/null
+++ b/cache/.easter-egg
@@ -0,0 +1,4 @@
+This file is only here so that Git will keep a cache directory as .gitignore is ignoring all the files within it.
+
+Feel free to add love notes for people here.
+
diff --git a/lib/history.zsh b/lib/history.zsh
index 5de71c2d3..c7ac07679 100644
--- a/lib/history.zsh
+++ b/lib/history.zsh
@@ -20,5 +20,7 @@ setopt hist_expire_dups_first
setopt hist_ignore_dups # ignore duplication command history list
setopt hist_ignore_space
setopt hist_verify
+setopt hist_no_store
+setopt hist_find_no_dups
setopt inc_append_history
setopt share_history # share command history data
diff --git a/log/.easter-egg b/log/.easter-egg
new file mode 100644
index 000000000..2533149e2
--- /dev/null
+++ b/log/.easter-egg
@@ -0,0 +1,4 @@
+This file is only here so that Git will keep a log directory as .gitignore is ignoring all the log files within it.
+
+feel free to add love notes for people here.
+
diff --git a/plugins/archlinux/_yaourt b/plugins/archlinux/_yaourt
new file mode 100644
index 000000000..32e47347e
--- /dev/null
+++ b/plugins/archlinux/_yaourt
@@ -0,0 +1,336 @@
+#compdef yaourt yaourt.static=yaourt
+
+# copy this file to /usr/share/zsh/site-functions/_pacman
+
+typeset -A opt_args
+
+# options for passing to _arguments: main pacman commands
+_yaourt_opts_commands=(
+ '-Q[Query the package database]'
+ '-R[Remove a package from the system]'
+ '-S[Synchronize packages]'
+ '-U[Upgrade a package]'
+ '-V[Display version and exit]'
+ '-h[Display usage]'
+ '-B[backup pacman database]'
+ '-G[Get PKGBUILD]'
+ '-C[Clean backup files]'
+ '--stats[Package Statistics]'
+)
+
+# options for passing to _arguments: options common to all commands
+_yaourt_opts_common=(
+ '-b[Alternate database location]:database_location:_files -/'
+ '-h[Display syntax for the given operation]'
+ '-r[Set alternate installation root]:installation root:_files -/'
+ '-v[Be more verbose]'
+ '--cachedir[Alternate package cache location]:cache_location:_files -/'
+ '--config[An alternate configuration file]:config file:_files'
+ '--logfile[An alternate log file]:config file:_files'
+ '--noconfirm[Do not ask for confirmation]'
+ '--noprogressbar[Do not show a progress bar when downloading files]'
+ '--noscriptlet[Do not execute the install scriptlet if one exists]'
+ '--print[Only print the targets instead of performing the operation]'
+)
+
+# options for passing to _arguments: options for --upgrade commands
+_yaourt_opts_pkgfile=(
+ '-d[Skip dependency checks]'
+ '-f[Overwrite conflicting files]'
+ '*:package file:_files -g "*.pkg.tar.*(.)"'
+)
+
+# options for passing to _arguments: subactions for --query command
+_yaourt_opts_query_actions=(
+ '-g[View all members of a package group]:*:package groups:->query_group'
+ '-o[Query the package that owns a file]:file:_files'
+ '-p[Package file to query]:*:package file:->query_file'
+ '-s[Search package names and descriptions]:*:search text:->query_search'
+)
+
+# options for passing to _arguments: options for --query and subcommands
+_yaourt_opts_query_modifiers=(
+ '-c[List package changelog]'
+ '-d[List packages installed as dependencies]'
+ '-e[List packages explicitly installed]'
+ '-i[View package information]'
+ '-ii[View package information including backup files]'
+ '-k[Check package files]'
+ '-l[List package contents]'
+ '-m[List installed packages not found in sync db(s)]'
+ '-t[List packages not required by any package]'
+ '-u[List packages that can be upgraded]'
+ '--aur[Install packages from aur, even if they are in community, or, with the -u option, update packages installed from aur]'
+ '--devel[Used with -u updates all cvs/svn/git/hg/bzr packages]'
+)
+
+# options for passing to _arguments: options for --remove command
+_yaourt_opts_remove=(
+ '-c[Remove all dependent packages]'
+ '-d[Skip dependency checks]'
+ '-k[Only remove database entry, do not remove files]'
+ '-n[Remove protected configuration files]'
+ '-s[Remove dependencies not required by other packages]'
+ '*:installed package:_yaourt_completions_installed_packages'
+)
+
+# options for passing to _arguments: options for --sync command
+_yaourt_opts_sync_actions=(
+ '*-c[Remove old packages from cache]:*:clean:->sync_clean'
+ '*-cc[Remove all packages from cache]:*:clean:->sync_clean'
+ '-g[View all members of a package group]:*:package groups:->sync_group'
+ '-s[Search package names and descriptions]:*:search text:->sync_search'
+)
+
+# options for passing to _arguments: options for --sync command
+_yaourt_opts_sync_modifiers=(
+ '-d[Skip dependency checks]'
+ '-f[Overwrite conflicting files]'
+ '-i[View package information]'
+ '-l[List all packages in a repository]'
+ '-p[Print download URIs for each package to be installed]'
+ '-u[Upgrade all out-of-date packages]'
+ '-w[Download packages only]'
+ '-y[Download fresh package databases]'
+ '*--ignore[Ignore a package upgrade]:package:
+ _yaourt_completions_all_packages'
+ '*--ignoregroup[Ignore a group upgrade]:package group:
+ _yaourt_completions_all_groups'
+ '--asdeps[Install packages as non-explicitly installed]'
+ '--asexplicit[Install packages as explicitly installed]'
+)
+
+# handles --help subcommand
+_yaourt_action_help() {
+ _arguments -s : \
+ "$_yaourt_opts_commands[@]"
+}
+
+# handles cases where no subcommand has yet been given
+_yaourt_action_none() {
+ _arguments -s : \
+ "$_yaourt_opts_commands[@]"
+}
+
+# handles --query subcommand
+_yaourt_action_query() {
+ local context state line
+ typeset -A opt_args
+
+# _arguments -s : \
+# "$_yaourt_opts_common[@]" \
+# "$_yaourt_opts_query_actions[@]" \
+# "$_yaourt_opts_query_modifiers[@]"
+
+ case $state in
+ query_file)
+ _arguments -s : \
+ "$_yaourt_opts_common[@]" \
+ "$_yaourt_opts_query_modifiers[@]" \
+ '*:package file:_files -g "*.pkg.tar.*"'
+ ;;
+ query_group)
+ _arguments -s : \
+ "$_yaourt_opts_common[@]" \
+ "$_yaourt_opts_query_modifiers[@]" \
+ '*:groups:_yaourt_completions_installed_groups'
+ ;;
+ query_owner)
+ _arguments -s : \
+ "$_yaourt_opts_common[@]" \
+ "$_yaourt_opts_query_modifiers[@]" \
+ '*:file:_files'
+ ;;
+ query_search)
+ _arguments -s : \
+ "$_yaourt_opts_common[@]" \
+ "$_yaourt_opts_query_modifiers[@]" \
+ '*:search text: '
+ ;;
+ *)
+ _arguments -s : \
+ "$_yaourt_opts_common[@]" \
+ "$_yaourt_opts_query_actions[@]" \
+ "$_yaourt_opts_query_modifiers[@]" \
+ '*:package:_yaourt_completions_installed_packages'
+ ;;
+ esac
+}
+
+# handles --remove subcommand
+_yaourt_action_remove() {
+ _arguments -s : \
+ "$_yaourt_opts_common[@]" \
+ "$_yaourt_opts_remove[@]"
+}
+
+# handles --sync subcommand
+_yaourt_action_sync() {
+ local context state line
+ typeset -A opt_args
+
+# _arguments -s : \
+# "$_yaourt_opts_common[@]" \
+# "$_yaourt_opts_sync_actions[@]" #\
+# #"$_yaourt_opts_sync_modifiers[@]"
+
+ case $state in
+ sync_clean)
+ _arguments -s : \
+ "$_yaourt_opts_common[@]" \
+ "$_yaourt_opts_sync_modifiers[@]" \
+ '*-c[Remove old packages from cache]' \
+ ;;
+ sync_group)
+ _arguments -s : \
+ "$_yaourt_opts_common[@]" \
+ "$_yaourt_opts_sync_modifiers[@]" \
+ '*:package group:_yaourt_completions_all_groups'
+ ;;
+ sync_search)
+ _arguments -s : \
+ "$_yaourt_opts_common[@]" \
+ "$_yaourt_opts_sync_modifiers[@]" \
+ '*:search text: '
+ ;;
+ *)
+ _arguments -s : \
+ "$_yaourt_opts_common[@]" \
+ "$_yaourt_opts_sync_modifiers[@]" \
+ '*:package:_yaourt_completions_all_packages'
+ ;;
+ esac
+}
+
+# handles --upgrade subcommand
+_yaourt_action_upgrade() {
+ _arguments -s : \
+ "$_yaourt_opts_common[@]" \
+ "$_yaourt_opts_pkgfile[@]"
+}
+
+# handles --version subcommand
+_yaourt_action_version() {
+ # no further arguments
+ return 0
+}
+
+# provides completions for package groups
+_yaourt_completions_all_groups() {
+ local -a cmd groups
+ _yaourt_get_command
+ groups=( $(_call_program groups $cmd[@] -Sg) )
+ typeset -U groups
+ compadd "$@" -a groups
+}
+
+# provides completions for packages available from repositories
+# these can be specified as either 'package' or 'repository/package'
+_yaourt_completions_all_packages() {
+ local -a cmd packages repositories packages_long
+ _yaourt_get_command
+
+ if compset -P1 '*/*'; then
+ packages=( $(_call_program packages $cmd[@] -Sql ${words[CURRENT]%/*}) )
+ typeset -U packages
+ _wanted repo_packages expl "repository/package" compadd ${(@)packages}
+ else
+ packages=( $(_call_program packages $cmd[@] -Sql) )
+ typeset -U packages
+ _wanted packages expl "packages" compadd - "${(@)packages}"
+
+ repositories=(${(o)${${${(M)${(f)"$(command' \
+ ':subcmd:->subcmd' \
+ '*::options:->options'
+
+ case $state in
+ (command)
+ __call_original_brew
+ cask_commands=(
+ 'cask:manage casks'
+ )
+ _describe -t commands 'brew cask command' cask_commands ;;
+
+ (subcmd)
+ case "$line[1]" in
+ cask)
+ if (( CURRENT == 3 )); then
+ local -a subcommands
+ subcommands=(
+ "alfred:used to modify Alfred's scope to include the Caskroom"
+ 'audit:verifies installability of casks'
+ 'checklinks:checks for bad cask links'
+ 'cleanup:cleans up cached downloads'
+ 'create:creates a cask of the given name and opens it in an editor'
+ 'doctor:checks for configuration issues'
+ 'edit:edits the cask of the given name'
+ 'fetch:downloads Cask resources to local cache'
+ 'home:opens the homepage of the cask of the given name'
+ 'info:displays information about the cask of the given name'
+ 'install:installs the cask of the given name'
+ 'list:with no args, lists installed casks; given installed casks, lists installed files'
+ 'search:searches all known casks'
+ 'uninstall:uninstalls the cask of the given name'
+ "update:a synonym for 'brew update'"
+ )
+ _describe -t commands "brew cask subcommand" subcommands
+ fi ;;
+
+ *)
+ __call_original_brew ;;
+ esac ;;
+
+ (options)
+ local -a casks installed_casks
+ local expl
+ case "$line[2]" in
+ list|uninstall)
+ __brew_installed_casks
+ _wanted installed_casks expl 'installed casks' compadd -a installed_casks ;;
+ audit|edit|home|info|install)
+ __brew_all_casks
+ _wanted casks expl 'all casks' compadd -a casks ;;
+ esac ;;
+ esac
+}
+
+__brew_all_casks() {
+ casks=(`brew cask search`)
+}
+
+__brew_installed_casks() {
+ installed_casks=(`brew cask list`)
+}
+
+__call_original_brew()
+{
+ local ret=1
+ _call_function ret _brew
+ compdef _brew-cask brew
+}
diff --git a/plugins/brew/_brew b/plugins/brew/_brew
new file mode 100644
index 000000000..1f24bd67b
--- /dev/null
+++ b/plugins/brew/_brew
@@ -0,0 +1,145 @@
+#compdef brew
+#autoload
+
+# imported from https://github.com/Homebrew/homebrew/blob/29f73d2212c2b202fe25f69dcbf440d8391fa4c9/Library/Contributions/brew_zsh_completion.zsh
+
+# Brew ZSH completion function
+# Drop this somewhere in your $fpath (like /usr/share/zsh/site-functions)
+# and rename it _brew
+#
+# altered from _fink
+
+_brew_all_formulae() {
+ formulae=(`brew search`)
+}
+
+_brew_installed_formulae() {
+ installed_formulae=(`brew list`)
+}
+
+_brew_installed_taps() {
+ installed_taps=(`brew tap`)
+}
+
+_brew_official_taps() {
+ official_taps=(`brew tap --list-official`)
+}
+
+_brew_pinned_taps() {
+ pinned_taps=(`brew tap --list-pinned`)
+}
+
+_brew_outdated_formulae() {
+ outdated_formulae=(`brew outdated`)
+}
+
+local -a _1st_arguments
+_1st_arguments=(
+ 'audit:check formulae for Homebrew coding style'
+ 'cat:display formula file for a formula'
+ 'cleanup:uninstall unused and old versions of packages'
+ 'commands:show a list of commands'
+ 'config:show homebrew and system configuration'
+ 'create:create a new formula'
+ 'deps:list dependencies and dependants of a formula'
+ 'desc:display a description of a formula'
+ 'doctor:audits your installation for common issues'
+ 'edit:edit a formula'
+ 'fetch:download formula resources to the cache'
+ 'gist-logs:generate a gist of the full build logs'
+ 'home:visit the homepage of a formula or the brew project'
+ 'info:information about a formula'
+ 'install:install a formula'
+ 'reinstall:install a formula anew; re-using its current options'
+ 'leaves:show installed formulae that are not dependencies of another installed formula'
+ 'link:link a formula'
+ 'linkapps:symlink .app bundles provided by formulae into /Applications'
+ 'list:list files in a formula or not-installed formulae'
+ 'log:git commit log for a formula'
+ 'missing:check all installed formuale for missing dependencies.'
+ 'migrate:migrate renamed formula to new name'
+ 'outdated:list formulae for which a newer version is available'
+ 'pin:pin specified formulae'
+ 'postinstall:perform post_install for a given formula'
+ 'prune:remove dead links'
+ 'remove:remove a formula'
+ 'search:search for a formula (/regex/ or string)'
+ 'switch:switch between different versions of a formula'
+ 'tap:tap a new formula repository from GitHub, or list existing taps'
+ 'tap-info:information about a tap'
+ 'tap-pin:pin a tap'
+ 'tap-unpin:unpin a tap'
+ 'test-bot:test a formula and build a bottle'
+ 'uninstall:uninstall a formula'
+ 'unlink:unlink a formula'
+ 'unlinkapps:remove symlinked .app bundles provided by formulae from /Applications'
+ 'unpin:unpin specified formulae'
+ 'untap:remove a tapped repository'
+ 'update:fetch latest version of Homebrew and all formulae'
+ 'upgrade:upgrade outdated formulae'
+ 'uses:show formulae which depend on a formula'
+ `brew commands --quiet --include-aliases`
+)
+
+local expl
+local -a formulae installed_formulae installed_taps official_taps outdated_formulae
+
+_arguments \
+ '(-v)-v[verbose]' \
+ '(--cellar)--cellar[brew cellar]' \
+ '(--env)--env[brew environment]' \
+ '(--repository)--repository[brew repository]' \
+ '(--version)--version[version information]' \
+ '(--prefix)--prefix[where brew lives on this system]' \
+ '(--cache)--cache[brew cache]' \
+ '*:: :->subcmds' && return 0
+
+if (( CURRENT == 1 )); then
+ _describe -t commands "brew subcommand" _1st_arguments
+ return
+fi
+
+case "$words[1]" in
+ install|reinstall|audit|home|homepage|log|info|abv|uses|cat|deps|desc|edit|options|switch)
+ _brew_all_formulae
+ _wanted formulae expl 'all formulae' compadd -a formulae ;;
+ linkapps|unlinkapps)
+ _arguments \
+ '(--local)--local[operate on ~/Applications instead of /Applications]' \
+ '1: :->forms' && return 0
+
+ if [[ "$state" == forms ]]; then
+ _brew_installed_formulae
+ _wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae
+ fi ;;
+ list|ls)
+ _arguments \
+ '(--unbrewed)--unbrewed[files in brew --prefix not controlled by brew]' \
+ '(--pinned)--pinned[list all versions of pinned formulae]' \
+ '(--versions)--versions[list all installed versions of a formula]' \
+ '1: :->forms' && return 0
+
+ if [[ "$state" == forms ]]; then
+ _brew_installed_formulae
+ _wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae
+ fi ;;
+ remove|rm|uninstall|unlink|cleanup|link|ln|pin|unpin)
+ _brew_installed_formulae
+ _wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae ;;
+ search|-S)
+ _arguments \
+ '(--macports)--macports[search the macports repository]' \
+ '(--fink)--fink[search the fink repository]' ;;
+ untap|tap-info|tap-pin)
+ _brew_installed_taps
+ _wanted installed_taps expl 'installed taps' compadd -a installed_taps ;;
+ tap)
+ _brew_official_taps
+ _wanted official_taps expl 'official taps' compadd -a official_taps ;;
+ tap-unpin)
+ _brew_pinned_taps
+ _wanted pinned_taps expl 'pinned taps' compadd -a pinned_taps ;;
+ upgrade)
+ _brew_outdated_formulae
+ _wanted outdated_formulae expl 'outdated formulae' compadd -a outdated_formulae ;;
+esac
diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh
index 178f1deb2..c516d6843 100644
--- a/plugins/git/git.plugin.zsh
+++ b/plugins/git/git.plugin.zsh
@@ -48,6 +48,8 @@ alias gb='git branch'
alias gba='git branch -a'
alias gbd='git branch -d'
alias gbda='git branch --no-color --merged | command grep -vE "^(\*|\s*(master|develop|dev)\s*$)" | command xargs -n 1 git branch -d'
+alias gbclean='git fetch -p && git branch --merged master | grep -v "\* master" | grep -v "master" | xargs -r -n 1 git branch -d'
+alias gbda='git branch --merged | command grep -vE "^(\*|\s*master\s*$)" | command xargs -n 1 git branch -d'
alias gbl='git blame -b -w'
alias gbnm='git branch --no-merged'
alias gbr='git branch --remote'
diff --git a/plugins/grunt/README.md b/plugins/grunt/README.md
new file mode 100644
index 000000000..47325d33e
--- /dev/null
+++ b/plugins/grunt/README.md
@@ -0,0 +1,83 @@
+# grunt-zsh-completion
+
+`grunt-zsh-completion` is the zsh completion script for
+[grunt](https://github.com/gruntjs/grunt)/
+[grunt-cli](https://github.com/gruntjs/grunt-cli)
+
+It quickly response because it uses the cache.
+
+
+
+
+
+
+## Installation
+
+Put the `_grunt` file to the `fpath` directory.
+
+```sh
+$ cp _grunt /usr/local/share/zsh/site-functions/
+$ exec zsh
+```
+
+Where the `fpath` directory is ?
+
+```sh
+$ echo "$fpath" | tr " " "\n"
+```
+
+## Installation for oh-my-zsh
+
+1. In the command line, change to `oh-my-zsh` plugins directory:
+
+ ```console
+ $ cd ~/.oh-my-zsh/custom/plugins
+ ```
+
+2. Clone the repository into a new directory called `grunt`:
+
+ ```console
+ git clone https://github.com/yonchu/grunt-zsh-completion.git grunt
+ ```
+
+3. Include `grunt` plugin to your .zshrc file along with other plugins:
+
+ ```zsh
+ ...
+ plugins=(git grunt)
+ ...
+ ```
+
+4. Restart your terminal application.
+
+## Usage
+
+### Enable caching
+
+If you want to use the cache, set the followings in your .zshrc:
+
+```zsh
+zstyle ':completion:*' use-cache yes
+```
+
+### Settings
+
+Show grunt file path:
+
+```zsh
+zstyle ':completion::complete:grunt::options:' show_grunt_path yes
+```
+
+Cache expiration days (default: 7):
+
+```zsh
+zstyle ':completion::complete:grunt::options:' expire 1
+```
+
+Note that if you change the zstyle settings,
+you should delete the cache file and restart zsh.
+
+```console
+$ rm ~/.zcompcache/grunt
+$ exec zsh
+```
\ No newline at end of file
diff --git a/plugins/grunt/_grunt b/plugins/grunt/_grunt
new file mode 100644
index 000000000..e4caee879
--- /dev/null
+++ b/plugins/grunt/_grunt
@@ -0,0 +1,257 @@
+#compdef grunt
+#autoload
+# -----------------------------------------------------------------------------
+# _grunt
+#
+# Completion script for grunt.
+# - https://github.com/gruntjs/grunt
+# - https://github.com/gruntjs/grunt-cli
+#
+# -----------------------------------------------------------------------------
+#
+# Version : 0.1.1
+# Author : Yonchu
+# License : MIT License
+# Repository : https://github.com/yonchu/grunt-zsh-completion
+# Last Change : 29 Aug 2013.
+#
+# Copyright (c) 2013 Yonchu.
+#
+# -----------------------------------------------------------------------------
+# USAGE
+# -----
+#
+# Enable caching:
+#
+# If you want to use the cache, set the followings in your .zshrc:
+#
+# zstyle ':completion:*' use-cache yes
+#
+#
+# Settings:
+#
+# - Show grunt file path:
+# zstyle ':completion::complete:grunt::options:' show_grunt_path yes
+#
+# - Cache expiration days (default: 7):
+# zstyle ':completion::complete:grunt::options:' expire 1
+#
+# - Not update options cache if target gruntfile is changed.
+# zstyle ':completion::complete:grunt::options:' no_update_options yes
+#
+# Note that if you change the zstyle settings,
+# you should delete the cache file and restart zsh.
+#
+# $ rm ~/.zcompcache/grunt
+# $ exec zsh
+#
+# -----------------------------------------------------------------------------
+
+function __grunt() {
+ local curcontext="$curcontext" update_policy state
+ local show_grunt_path update_msg gruntfile opts tasks
+
+ # Setup cache-policy.
+ zstyle -s ":completion:${curcontext}:" cache-policy update_policy
+ if [[ -z $update_policy ]]; then
+ zstyle ":completion:${curcontext}:" cache-policy __grunt_caching_policy
+ fi
+
+ # Check show_path option.
+ zstyle -b ":completion:${curcontext}:options:" show_grunt_path show_grunt_path
+
+ # Get current gruntfile.
+ gruntfile=$(__grunt_get_gruntfile)
+
+ # Initialize opts and tasks.
+ opts=()
+ tasks=()
+
+ # Add help options.
+ opts+=('(- 1 *)'{-h,--help}'[Display this help text.]')
+
+ ## Complete without gruntfile.
+ if [[ ! -f $gruntfile ]]; then
+ _arguments "${opts[@]}"
+ return
+ fi
+
+ ## Complete with gruntfile.
+ # Retrieve cache.
+ if ! __grunt_update_cache "$gruntfile"; then
+ update_msg=' (cache updated)'
+ fi
+
+ # Make optioins completion.
+ if [[ ${#__grunt_opts} -gt 0 ]]; then
+ opts+=("${__grunt_opts[@]}")
+ fi
+
+ # Complete arguments.
+ _arguments \
+ "${opts[@]}" \
+ '*: :->tasks' \
+ && return
+
+ case $state in
+ tasks)
+ if [[ $show_grunt_path == 'yes' ]]; then
+ update_msg="$update_msg: ${${gruntfile/#$HOME/~}%/}"
+ fi
+ # Make tasks completion.
+ if [[ ${#__grunt_tasks} -gt 0 ]]; then
+ tasks+=("${__grunt_tasks[@]}")
+ _describe -t grunt-task "$verbose grunt task$update_msg" tasks || return 1
+ fi
+ ;;
+ esac
+
+ return 0
+}
+
+# Cache policy:
+# The cache file name: grunt
+# The cache variable name: __grunt_version __grunt_gruntfile __grunt_opts __grunt_tasks
+function __grunt_update_cache() {
+ # TODO
+ local version='0.1.1'
+ local is_updating=0
+ local gruntfile="$1"
+ local grunt_info no_update_options cache_path
+
+ # Check no_update_options option.
+ zstyle -b ":completion:${curcontext}:options:" no_update_options no_update_options
+
+
+ if ! ( (( $+__grunt_gruntfile )) \
+ && (( $+__grunt_opts )) \
+ && (( $+__grunt_tasks )) ) \
+ && ! _retrieve_cache 'grunt'; then
+ is_updating=1
+ fi
+
+ if [[ $gruntfile != $__grunt_gruntfile ]]; then
+ # Except for --help options.
+ __grunt_gruntfile=$gruntfile
+ if [[ $no_update_options == 'yes' ]]; then
+ if [[ $PREFIX == ${PREFIX#-} ]]; then
+ # Not options completions.
+ is_updating=1
+ elif [[ ${#__grunt_opts} -lt 2 ]]; then
+ is_updating=1
+ else
+ unset __grunt_gruntfile
+ fi
+ else
+ is_updating=1
+ fi
+ else
+ if [[ $PREFIX != ${PREFIX#-} && ${#__grunt_opts} -gt 1 ]]; then
+ unset __grunt_gruntfile
+ fi
+ fi
+
+ if _cache_invalid 'grunt'; then
+ is_updating=1
+ fi
+
+ # Check _grunt version.
+ if [[ $__grunt_version != $version ]]; then
+ is_updating=1
+ fi
+
+ if [[ $is_updating -ne 0 ]]; then
+ # Update caceh.
+ __grunt_version=$version
+ __grunt_gruntfile=$gruntfile
+ is_updating=1
+ grunt_info=$(grunt --help --no-color --gruntfile "$__grunt_gruntfile" 2>/dev/null)
+ __grunt_opts=(${(f)"$(__grunt_get_opts "$grunt_info")"})
+ __grunt_tasks=(${(f)"$(__grunt_get_tasks "$grunt_info")"})
+ _store_cache 'grunt' __grunt_version __grunt_gruntfile __grunt_opts __grunt_tasks
+ fi
+ return $is_updating
+}
+
+function __grunt_get_tasks() {
+ echo -E "$1" \
+ | grep 'Available tasks' -A 100 \
+ | grep '^ ' \
+ | sed -e 's/^[[:blank:]]*//' -e 's/[[:blank:]]*$//' \
+ | sed -e 's/ /:/'
+}
+
+function __grunt_get_opts() {
+ local opt_hunk opt_sep opt_num line opt
+ opt_hunk=$(echo -E "$1" \
+ | grep 'Options$' -A 100 \
+ | sed '1 d' \
+ | sed -e 's/[[:blank:]]*$//' \
+ )
+
+ opt_sep=()
+ opt_hunk=(${(f)opt_hunk})
+ opt_num=0
+ for line in "$opt_hunk[@]"; do
+ opt=$(echo -E "$line" | sed -e 's/^[[:blank:]]*//')
+ if [[ $line == $opt ]]; then
+ break
+ fi
+ if [[ $opt != ${opt#-} ]]; then
+ # Start with -
+ (( opt_num++ ))
+ opt=$(echo -E "$opt" | sed 's/^\(\(--[^ ]*\)\(, \(-[^ ]*\)\)*\) */\2\\t\4\\\t/')
+ fi
+ opt_sep[$opt_num]=("${opt_sep[$opt_num]}${opt}")
+ done
+
+ for line in "$opt_sep[@]"; do
+ opt=(${(s:\t:)line})
+ if [[ ${opt[1]} == '--help' ]]; then
+ continue
+ fi
+ if [[ ${#opt} -eq 2 ]]; then
+ echo -E "(${opt[1]})${opt[1]}[${opt[2]}]"
+ else
+ echo -E "(${opt[1]},${opt[2]})${opt[1]}[${opt[3]}]"
+ echo -E "(${opt[1]},${opt[2]})${opt[2]}[${opt[3]}]"
+ fi
+ done
+}
+
+function __grunt_get_gruntfile() {
+ local gruntfile
+ local curpath="$PWD"
+ while [ "$curpath" ]; do
+ for gruntfile in "$curpath/"{G,g}runtfile.{js,coffee}; do
+ if [[ -e "$gruntfile" ]]; then
+ echo "$gruntfile"
+ return
+ fi
+ done
+ curpath=${curpath%/*}
+ done
+ return 1
+}
+
+function __grunt_caching_policy() {
+ # Returns status zero if the completions cache needs rebuilding.
+
+ # Rebuild if .agignore more recent than cache.
+ if [[ -f $__grunt_gruntfile && $__grunt_gruntfile -nt $1 ]]; then
+ # Invalid cache because gruntfile is old.
+ return 0
+ fi
+
+ local -a oldp
+ local expire
+ zstyle -s ":completion:${curcontext}:options:" expire expire || expire=7
+ # Rebuild if cache is more than $expire days.
+ oldp=( "$1"(Nm+$expire) )
+ (( $#oldp ))
+}
+
+__grunt "$@"
+
+zstyle ':completion:*' use-cache yes
+zstyle ':completion::complete:grunt::options:' expire 7
diff --git a/plugins/mkraev/mkraev.plugin.zsh b/plugins/mkraev/mkraev.plugin.zsh
new file mode 100644
index 000000000..cd0e61498
--- /dev/null
+++ b/plugins/mkraev/mkraev.plugin.zsh
@@ -0,0 +1,105 @@
+ #Custom functino from MaximKraev
+
+name() {
+ name=$1
+ vared -c -p 'rename to: ' name
+ command mv $1 $name
+}
+compdef name rename
+
+# мои функции
+#
+ccd() { cd $1 && ls}
+# создать директорию и перейти в нее
+mcd(){ mkdir $1; cd $1 }
+# если текущая директория пустая, то удалить ее и перейти в родительскую директорию
+rcd(){ local P="`pwd`"; cd .. && rmdir "$P" || cd "$P"; }
+
+# разукрашиваем некоторые команды с помощью grc
+[[ -f /usr/bin/grc ]] && {
+ alias ping="grc --colour=auto ping -c 4"
+ alias traceroute="grc --colour=auto traceroute"
+ alias make="grc --colour=auto make"
+ alias diff="grc --colour=auto diff"
+ alias cvs="grc --colour=auto cvs"
+ alias netstat="grc --colour=auto netstat"
+ # разукрашиваем логи с помощью grc
+ alias logf="grc tailf"
+ alias logt="grc tail"
+ alias logc="grc cat"
+ alias logh="grc head"
+}
+
+alias mkpass="makepasswd --char 8"
+alias mkpass16="makepasswd --char 16"
+# принудимтельное удаление без коррекции
+alias rmf='rm -f'
+# принудительное рекурсивное удаление без коррекции
+alias rmrf='rm -fR'
+alias df='df -h'
+alias du='du -h'
+alias cp='cp --reflink=auto'
+
+alias copy='gpaste-client <'
+alias clean_color='sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"'
+alias mpv-nv='mpv --profile=no-video'
+#escape urls
+autoload -U url-quote-magic
+zle -N self-insert url-quote-magic
+
+autoload -Uz bracketed-paste-magic
+zle -N bracketed-paste bracketed-paste-magic
+
+# if archlinux use gems in local folder
+if [[ -x `which pacman` ]]; then
+ export PATH="`ruby -rubygems -e 'puts Gem.user_dir'`/bin:$PATH"
+ export GEM_HOME=$(ruby -e 'puts Gem.user_dir')
+fi
+
+if [[ -x `which subl3` ]]; then
+ alias s=subl3
+fi
+
+
+export EDITOR=vim
+export VISUAL=$EDITOR
+
+if [ -d "$HOME/bin" ] ; then
+ export PATH=${HOME}/bin:${PATH}
+fi
+
+if [ -d "$HOME/.local/bin" ] ; then
+ export PATH=$HOME/.local/bin:$PATH
+fi
+
+#npm
+
+if [ -d "$HOME/.npm/bin" ] ; then
+ export PATH=${HOME}/.npm/bin:${PATH}
+fi
+
+#go
+if [ -d "${HOME}/Projects/go" ] ; then
+ export GOPATH=$HOME/Projects/go
+fi
+if [ -d "${HOME}/Projects/go/bin" ] ; then
+ export PATH=${PATH}:${HOME}/Projects/go/bin
+fi
+
+if [ -n "$TMUX" ]; then
+ function refresh {
+ export $(tmux show-environment | grep "^SSH_AUTH_SOCK")
+ export $(tmux show-environment | grep "^DISPLAY")
+ export $(tmux show-environment | grep "^XAUTHORITY")
+ export $(tmux show-environment | grep "^SSH_ASKPASS")
+ export $(tmux show-environment | grep "^SSH_AGENT_PID")
+ export $(tmux show-environment | grep "^DBUS_SESSION_BUS_ADDRESS")
+ }
+else
+ function refresh { }
+fi
+
+# function preexec {
+# refresh
+# }
+#export PULSE_LATENCY_MSEC=60
diff --git a/plugins/osx/_man-preview b/plugins/osx/_man-preview
new file mode 100644
index 000000000..6cc344ad4
--- /dev/null
+++ b/plugins/osx/_man-preview
@@ -0,0 +1,5 @@
+#compdef man-preview
+#autoload
+
+_man
+
diff --git a/plugins/tmux/tmux.extra.conf b/plugins/tmux/tmux.extra.conf
index beffd380c..d07f4e503 100644
--- a/plugins/tmux/tmux.extra.conf
+++ b/plugins/tmux/tmux.extra.conf
@@ -1,2 +1,22 @@
set -g default-terminal $ZSH_TMUX_TERM
+set -g base-index 1
+set -g repeat-time 0
+
+set-window-option -g mode-keys vi
+
+# Allow mouse to select which pane to use
+# set -g mouse-select-pane on
+
+#bind C-z run "tmux save-buffer - | xclip -i -selection clipboard"
+bind C-c run "tmux show-buffer | gpaste-client"
+
+set -g prefix C-a
+bind C-a send-prefix
+
+#bind C-v split-window -h
+#bind C-h split-window
+bind C-q kill-window
+
+set-window-option -g xterm-keys on
+
source $HOME/.tmux.conf
diff --git a/plugins/tmux/tmux.only.conf b/plugins/tmux/tmux.only.conf
index 0734df3e1..cfcef7bb4 100644
--- a/plugins/tmux/tmux.only.conf
+++ b/plugins/tmux/tmux.only.conf
@@ -1 +1,20 @@
set -g default-terminal $ZSH_TMUX_TERM
+set -g base-index 1
+set -g repeat-time 0
+
+set-window-option -g mode-keys vi
+
+# Allow mouse to select which pane to use
+# set -g mouse-select-pane on
+
+#bind C-z run "tmux save-buffer - | xclip -i -selection clipboard"
+bind C-c run "tmux show-buffer | gpaste-client"
+
+set -g prefix C-a
+bind C-a send-prefix
+
+#bind C-v split-window -h
+#bind C-h split-window
+bind C-q kill-window
+
+set-window-option -g xterm-keys on
diff --git a/templates/zshrc.default.zsh b/templates/zshrc.default.zsh
new file mode 100644
index 000000000..2140ded18
--- /dev/null
+++ b/templates/zshrc.default.zsh
@@ -0,0 +1,77 @@
+# Path to your oh-my-zsh configuration.
+ZSH=$HOME/.oh-my-zsh
+
+if [[ "$TERM" == "xterm" ]]; then
+ export TERM=xterm-256color
+fi
+
+# Set name of the theme to load.
+# Look in ~/.oh-my-zsh/themes/
+# Optionally, if you set this to "random", it'll load a random theme each
+# time that oh-my-zsh is loaded.
+ZSH_THEME="mkraev"
+
+# Example aliases
+# alias zshconfig="mate ~/.zshrc"
+# alias ohmyzsh="mate ~/.oh-my-zsh"
+DISABLE_UPDATE_PROMPT="true"
+# Set to this to use case-sensitive completion
+# CASE_SENSITIVE="true"
+
+# Uncomment this to disable bi-weekly auto-update checks
+# DISABLE_AUTO_UPDATE="true"
+
+# Uncomment to change how often before auto-updates occur? (in days)
+export UPDATE_ZSH_DAYS=7
+
+# Uncomment following line if you want to disable colors in ls
+# DISABLE_LS_COLORS="true"
+
+# Uncomment following line if you want to disable autosetting terminal title.
+# DISABLE_AUTO_TITLE="true"
+
+# Uncomment following line if you want to disable command autocorrection
+# DISABLE_CORRECTION="true"
+
+# Uncomment following line if you want red dots to be displayed while waiting for completion
+# COMPLETION_WAITING_DOTS="true"
+
+# Uncomment following line if you want to disable marking untracked files under
+# VCS as dirty. This makes repository status check for large repositories much,
+# much faster.
+# DISABLE_UNTRACKED_FILES_DIRTY="true"
+
+# Uncomment following line if you want to shown in the command execution time stamp
+# in the history command output. The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|
+# yyyy-mm-dd
+# HIST_STAMPS="mm/dd/yyyy"
+
+# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
+# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
+# Example format: plugins=(rails git textmate ruby lighthouse)
+
+ZSH_TMUX_AUTOSTART=true
+
+plugins=(tmux archlinux systemd command-not-found sudo git colored-man zsh-syntax-highlighting colorize common-aliases cp extract history vagrant history-substring-search autojump systemadmin npm mkraev)
+
+source $ZSH/oh-my-zsh.sh
+# User configuration
+
+
+# export PATH=$HOME/bin:/usr/local/bin:$PATH
+# export MANPATH="/usr/local/man:$MANPATH"
+
+# # Preferred editor for local and remote sessions
+# if [[ -n $SSH_CONNECTION ]]; then
+# export EDITOR='vim'
+# else
+# export EDITOR='mvim'
+# fi
+
+# Compilation flags
+# export ARCHFLAGS="-arch x86_64"
+
+# ssh
+# export SSH_KEY_PATH="~/.ssh/dsa_id"
+
+source $ZSH/plugins/history-substring-search/history-substring-search.zsh
diff --git a/templates/zshrc.zsh-template b/templates/zshrc.zsh-template
index 00d25bc93..d27460d7e 100644
--- a/templates/zshrc.zsh-template
+++ b/templates/zshrc.zsh-template
@@ -1,85 +1,3 @@
-# If you come from bash you might have to change your $PATH.
-# export PATH=$HOME/bin:/usr/local/bin:$PATH
+#load default config
-# Path to your oh-my-zsh installation.
-export ZSH=$HOME/.oh-my-zsh
-
-# Set name of the theme to load. Optionally, if you set this to "random"
-# it'll load a random theme each time that oh-my-zsh is loaded.
-# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
-ZSH_THEME="robbyrussell"
-
-# Uncomment the following line to use case-sensitive completion.
-# CASE_SENSITIVE="true"
-
-# Uncomment the following line to use hyphen-insensitive completion. Case
-# sensitive completion must be off. _ and - will be interchangeable.
-# HYPHEN_INSENSITIVE="true"
-
-# Uncomment the following line to disable bi-weekly auto-update checks.
-# DISABLE_AUTO_UPDATE="true"
-
-# Uncomment the following line to change how often to auto-update (in days).
-# export UPDATE_ZSH_DAYS=13
-
-# Uncomment the following line to disable colors in ls.
-# DISABLE_LS_COLORS="true"
-
-# Uncomment the following line to disable auto-setting terminal title.
-# DISABLE_AUTO_TITLE="true"
-
-# Uncomment the following line to enable command auto-correction.
-# ENABLE_CORRECTION="true"
-
-# Uncomment the following line to display red dots whilst waiting for completion.
-# COMPLETION_WAITING_DOTS="true"
-
-# Uncomment the following line if you want to disable marking untracked files
-# under VCS as dirty. This makes repository status check for large repositories
-# much, much faster.
-# DISABLE_UNTRACKED_FILES_DIRTY="true"
-
-# Uncomment the following line if you want to change the command execution time
-# stamp shown in the history command output.
-# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
-# HIST_STAMPS="mm/dd/yyyy"
-
-# Would you like to use another custom folder than $ZSH/custom?
-# ZSH_CUSTOM=/path/to/new-custom-folder
-
-# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
-# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
-# Example format: plugins=(rails git textmate ruby lighthouse)
-# Add wisely, as too many plugins slow down shell startup.
-plugins=(git)
-
-source $ZSH/oh-my-zsh.sh
-
-# User configuration
-
-# export MANPATH="/usr/local/man:$MANPATH"
-
-# You may need to manually set your language environment
-# export LANG=en_US.UTF-8
-
-# Preferred editor for local and remote sessions
-# if [[ -n $SSH_CONNECTION ]]; then
-# export EDITOR='vim'
-# else
-# export EDITOR='mvim'
-# fi
-
-# Compilation flags
-# export ARCHFLAGS="-arch x86_64"
-
-# ssh
-# export SSH_KEY_PATH="~/.ssh/dsa_id"
-
-# Set personal aliases, overriding those provided by oh-my-zsh libs,
-# plugins, and themes. Aliases can be placed here, though oh-my-zsh
-# users are encouraged to define aliases within the ZSH_CUSTOM folder.
-# For a full list of active aliases, run `alias`.
-#
-# Example aliases
-# alias zshconfig="mate ~/.zshrc"
-# alias ohmyzsh="mate ~/.oh-my-zsh"
+source ~/.oh-my-zsh/templates/zshrc.default.zsh
diff --git a/themes/mkraev.zsh-theme b/themes/mkraev.zsh-theme
new file mode 100644
index 000000000..49ed792a9
--- /dev/null
+++ b/themes/mkraev.zsh-theme
@@ -0,0 +1,40 @@
+#!/usr/bin/env zsh
+#local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
+
+setopt promptsubst
+
+autoload -U add-zsh-hook
+
+PROMPT_SUCCESS_COLOR=$FG[033]
+PROMPT_FAILURE_COLOR=$FG[124]
+PROMPT_VCS_INFO_COLOR=$FG[242]
+PROMPT_PROMPT=$FG[077]
+GIT_DIRTY_COLOR=$FG[133]
+GIT_CLEAN_COLOR=$FG[118]
+GIT_PROMPT_INFO=$FG[012]
+USER_PROMPT=""
+if [ "$(whoami)" = "root" ]; then
+ USER_PROMPT="%{${fg_bold[red]}%}ROOT!!!!%{${reset_color}%} "
+fi
+
+
+HOST_PROPMPT=""
+if [[ -n $SSH_CONNECTION ]]; then
+ HOST_PROPMPT="%{$fg[cyan]%}%n@%m%{$reset_color%}:"
+fi
+
+PROMPT=$'%{$USER_PROMPT%}%{$HOST_PROPMPT%}%{$PROMPT_SUCCESS_COLOR%}%~%{$reset_color%} %{$GIT_PROMPT_INFO%}$(git_prompt_info)%{$GIT_DIRTY_COLOR%}$(git_prompt_status) %{$reset_color%}\n%{$PROMPT_PROMPT%}ᐅ%{$reset_color%} '
+
+#RPS1="${return_code}"
+
+ZSH_THEME_GIT_PROMPT_PREFIX="("
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$GIT_PROMPT_INFO%})"
+ZSH_THEME_GIT_PROMPT_DIRTY=" %{$GIT_DIRTY_COLOR%}✘"
+ZSH_THEME_GIT_PROMPT_CLEAN=" %{$GIT_CLEAN_COLOR%}✔"
+
+ZSH_THEME_GIT_PROMPT_ADDED="%{$FG[082]%}✚%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_MODIFIED="%{$FG[166]%}✹%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DELETED="%{$FG[160]%}✖%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_RENAMED="%{$FG[220]%}➜%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_UNMERGED="%{$FG[082]%}═%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$FG[190]%}✭%{$reset_color%}"