commit bc7082c817fdcaf5698d91fce4e72bc00fa08e03 Author: Mustafa Rasheed <72335959+MRZ07@users.noreply.github.com> Date: Sun Mar 27 23:21:56 2022 +0200 Init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2752eb9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +.DS_Store diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..45569e1 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Caio Gondim + +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.md b/README.md new file mode 100644 index 0000000..42c44ee --- /dev/null +++ b/README.md @@ -0,0 +1,366 @@ + + +# Bullet Train for oh-my-zsh + +Bullet Train is a [oh-my-zsh shell](https://github.com/robbyrussell/oh-my-zsh) +theme based on the +[Powerline Vim plugin](https://github.com/Lokaltog/vim-powerline). It aims for +simplicity, showing information only when it's relevant. + +It currently shows: +- Current Python virtualenv; when using Pyenv and no active virtualenv shows the current Python version the shell uses +- Current Ruby version using chruby; version and gemset when on RVM or Rbenv +- Current Node.js version, through NVM (if present) or Node.js +- Current Perl version using plenv +- Current Elixir version +- Git status +- Timestamp +- Current directory +- Background jobs +- Exit code of last command + +If you want add some new feature, of fix some bug, open an issue and lets hack +together. + +For a tmux theme to work with it, I suggest [Maglev](https://github.com/caiogondim/maglev). + +## Preview + +![Preview](http://raw.github.com/caiogondim/bullet-train-oh-my-zsh-theme/master/img/preview.gif) + + +## Requirements + +In order to use the theme, you will first need: + +* Powerline compatible fonts like [Vim Powerline patched fonts](https://github.com/Lokaltog/powerline-fonts), [Input Mono](http://input.fontbureau.com/) or [Monoid](http://larsenwork.com/monoid/). +* On Ubuntu like systems you'll need the `ttf-ancient-fonts` package to correctly display some unicode symbols that are not covered by the Powerline fonts above. +* A ZSH framework like [antigen](https://github.com/zsh-users/antigen), [oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh) or [zgen](https://github.com/tarjoilija/zgen) +* Make sure terminal is using 256-colors mode with `export TERM="xterm-256color"` +* For [iTerm 2](http://iterm2.com/) users, make sure you go into your settings and set both the regular font and the non-ascii font to powerline compatible [fonts](https://github.com/powerline/fonts) or the prompt separators and special characters will not display correctly. + + +## Installing + +### For oh-my-zsh users + +1. Download the theme [here](http://raw.github.com/caiogondim/bullet-train-oh-my-zsh-theme/master/bullet-train.zsh-theme) + +2. Put the file **bullet-train.zsh-theme** in **$ZSH_CUSTOM/themes/** + +3. Configure the theme in your **~/.zshrc** file: + +```bash +ZSH_THEME="bullet-train" +``` + +### For antigen users + +Add the following snippet to your **.zshrc** somewhere after the line +`antigen use oh-my-zsh`. + +```bash +antigen theme https://github.com/caiogondim/bullet-train-oh-my-zsh-theme bullet-train +``` + +### For Zgen users + +If you're using [zgen](https://github.com/tarjoilija/zgen), add the following line to your **~/.zshrc** where you're adding your other zsh plugins **after** the line `zgen oh-my-zsh`. + +```bash +zgen load caiogondim/bullet-train-oh-my-zsh-theme bullet-train +``` + +### For Zplug users + +If you're using [zplug](https://github.com/zplug/zplug), add the following line +to your **~/.zshrc** where you're adding your other zsh plugins. + +```bash +setopt prompt_subst # Make sure prompt is able to be generated properly. +zplug "caiogondim/bullet-train.zsh", use:bullet-train.zsh-theme, defer:3 # defer until other plugins like oh-my-zsh is loaded +``` + +## Options + +Bullet Train is configurable. You can change colors and which segments you want +or don't want to see. All options must be overridden in your **.zshrc** file. + +### Order +`BULLETTRAIN_PROMPT_ORDER` defines order of prompt segments. Use zsh array +syntax to specify your own order, e.g: + +```bash +BULLETTRAIN_PROMPT_ORDER=( + git + context + dir + time +) +``` + +NOTE: You do not need to specify *end* segment - it will be added automatically. With this you can also specify custom segments. + +### Prompt + +|Variable|Default|Meaning +|--------|-------|-------| +|`BULLETTRAIN_PROMPT_CHAR`|`\$`|Character to be show before any command +|`BULLETTRAIN_PROMPT_ROOT`|`true`|Highlight if running as root +|`BULLETTRAIN_PROMPT_SEPARATE_LINE`|`true`|Make the prompt span across two lines +|`BULLETTRAIN_PROMPT_ADD_NEWLINE`|`true`|Adds a newline character before each prompt line + + +### Status + +|Variable|Default|Meaning +|--------|-------|-------| +|`BULLETTRAIN_STATUS_EXIT_SHOW`|`false`|Show/hide exit code of last command +|`BULLETTRAIN_STATUS_BG`|`green`|Background color +|`BULLETTRAIN_STATUS_ERROR_BG`|`red`|Background color of segment when last command exited with an error +|`BULLETTRAIN_STATUS_FG`|`black`|Foreground color + +### Time + +|Variable|Default|Meaning +|--------|-------|-------| +|`BULLETTRAIN_TIME_12HR`|`false`|Format time using 12-hour clock (am/pm) +|`BULLETTRAIN_TIME_BG`|`white`|Background color +|`BULLETTRAIN_TIME_FG`|`black`|Foreground color + +### Custom + +|Variable|Default|Meaning +|--------|-------|-------| +|`BULLETTRAIN_CUSTOM_MSG`|`false`|Free segment you can put a custom message which will be eval'ed for every prompt +|`BULLETTRAIN_CUSTOM_BG`|`black`|Background color +|`BULLETTRAIN_CUSTOM_FG`|`default`|Foreground color + +### Context + +|Variable|Default|Meaning +|--------|-------|-------| +|`BULLETTRAIN_CONTEXT_BG`|`black`|Background color +|`BULLETTRAIN_CONTEXT_FG`|`default`|Foreground color +|`BULLETTRAIN_CONTEXT_DEFAULT_USER`|none|Default user. If you are running with other user other than default, the segment will be showed. +|`BULLETTRAIN_CONTEXT_HOSTNAME`|`%m`|Hostname. Set %M to display the full qualified domain name. +|`BULLETTRAIN_IS_SSH_CLIENT`|none|If `true`, the segment will be showed. + +### Python virtualenv (+Pyenv) + +|Variable|Default|Meaning +|--------|-------|-------| +|`BULLETTRAIN_VIRTUALENV_BG`|`yellow`|Background color +|`BULLETTRAIN_VIRTUALENV_FG`|`white`|Foreground color +|`BULLETTRAIN_VIRTUALENV_PREFIX`|`🐍`|Prefix of the segment + +### node.js nvm + +|Variable|Default|Meaning +|--------|-------|-------| +|`BULLETTRAIN_NVM_BG`|`green`|Background color +|`BULLETTRAIN_NVM_FG`|`white`|Foreground color +|`BULLETTRAIN_NVM_PREFIX`|`"⬡ "`|Prefix of the segment + +### Ruby RVM/Rbenv + +|Variable|Default|Meaning +|--------|-------|-------| +|`BULLETTRAIN_RUBY_BG`|`magenta`|Background color +|`BULLETTRAIN_RUBY_FG`|`white`|Foreground color +|`BULLETTRAIN_RUBY_PREFIX`|`"♦"`|Prefix of the segment + +### Elixir + +|Variable|Default|Meaning +|--------|-------|-------| +|`BULLETTRAIN_ELIXIR_BG`|`magenta`|Background color +|`BULLETTRAIN_ELIXIR_FG`|`white`|Foreground color +|`BULLETTRAIN_ELIXIR_PREFIX`|`"💧"`|Prefix of the segment + +### Go + +|Variable|Default|Meaning +|--------|-------|-------| +|`BULLETTRAIN_GO_BG`|`green`|Background color +|`BULLETTRAIN_GO_FG`|`white`|Foreground color +|`BULLETTRAIN_GO_PREFIX`|`go`|Prefix of the segment + +### Kubernetes Context + +|Variable|Default|Meaning +|--------|-------|-------| +|`BULLETTRAIN_KCTX_BG`|`yellow`|Background color +|`BULLETTRAIN_KCTX_FG`|`white`|Foreground color +|`BULLETTRAIN_KCTX_PREFIX`|`⎈`|[Kubernetes](https://unicode-table.com/de/2388/) prefix of the segment +|`BULLETTRAIN_KCTX_KUBECTL`|`true`|If `false` disable `kubectl` usage +|`BULLETTRAIN_KCTX_NAMESPACE`|`true`|If `false` will not show the default namespace. Namespace is only visible if `kubectl` is installed +|`BULLETTRAIN_KCTX_KCONFIG`|`${HOME}/.kube/config`|Location of kube config file (e.g. /Users/Hugo/.kube/config) + +The prompt will first check if `BULLETTRAIN_KCTX_KUBECTL=true` and `kubectl` is installed than it will use `kubectl config view --minify` to determine the context and default namespace in use. +If `BULLETTRAIN_KCTX_KUBECTL=false` or `kubectl` is not installed, `BULLETTRAIN_KCTX_KCONFIG` will be parsed to get the current context. + +The usage of `kubectl` allow the prompt to get the default namespace even if you are using multiple kube config files (e.g. KUBECONFIG=~/.kube/config:path-to-config1:path-to-config2) + + +### AWS Profile + +Displays which AWS (Amazon Web Services) credentials profile is currently set. +This environment var is used by aws-cli and other tools to use the right access keys and other parameters. + +|Variable|Default|Meaning +|--------|-------|-------| +|`BULLETTRAIN_AWS_BG`|`yellow`|Background color +|`BULLETTRAIN_AWS_FG`|`black`|Foreground color +|`BULLETTRAIN_AWS_PREFIX`|`☁️`|Prefix of the segment + +### Perl + +|Variable|Default|Meaning +|--------|-------|-------| +|`BULLETTRAIN_PERL_BG`|`yellow`|Background color +|`BULLETTRAIN_PERL_FG`|`black`|Foreground color +|`BULLETTRAIN_PERL_PREFIX`|`🐪`|Prefix of the segment + +### Dir + +|Variable|Default|Meaning +|--------|-------|-------| +|`BULLETTRAIN_DIR_BG`|`blue`|Background color +|`BULLETTRAIN_DIR_FG`|`white`|Foreground color +|`BULLETTRAIN_DIR_CONTEXT_SHOW`|`false`|Show user and machine in an SCP formatted style +|`BULLETTRAIN_DIR_EXTENDED`|`1`|Extended path (0=short path, 1=medium path, 2=complete path, everything else=medium path) + +### Git + +|Variable|Default|Meaning +|--------|-------|-------| +|`BULLETTRAIN_GIT_COLORIZE_DIRTY`|`false`|Set `BULLETTRAIN_GIT_BG` to `BULLETTRAIN_GIT_COLORIZE_DIRTY_COLOR` in dirty state +|`BULLETTRAIN_GIT_COLORIZE_DIRTY_BG_COLOR`|`yellow`|`BULLETTRAIN_GIT_BG` in dirty state +|`BULLETTRAIN_GIT_COLORIZE_DIRTY_FG_COLOR`|`black`|`BULLETTRAIN_GIT_FG` in dirty state +|`BULLETTRAIN_GIT_BG`|`white`|Background color +|`BULLETTRAIN_GIT_FG`|`black`|Foreground color +|`BULLETTRAIN_GIT_PROMPT_CMD`|`git_prompt_info`|Function to display details about your git segment. +|`BULLETTRAIN_GIT_EXTENDED`|`true`| +|`BULLETTRAIN_GIT_PREFIX`|`""`|Prefix +|`BULLETTRAIN_GIT_SUFFIX`|`""`|Suffix +|`BULLETTRAIN_GIT_DIRTY`|`"✘"`|Icon for dirty state +|`BULLETTRAIN_GIT_CLEAN`|`"✔"`|Icon for clean state +|`BULLETTRAIN_GIT_ADDED`|`"%F{green}✚%F{black}"`|Icon for added files on stage +|`BULLETTRAIN_GIT_MODIFIED`|`"%F{blue}✹%F{black}"`|Icon for modified files +|`BULLETTRAIN_GIT_DELETED`|`"%F{red}✖%F{black}"`|Icon for delete files on stage +|`BULLETTRAIN_GIT_UNTRACKED`|`"%F{yellow}✭%F{black}"`|Icon for untracked files +|`BULLETTRAIN_GIT_RENAMED`|`"➜"`|Icon for renamed +|`BULLETTRAIN_GIT_UNMERGED`|`"═"`|Icon for unmerged state +|`BULLETTRAIN_GIT_AHEAD`|`" ⬆"`|Icon for ahead state from remote +|`BULLETTRAIN_GIT_BEHIND`|`" ⬇"`|Icon for behind state from remote +|`BULLETTRAIN_GIT_DIVERGED`|`" ⬍"`|Icon for diverged state from remote + +The git prompt can be disabled for a specific repository by setting a git config flag: `git config oh-my-zsh.hide-status 1`. This is useful to avoid performance issues for particularly huge repositories. + +### Screen + +|Variable|Default|Meaning +|--------|-------|-------| +|`BULLETTRAIN_SCREEN_BG`|`white`|Background color +|`BULLETTRAIN_SCREEN_FG`|`black`|Foreground color +|`BULLETTRAIN_SCREEN_PREFIX`|`⬗`|Prefix of the segment + +### Mercurial/HG + +|Variable|Default|Meaning +|--------|-------|-------| + +### Command execution time + +|Variable|Default|Meaning +|--------|-------|-------| +|`BULLETTRAIN_EXEC_TIME_ELAPSED`|5|Minimum elapsed time of command execution. If the execution time of a command is smaller than this, the segment will be hidden. +|`BULLETTRAIN_EXEC_TIME_BG`|`yellow`|Background color +|`BULLETTRAIN_EXEC_TIME_FG`|`black`|Foreground color + +## Wiki + +- [FAQ](https://github.com/caiogondim/bullet-train-oh-my-zsh-theme/wiki/FAQ) +- [Screenshots](https://github.com/caiogondim/bullet-train-oh-my-zsh-theme/wiki/Screenshots) +- [Tips](https://github.com/caiogondim/bullet-train-oh-my-zsh-theme/wiki/Tips) + +## Contributors + +That project was originally a fork from +[Powerline](https://github.com/jeremyFreeAgent/oh-my-zsh-powerline-theme), but +most of the code was later erased and its now more closely related to +[Agnoster](https://gist.github.com/agnoster/3712874). Below is a `git summary` +of the project: + +``` +156 Caio Gondim + 33 Jérémy Romey + 14 Greg Fitzgerald + 8 Dan Kaplun + 8 Viktor (Icon) VAD + 7 Jocelyn Mallon + 7 Dawid Kurek + 6 Joe Block + 6 Jérémy Romey + 5 Arthur Wang + 4 Flavius Aspra + 3 Mario Zigliotto + 3 Michael Robinson + 3 Michael Cornell + 3 Iulian Onofrei + 2 itsZero (Chien-An Cho) + 2 Daniel Loader + 2 Charlie Smith + 2 wujtruj + 2 Jiri Tyr + 1 Sébastien Bordenave + 1 Yongqian Li + 1 alysson + 1 gvillalta99 + 1 illuminatis + 1 krischer + 1 m.kuehn + 1 timfeirg + 1 Adrien Brault + 1 yachi + 1 Andreas Galauner + 1 Dale Davis + 1 Fabio Poloni + 1 Faure Hu + 1 Guillaume BINET + 1 Hannes Frank + 1 Heng-Yi Wu + 1 Jack Chu + 1 Jason Hollis + 1 KVoll + 1 Kevin + 1 Lyncredible + 1 Manuel Hoffmann + 1 Marius Krämer + 1 Maxime Bruguet + 1 Mertcan Mermerkaya + 1 Nicholas + 1 Peter Nagy + 1 Sen Jiang +``` + +## Credits + +This theme is highly inspired by the following themes: +- [Powerline](https://github.com/jeremyFreeAgent/oh-my-zsh-powerline-theme) +- [Agnoster](https://gist.github.com/agnoster/3712874) + +## Donating + +If you found this project useful and are willing to donate, transfer some +bitcoins to `1BqqKiZA8Tq43CdukdBEwCdDD42jxuX9UY` or through the +[URL](https://www.coinbase.com/caiogondim) https://www.coinbase.com/caiogondim + +Or via [PayPal.me](https://www.paypal.me/caiogondim) https://www.paypal.me/caiogondim. + +--- + +[caiogondim.com](https://caiogondim.com)  ·  +GitHub [@caiogondim](https://github.com/caiogondim)  ·  +Twitter [@caio_gondim](https://twitter.com/caio_gondim) diff --git a/bullet-train.zsh-theme b/bullet-train.zsh-theme new file mode 100644 index 0000000..d72c4f5 --- /dev/null +++ b/bullet-train.zsh-theme @@ -0,0 +1,696 @@ +# README +# +# In order for this theme to render correctly, you will need a +# [Powerline-patched font](https://github.com/Lokaltog/powerline-fonts). +# +# In addition, I recommend the +# [Tomorrow Night theme](https://github.com/chriskempson/tomorrow-theme) and, if +# you're using it on Mac OS X, [iTerm 2](http://www.iterm2.com/) over +# Terminal.app - it has significantly better color fidelity. + +# ------------------------------------------------------------------------------ +# CONFIGURATION +# The default configuration, that can be overwrite in your .zshrc file +# ------------------------------------------------------------------------------ + +VIRTUAL_ENV_DISABLE_PROMPT=true + +# Define order and content of prompt +if [ ! -n "${BULLETTRAIN_PROMPT_ORDER+1}" ]; then + BULLETTRAIN_PROMPT_ORDER=( + time + status + custom + context + dir + screen + perl + ruby + virtualenv + nvm + aws + go + rust + elixir + git + hg + cmd_exec_time + ) +fi + +# PROMPT +if [ ! -n "${BULLETTRAIN_PROMPT_CHAR+1}" ]; then + BULLETTRAIN_PROMPT_CHAR="\$" +fi +if [ ! -n "${BULLETTRAIN_PROMPT_ROOT+1}" ]; then + BULLETTRAIN_PROMPT_ROOT=true +fi +if [ ! -n "${BULLETTRAIN_PROMPT_SEPARATE_LINE+1}" ]; then + BULLETTRAIN_PROMPT_SEPARATE_LINE=true +fi +if [ ! -n "${BULLETTRAIN_PROMPT_ADD_NEWLINE+1}" ]; then + BULLETTRAIN_PROMPT_ADD_NEWLINE=true +fi + +# STATUS +if [ ! -n "${BULLETTRAIN_STATUS_EXIT_SHOW+1}" ]; then + BULLETTRAIN_STATUS_EXIT_SHOW=false +fi +if [ ! -n "${BULLETTRAIN_STATUS_BG+1}" ]; then + BULLETTRAIN_STATUS_BG=green +fi +if [ ! -n "${BULLETTRAIN_STATUS_ERROR_BG+1}" ]; then + BULLETTRAIN_STATUS_ERROR_BG=red +fi +if [ ! -n "${BULLETTRAIN_STATUS_FG+1}" ]; then + BULLETTRAIN_STATUS_FG=white +fi + +# TIME +if [ ! -n "${BULLETTRAIN_TIME_BG+1}" ]; then + BULLETTRAIN_TIME_BG=white +fi +if [ ! -n "${BULLETTRAIN_TIME_FG+1}" ]; then + BULLETTRAIN_TIME_FG=black +fi + +# CUSTOM +if [ ! -n "${BULLETTRAIN_CUSTOM_MSG+1}" ]; then + BULLETTRAIN_CUSTOM_MSG=false +fi +if [ ! -n "${BULLETTRAIN_CUSTOM_BG+1}" ]; then + BULLETTRAIN_CUSTOM_BG=black +fi +if [ ! -n "${BULLETTRAIN_CUSTOM_FG+1}" ]; then + BULLETTRAIN_CUSTOM_FG=default +fi + +# VIRTUALENV +if [ ! -n "${BULLETTRAIN_VIRTUALENV_BG+1}" ]; then + BULLETTRAIN_VIRTUALENV_BG=yellow +fi +if [ ! -n "${BULLETTRAIN_VIRTUALENV_FG+1}" ]; then + BULLETTRAIN_VIRTUALENV_FG=white +fi +if [ ! -n "${BULLETTRAIN_VIRTUALENV_PREFIX+1}" ]; then + BULLETTRAIN_VIRTUALENV_PREFIX=🐍 +fi + +# NVM +if [ ! -n "${BULLETTRAIN_NVM_BG+1}" ]; then + BULLETTRAIN_NVM_BG=green +fi +if [ ! -n "${BULLETTRAIN_NVM_FG+1}" ]; then + BULLETTRAIN_NVM_FG=white +fi +if [ ! -n "${BULLETTRAIN_NVM_PREFIX+1}" ]; then + BULLETTRAIN_NVM_PREFIX="⬡ " +fi + +# AWS +if [ ! -n "${BULLETTRAIN_AWS_BG+1}" ]; then + BULLETTRAIN_AWS_BG=yellow +fi +if [ ! -n "${BULLETTRAIN_AWS_FG+1}" ]; then + BULLETTRAIN_AWS_FG=black +fi +if [ ! -n "${BULLETTRAIN_AWS_PREFIX+1}" ]; then + BULLETTRAIN_AWS_PREFIX="☁️" +fi + +# RUBY +if [ ! -n "${BULLETTRAIN_RUBY_BG+1}" ]; then + BULLETTRAIN_RUBY_BG=red +fi +if [ ! -n "${BULLETTRAIN_RUBY_FG+1}" ]; then + BULLETTRAIN_RUBY_FG=white +fi +if [ ! -n "${BULLETTRAIN_RUBY_PREFIX+1}" ]; then + BULLETTRAIN_RUBY_PREFIX=♦️ +fi + +# Go +if [ ! -n "${BULLETTRAIN_GO_BG+1}" ]; then + BULLETTRAIN_GO_BG=cyan +fi +if [ ! -n "${BULLETTRAIN_GO_FG+1}" ]; then + BULLETTRAIN_GO_FG=white +fi +if [ ! -n "${BULLETTRAIN_GO_PREFIX+1}" ]; then + BULLETTRAIN_GO_PREFIX="go" +fi + +# Rust +if [ ! -n "${BULLETTRAIN_RUST_BG+1}" ]; then + BULLETTRAIN_RUST_BG=black +fi +if [ ! -n "${BULLETTRAIN_RUST_FG+1}" ]; then + BULLETTRAIN_RUST_FG=white +fi +if [ ! -n "${BULLETTRAIN_RUST_PREFIX+1}" ]; then + BULLETTRAIN_RUST_PREFIX="🦀" +fi + +# Kubernetes Context +if [ ! -n "${BULLETTRAIN_KCTX_BG+1}" ]; then + BULLETTRAIN_KCTX_BG=yellow +fi +if [ ! -n "${BULLETTRAIN_KCTX_FG+1}" ]; then + BULLETTRAIN_KCTX_FG=white +fi +if [ ! -n "${BULLETTRAIN_KCTX_PREFIX+1}" ]; then + BULLETTRAIN_KCTX_PREFIX="⎈" +fi +if [ ! -n "${BULLETTRAIN_KCTX_KCONFIG+1}" ]; then + BULLETTRAIN_KCTX_KCONFIG="${HOME}/.kube/config" +fi +if [ ! -n "${BULLETTRAIN_KCTX_KUBECTL+1}" ]; then + BULLETTRAIN_KCTX_KUBECTL="true" +fi +if [ ! -n "${BULLETTRAIN_KCTX_NAMESPACE+1}" ]; then + BULLETTRAIN_KCTX_NAMESPACE="true" +fi + +# ELIXIR +if [ ! -n "${BULLETTRAIN_ELIXIR_BG+1}" ]; then + BULLETTRAIN_ELIXIR_BG=magenta +fi +if [ ! -n "${BULLETTRAIN_ELIXIR_FG+1}" ]; then + BULLETTRAIN_ELIXIR_FG=white +fi +if [ ! -n "${BULLETTRAIN_ELIXIR_PREFIX+1}" ]; then + BULLETTRAIN_ELIXIR_PREFIX="💧" +fi + +# DIR +if [ ! -n "${BULLETTRAIN_DIR_BG+1}" ]; then + BULLETTRAIN_DIR_BG=blue +fi +if [ ! -n "${BULLETTRAIN_DIR_FG+1}" ]; then + BULLETTRAIN_DIR_FG=white +fi +if [ ! -n "${BULLETTRAIN_DIR_CONTEXT_SHOW+1}" ]; then + BULLETTRAIN_DIR_CONTEXT_SHOW=false +fi +if [ ! -n "${BULLETTRAIN_DIR_EXTENDED+1}" ]; then + BULLETTRAIN_DIR_EXTENDED=1 +fi + +# GIT +if [ ! -n "${BULLETTRAIN_GIT_COLORIZE_DIRTY+1}" ]; then + BULLETTRAIN_GIT_COLORIZE_DIRTY=false +fi +if [ ! -n "${BULLETTRAIN_GIT_COLORIZE_DIRTY_FG_COLOR+1}" ]; then + BULLETTRAIN_GIT_COLORIZE_DIRTY_FG_COLOR=black +fi +if [ ! -n "${BULLETTRAIN_GIT_COLORIZE_DIRTY_BG_COLOR+1}" ]; then + BULLETTRAIN_GIT_COLORIZE_DIRTY_BG_COLOR=yellow +fi +if [ ! -n "${BULLETTRAIN_GIT_BG+1}" ]; then + BULLETTRAIN_GIT_BG=white +fi +if [ ! -n "${BULLETTRAIN_GIT_FG+1}" ]; then + BULLETTRAIN_GIT_FG=black +fi +if [ ! -n "${BULLETTRAIN_GIT_EXTENDED+1}" ]; then + BULLETTRAIN_GIT_EXTENDED=true +fi +if [ ! -n "${BULLETTRAIN_GIT_PROMPT_CMD+1}" ]; then + BULLETTRAIN_GIT_PROMPT_CMD="\$(git_prompt_info)" +fi + +# PERL +if [ ! -n "${BULLETTRAIN_PERL_BG+1}" ]; then + BULLETTRAIN_PERL_BG=yellow +fi +if [ ! -n "${BULLETTRAIN_PERL_FG+1}" ]; then + BULLETTRAIN_PERL_FG=black +fi +if [ ! -n "${BULLETTRAIN_PERL_PREFIX+1}" ]; then + BULLETTRAIN_PERL_PREFIX=🐪 +fi + +# CONTEXT +if [ ! -n "${BULLETTRAIN_CONTEXT_BG+1}" ]; then + BULLETTRAIN_CONTEXT_BG=black +fi +if [ ! -n "${BULLETTRAIN_CONTEXT_FG+1}" ]; then + BULLETTRAIN_CONTEXT_FG=default +fi +if [ ! -n "${BULLETTRAIN_CONTEXT_HOSTNAME+1}" ]; then + BULLETTRAIN_CONTEXT_HOSTNAME=%m +fi + +# GIT PROMPT +if [ ! -n "${BULLETTRAIN_GIT_PREFIX+1}" ]; then + ZSH_THEME_GIT_PROMPT_PREFIX="\ue0a0 " +else + ZSH_THEME_GIT_PROMPT_PREFIX=$BULLETTRAIN_GIT_PREFIX +fi +if [ ! -n "${BULLETTRAIN_GIT_SUFFIX+1}" ]; then + ZSH_THEME_GIT_PROMPT_SUFFIX="" +else + ZSH_THEME_GIT_PROMPT_SUFFIX=$BULLETTRAIN_GIT_SUFFIX +fi +if [ ! -n "${BULLETTRAIN_GIT_DIRTY+1}" ]; then + ZSH_THEME_GIT_PROMPT_DIRTY=" %F{red}✘%F{black}" +else + ZSH_THEME_GIT_PROMPT_DIRTY=$BULLETTRAIN_GIT_DIRTY +fi +if [ ! -n "${BULLETTRAIN_GIT_CLEAN+1}" ]; then + ZSH_THEME_GIT_PROMPT_CLEAN=" %F{green}✔%F{black}" +else + ZSH_THEME_GIT_PROMPT_CLEAN=$BULLETTRAIN_GIT_CLEAN +fi +if [ ! -n "${BULLETTRAIN_GIT_ADDED+1}" ]; then + ZSH_THEME_GIT_PROMPT_ADDED=" %F{green}✚%F{black}" +else + ZSH_THEME_GIT_PROMPT_ADDED=$BULLETTRAIN_GIT_ADDED +fi +if [ ! -n "${BULLETTRAIN_GIT_MODIFIED+1}" ]; then + ZSH_THEME_GIT_PROMPT_MODIFIED=" %F{blue}✹%F{black}" +else + ZSH_THEME_GIT_PROMPT_MODIFIED=$BULLETTRAIN_GIT_MODIFIED +fi +if [ ! -n "${BULLETTRAIN_GIT_DELETED+1}" ]; then + ZSH_THEME_GIT_PROMPT_DELETED=" %F{red}✖%F{black}" +else + ZSH_THEME_GIT_PROMPT_DELETED=$BULLETTRAIN_GIT_DELETED +fi +if [ ! -n "${BULLETTRAIN_GIT_UNTRACKED+1}" ]; then + ZSH_THEME_GIT_PROMPT_UNTRACKED=" %F{yellow}✭%F{black}" +else + ZSH_THEME_GIT_PROMPT_UNTRACKED=$BULLETTRAIN_GIT_UNTRACKED +fi +if [ ! -n "${BULLETTRAIN_GIT_RENAMED+1}" ]; then + ZSH_THEME_GIT_PROMPT_RENAMED=" ➜" +else + ZSH_THEME_GIT_PROMPT_RENAMED=$BULLETTRAIN_GIT_RENAMED +fi +if [ ! -n "${BULLETTRAIN_GIT_UNMERGED+1}" ]; then + ZSH_THEME_GIT_PROMPT_UNMERGED=" ═" +else + ZSH_THEME_GIT_PROMPT_UNMERGED=$BULLETTRAIN_GIT_UNMERGED +fi +if [ ! -n "${BULLETTRAIN_GIT_AHEAD+1}" ]; then + ZSH_THEME_GIT_PROMPT_AHEAD=" ⬆" +else + ZSH_THEME_GIT_PROMPT_AHEAD=$BULLETTRAIN_GIT_AHEAD +fi +if [ ! -n "${BULLETTRAIN_GIT_BEHIND+1}" ]; then + ZSH_THEME_GIT_PROMPT_BEHIND=" ⬇" +else + ZSH_THEME_GIT_PROMPT_BEHIND=$BULLETTRAIN_GIT_BEHIND +fi +if [ ! -n "${BULLETTRAIN_GIT_DIVERGED+1}" ]; then + ZSH_THEME_GIT_PROMPT_DIVERGED=" ⬍" +else + ZSH_THEME_GIT_PROMPT_DIVERGED=$BULLETTRAIN_GIT_PROMPT_DIVERGED +fi + +# SCREEN +if [ ! -n "${BULLETTRAIN_SCREEN_BG+1}" ]; then + BULLETTRAIN_SCREEN_BG=white +fi +if [ ! -n "${BULLETTRAIN_SCREEN_FG+1}" ]; then + BULLETTRAIN_SCREEN_FG=black +fi +if [ ! -n "${BULLETTRAIN_SCREEN_PREFIX+1}" ]; then + BULLETTRAIN_SCREEN_PREFIX="⬗" +fi + +# COMMAND EXECUTION TIME +if [ ! -n "${BULLETTRAIN_EXEC_TIME_ELAPSED+1}" ]; then + BULLETTRAIN_EXEC_TIME_ELAPSED=5 +fi +if [ ! -n "${BULLETTRAIN_EXEC_TIME_BG+1}" ]; then + BULLETTRAIN_EXEC_TIME_BG=yellow +fi +if [ ! -n "${BULLETTRAIN_EXEC_TIME_FG+1}" ]; then + BULLETTRAIN_EXEC_TIME_FG=black +fi + + +# ------------------------------------------------------------------------------ +# SEGMENT DRAWING +# A few functions to make it easy and re-usable to draw segmented prompts +# ------------------------------------------------------------------------------ + +CURRENT_BG='NONE' +SEGMENT_SEPARATOR='' + +# Begin a segment +# Takes three arguments, background, foreground and text. All of them can be omitted, +# rendering default background/foreground and no text. +prompt_segment() { + local bg fg + [[ -n $1 ]] && bg="%K{$1}" || bg="%k" + [[ -n $2 ]] && fg="%F{$2}" || fg="%f" + if [[ $CURRENT_BG != 'NONE' && $1 != $CURRENT_BG ]]; then + echo -n " %{$bg%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR%{$fg%} " + else + echo -n "%{$bg%}%{$fg%} " + fi + CURRENT_BG=$1 + [[ -n $3 ]] && echo -n $3 +} + +# End the prompt, closing any open segments +prompt_end() { + if [[ -n $CURRENT_BG ]]; then + echo -n " %{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR" + else + echo -n "%{%k%}" + fi + echo -n "%{%f%}" + CURRENT_BG='' +} + +# ------------------------------------------------------------------------------ +# PROMPT COMPONENTS +# Each component will draw itself, and hide itself if no information needs +# to be shown +# ------------------------------------------------------------------------------ + +# Context: user@hostname (who am I and where am I) +context() { + local user="$(whoami)" + [[ "$user" != "$BULLETTRAIN_CONTEXT_DEFAULT_USER" || -n "$BULLETTRAIN_IS_SSH_CLIENT" ]] && echo -n "${user}@$BULLETTRAIN_CONTEXT_HOSTNAME" +} + +prompt_context() { + local _context="$(context)" + [[ -n "$_context" ]] && prompt_segment $BULLETTRAIN_CONTEXT_BG $BULLETTRAIN_CONTEXT_FG "$_context" +} + +# Based on http://stackoverflow.com/a/32164707/3859566 +function displaytime { + local T=$1 + local D=$((T/60/60/24)) + local H=$((T/60/60%24)) + local M=$((T/60%60)) + local S=$((T%60)) + [[ $D > 0 ]] && printf '%dd' $D + [[ $H > 0 ]] && printf '%dh' $H + [[ $M > 0 ]] && printf '%dm' $M + printf '%ds' $S +} + +# Prompt previous command execution time +preexec() { + cmd_timestamp=`date +%s` +} + +precmd() { + local stop=`date +%s` + local start=${cmd_timestamp:-$stop} + let BULLETTRAIN_last_exec_duration=$stop-$start + cmd_timestamp='' +} + +prompt_cmd_exec_time() { + [ $BULLETTRAIN_last_exec_duration -gt $BULLETTRAIN_EXEC_TIME_ELAPSED ] && prompt_segment $BULLETTRAIN_EXEC_TIME_BG $BULLETTRAIN_EXEC_TIME_FG "$(displaytime $BULLETTRAIN_last_exec_duration)" +} + +# Custom +prompt_custom() { + if [[ $BULLETTRAIN_CUSTOM_MSG == false ]]; then + return + fi + + local custom_msg + eval custom_msg=$BULLETTRAIN_CUSTOM_MSG + [[ -n "${custom_msg}" ]] && prompt_segment $BULLETTRAIN_CUSTOM_BG $BULLETTRAIN_CUSTOM_FG "${custom_msg}" +} + +# Git +prompt_git() { + if [[ "$(command git config --get oh-my-zsh.hide-status 2>/dev/null)" == "1" ]]; then + return + fi + + local ref dirty mode repo_path git_prompt + repo_path=$(git rev-parse --git-dir 2>/dev/null) + + if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then + if [[ $BULLETTRAIN_GIT_COLORIZE_DIRTY == true && -n $(git status --porcelain --ignore-submodules) ]]; then + BULLETTRAIN_GIT_BG=$BULLETTRAIN_GIT_COLORIZE_DIRTY_BG_COLOR + BULLETTRAIN_GIT_FG=$BULLETTRAIN_GIT_COLORIZE_DIRTY_FG_COLOR + fi + prompt_segment $BULLETTRAIN_GIT_BG $BULLETTRAIN_GIT_FG + + eval git_prompt=${BULLETTRAIN_GIT_PROMPT_CMD} + if [[ $BULLETTRAIN_GIT_EXTENDED == true ]]; then + echo -n ${git_prompt}$(git_prompt_status) + else + echo -n ${git_prompt} + fi + fi +} + +prompt_hg() { + local rev status + if $(hg id >/dev/null 2>&1); then + if $(hg prompt >/dev/null 2>&1); then + if [[ $(hg prompt "{status|unknown}") = "?" ]]; then + # if files are not added + prompt_segment red white + st='±' + elif [[ -n $(hg prompt "{status|modified}") ]]; then + # if any modification + prompt_segment yellow black + st='±' + else + # if working copy is clean + prompt_segment green black + fi + echo -n $(hg prompt "☿ {rev}@{branch}") $st + else + st="" + rev=$(hg id -n 2>/dev/null | sed 's/[^-0-9]//g') + branch=$(hg id -b 2>/dev/null) + if $(hg st | grep -Eq "^\?"); then + prompt_segment red black + st='±' + elif $(hg st | grep -Eq "^(M|A)"); then + prompt_segment yellow black + st='±' + else + prompt_segment green black + fi + echo -n "☿ $rev@$branch" $st + fi + fi +} + +# Dir: current working directory +prompt_dir() { + local dir='' + local _context="$(context)" + [[ $BULLETTRAIN_DIR_CONTEXT_SHOW == true && -n "$_context" ]] && dir="${dir}${_context}:" + + if [[ $BULLETTRAIN_DIR_EXTENDED == 0 ]]; then + #short directories + dir="${dir}%1~" + elif [[ $BULLETTRAIN_DIR_EXTENDED == 2 ]]; then + #long directories + dir="${dir}%0~" + else + #medium directories (default case) + dir="${dir}%4(c:...:)%3c" + fi + + prompt_segment $BULLETTRAIN_DIR_BG $BULLETTRAIN_DIR_FG $dir +} + +# RUBY +# RVM: only shows RUBY info if on a gemset that is not the default one +# RBENV: shows current ruby version active in the shell; also with non-global gemsets if any is active +# CHRUBY: shows current ruby version active in the shell +prompt_ruby() { + if command -v rvm-prompt > /dev/null 2>&1; then + prompt_segment $BULLETTRAIN_RUBY_BG $BULLETTRAIN_RUBY_FG $BULLETTRAIN_RUBY_PREFIX" $(rvm-prompt i v g)" + elif command -v chruby > /dev/null 2>&1; then + prompt_segment $BULLETTRAIN_RUBY_BG $BULLETTRAIN_RUBY_FG $BULLETTRAIN_RUBY_PREFIX" $(chruby | sed -n -e 's/ \* //p')" + elif command -v rbenv > /dev/null 2>&1; then + current_gemset() { + echo "$(rbenv gemset active 2&>/dev/null | sed -e 's/ global$//')" + } + + if [[ -n $(current_gemset) ]]; then + prompt_segment $BULLETTRAIN_RUBY_BG $BULLETTRAIN_RUBY_FG $BULLETTRAIN_RUBY_PREFIX" $(rbenv version | sed -e 's/ (set.*$//')"@"$(current_gemset)" + else + prompt_segment $BULLETTRAIN_RUBY_BG $BULLETTRAIN_RUBY_FG $BULLETTRAIN_RUBY_PREFIX" $(rbenv version | sed -e 's/ (set.*$//')" + fi + fi +} + +# ELIXIR +prompt_elixir() { + if command -v elixir > /dev/null 2>&1; then + prompt_segment $BULLETTRAIN_ELIXIR_BG $BULLETTRAIN_ELIXIR_FG $BULLETTRAIN_ELIXIR_PREFIX" $(elixir -v | tail -n 1 | awk '{print $2}')" + fi +} + +# PERL +# PLENV: shows current PERL version active in the shell +prompt_perl() { + if command -v plenv > /dev/null 2>&1; then + prompt_segment $BULLETTRAIN_PERL_BG $BULLETTRAIN_PERL_FG $BULLETTRAIN_PERL_PREFIX" $(plenv version | sed -e 's/ (set.*$//')" + fi +} + +# Go +prompt_go() { + setopt extended_glob + if [[ (-f *.go(#qN) || -d Godeps || -f glide.yaml) ]]; then + if command -v go > /dev/null 2>&1; then + prompt_segment $BULLETTRAIN_GO_BG $BULLETTRAIN_GO_FG $BULLETTRAIN_GO_PREFIX" $(go version | grep --colour=never -oE '[[:digit:]].[[:digit:]]+')" + fi + fi +} + +# Rust +prompt_rust() { + if [[ (-f Cargo.toml) ]]; then + if command -v rustc > /dev/null 2>&1; then + prompt_segment $BULLETTRAIN_RUST_BG $BULLETTRAIN_RUST_FG $BULLETTRAIN_RUST_PREFIX" $(rustc -V version | cut -d' ' -f2)" + fi + fi +} + +# Kubernetes Context +prompt_kctx() { + if [[ "$BULLETTRAIN_KCTX_KUBECTL" == "true" ]] && command -v kubectl > /dev/null 2>&1; then + local jsonpath='{.current-context}' + if [[ "$BULLETTRAIN_KCTX_NAMESPACE" == "true" ]]; then + jsonpath="${jsonpath}{':'}{..namespace}" + fi + prompt_segment $BULLETTRAIN_KCTX_BG $BULLETTRAIN_KCTX_FG $BULLETTRAIN_KCTX_PREFIX" $(kubectl config view --minify --output "jsonpath=${jsonpath}" 2>/dev/null)" + elif [[ -f $BULLETTRAIN_KCTX_KCONFIG ]]; then + prompt_segment $BULLETTRAIN_KCTX_BG $BULLETTRAIN_KCTX_FG $BULLETTRAIN_KCTX_PREFIX" $(cat $BULLETTRAIN_KCTX_KCONFIG | grep current-context | awk '{print $2}')" + fi +} + +# Virtualenv: current working virtualenv +prompt_virtualenv() { + local virtualenv_path="$VIRTUAL_ENV" + if [[ -n $virtualenv_path && -n $VIRTUAL_ENV_DISABLE_PROMPT ]]; then + prompt_segment $BULLETTRAIN_VIRTUALENV_BG $BULLETTRAIN_VIRTUALENV_FG $BULLETTRAIN_VIRTUALENV_PREFIX" $(basename $virtualenv_path)" + elif which pyenv &> /dev/null; then + if [[ "$(pyenv version | sed -e 's/ (set.*$//' | tr '\n' ' ' | sed 's/.$//')" != "system" ]]; then + prompt_segment $BULLETTRAIN_VIRTUALENV_BG $BULLETTRAIN_VIRTUALENV_FG $BULLETTRAIN_VIRTUALENV_PREFIX" $(pyenv version | sed -e 's/ (set.*$//' | tr '\n' ' ' | sed 's/.$//')" + fi + fi +} + +# NVM: Node version manager +prompt_nvm() { + local nvm_prompt + if type nvm >/dev/null 2>&1; then + nvm_prompt=$(nvm current 2>/dev/null) + [[ "${nvm_prompt}x" == "x" || "${nvm_prompt}" == "system" ]] && return + elif type node >/dev/null 2>&1; then + nvm_prompt="$(node --version)" + else + return + fi + nvm_prompt=${nvm_prompt} + prompt_segment $BULLETTRAIN_NVM_BG $BULLETTRAIN_NVM_FG $BULLETTRAIN_NVM_PREFIX$nvm_prompt +} + +#AWS Profile +prompt_aws() { + local spaces=" " + + if [[ -n "$AWS_PROFILE" ]]; then + prompt_segment $BULLETTRAIN_AWS_BG $BULLETTRAIN_AWS_FG $BULLETTRAIN_AWS_PREFIX$spaces$AWS_PROFILE + fi +} + +# SCREEN Session +prompt_screen() { + local session_name="$STY" + if [[ "$session_name" != "" ]]; then + prompt_segment $BULLETTRAIN_SCREEN_BG $BULLETTRAIN_SCREEN_FG $BULLETTRAIN_SCREEN_PREFIX" $session_name" + fi +} + +prompt_time() { + if [[ $BULLETTRAIN_TIME_12HR == true ]]; then + prompt_segment $BULLETTRAIN_TIME_BG $BULLETTRAIN_TIME_FG %D{%r} + else + prompt_segment $BULLETTRAIN_TIME_BG $BULLETTRAIN_TIME_FG %D{%T} + fi +} + +# Status: +# - was there an error +# - am I root +# - are there background jobs? +prompt_status() { + local symbols + symbols=() + [[ $RETVAL -ne 0 && $BULLETTRAIN_STATUS_EXIT_SHOW != true ]] && symbols+="✘" + [[ $RETVAL -ne 0 && $BULLETTRAIN_STATUS_EXIT_SHOW == true ]] && symbols+="✘ $RETVAL" + [[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}⚡%f" + [[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="⚙" + + if [[ -n "$symbols" && $RETVAL -ne 0 ]]; then + prompt_segment $BULLETTRAIN_STATUS_ERROR_BG $BULLETTRAIN_STATUS_FG "$symbols" + elif [[ -n "$symbols" ]]; then + prompt_segment $BULLETTRAIN_STATUS_BG $BULLETTRAIN_STATUS_FG "$symbols" + fi + +} + +# Prompt Character +prompt_chars() { + local bt_prompt_chars="${BULLETTRAIN_PROMPT_CHAR}" + + if [[ $BULLETTRAIN_PROMPT_ROOT == true ]]; then + bt_prompt_chars="%(!.%F{red}# .%F{green}${bt_prompt_chars}%f)" + fi + + if [[ $BULLETTRAIN_PROMPT_SEPARATE_LINE == false ]]; then + bt_prompt_chars="${bt_prompt_chars}" + fi + + echo -n "$bt_prompt_chars" + + if [[ -n $BULLETTRAIN_PROMPT_CHAR ]]; then + echo -n " " + fi +} + +# Prompt Line Separator +prompt_line_sep() { + if [[ $BULLETTRAIN_PROMPT_SEPARATE_LINE == true ]]; then + # newline wont print without a non newline character, so add a zero-width space + echo -e '\n%{\u200B%}' + fi +} + +# ------------------------------------------------------------------------------ +# MAIN +# Entry point +# ------------------------------------------------------------------------------ + +build_prompt() { + RETVAL=$? + for segment in $BULLETTRAIN_PROMPT_ORDER + do + prompt_$segment + done + prompt_end +} + +NEWLINE=' +' +PROMPT='' +[[ $BULLETTRAIN_PROMPT_ADD_NEWLINE == true ]] && PROMPT="$PROMPT$NEWLINE" +PROMPT="$PROMPT"'%{%f%b%k%}$(build_prompt)' +[[ $BULLETTRAIN_PROMPT_SEPARATE_LINE == true ]] && PROMPT="$PROMPT$NEWLINE" +PROMPT="$PROMPT"'%{${fg_bold[default]}%}' +[[ $BULLETTRAIN_PROMPT_SEPARATE_LINE == false ]] && PROMPT="$PROMPT " +PROMPT="$PROMPT"'$(prompt_chars)%{$reset_color%}' diff --git a/img/icon-square.png b/img/icon-square.png new file mode 100644 index 0000000..81629bb Binary files /dev/null and b/img/icon-square.png differ diff --git a/img/icon-square.sketch b/img/icon-square.sketch new file mode 100644 index 0000000..8317946 Binary files /dev/null and b/img/icon-square.sketch differ diff --git a/img/icon.png b/img/icon.png new file mode 100644 index 0000000..47adcf4 Binary files /dev/null and b/img/icon.png differ diff --git a/img/icon.sketch b/img/icon.sketch new file mode 100644 index 0000000..14dff13 Binary files /dev/null and b/img/icon.sketch differ diff --git a/img/icon.svg b/img/icon.svg new file mode 100644 index 0000000..5e711c2 --- /dev/null +++ b/img/icon.svg @@ -0,0 +1,24 @@ + + + + icon + Created with Sketch. + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/img/preview.gif b/img/preview.gif new file mode 100644 index 0000000..b2c41bd Binary files /dev/null and b/img/preview.gif differ diff --git a/img/wiki/screenshots/monokai.png b/img/wiki/screenshots/monokai.png new file mode 100644 index 0000000..49bb28e Binary files /dev/null and b/img/wiki/screenshots/monokai.png differ diff --git a/img/wiki/screenshots/solarized-dark.png b/img/wiki/screenshots/solarized-dark.png new file mode 100644 index 0000000..01eadf7 Binary files /dev/null and b/img/wiki/screenshots/solarized-dark.png differ diff --git a/img/wiki/screenshots/tomorrow-night-bright.png b/img/wiki/screenshots/tomorrow-night-bright.png new file mode 100644 index 0000000..4c704e2 Binary files /dev/null and b/img/wiki/screenshots/tomorrow-night-bright.png differ diff --git a/img/wiki/screenshots/tomorrow-night-eighties.png b/img/wiki/screenshots/tomorrow-night-eighties.png new file mode 100644 index 0000000..9f1378b Binary files /dev/null and b/img/wiki/screenshots/tomorrow-night-eighties.png differ diff --git a/img/wiki/tips/git_prompt_command.png b/img/wiki/tips/git_prompt_command.png new file mode 100644 index 0000000..4861afe Binary files /dev/null and b/img/wiki/tips/git_prompt_command.png differ diff --git a/img/wiki/tips/git_prompt_function.png b/img/wiki/tips/git_prompt_function.png new file mode 100644 index 0000000..b84ea6f Binary files /dev/null and b/img/wiki/tips/git_prompt_function.png differ diff --git a/img/wiki/tips/git_prompt_origin.png b/img/wiki/tips/git_prompt_origin.png new file mode 100644 index 0000000..2db03e0 Binary files /dev/null and b/img/wiki/tips/git_prompt_origin.png differ diff --git a/img/wiki/tips/prompt_order.png b/img/wiki/tips/prompt_order.png new file mode 100644 index 0000000..daae6b2 Binary files /dev/null and b/img/wiki/tips/prompt_order.png differ diff --git a/makefile b/makefile new file mode 100644 index 0000000..3801b59 --- /dev/null +++ b/makefile @@ -0,0 +1,7 @@ +# Installs a copy of the theme on the folder `~/.oh-my-zsh/themes/` +install: + cp ./bullet-train.zsh-theme ~/.oh-my-zsh/themes/bullet-train.zsh-theme + +# Symlinks the theme for easier development +link: + ln -sF `pwd`/bullet-train.zsh-theme ~/.oh-my-zsh/themes/