/EyeRelax-zsh-theme

Primary LanguageShellMIT LicenseMIT

EyeRelax-zsh-theme

Overview

This is an oh-my-zsh theme with informative git status, venv/Anaconda environment info and command execution time.

demo.png

Show time cost when it run longer than 1 second ( You can change this threshold by edit theme script)

costline.png

Features

You can see the followings at once:

  • Real time
  • Login user
  • Working directory
  • Venv/Anaconda's environment name
  • Rich git status

After command execution, you can see also:

  • Command execution time
  • Success/Error hint

Credits

This project is base on "simplerich-zsh-theme" and borrow code from "ohmyzsh-theme-passion", also some modification accordding to my own preferences.

Git Status Symbols

The git status is updated immediately after a command is finished or every 10 seconds after the terminal is started.

Symbol Meaning
[main] The repository is clean.
[main +n] There are n staged files.
[main ●n] There are n changed but unstaged files.
[main …n] There are n untracked files.
[main xn] There are n conflicting files.
[main n|m] The local branch is m commits ahead and n commits behind the remote branch.
[main *] This will be displayed instead of the informative symbols
when python cannot be executed and the repository not clean.

Install

  1. Clone the repository & copy the zsh-theme file.
# cd path/to/where_u_want_to_clone_the_repo
git clone --recursive https://gitee.com/cloud-wang/EyeRelax-zsh-theme
cp ./EyeRelax-zsh-theme/EyeRelax.zsh-theme ~/.oh-my-zsh/themes/
  1. Edit ~/.zshrc.
# file:~/.zshrc
# Find the line that reads ZSH_THEME="..." and replace it with the followings.
ZSH_THEME="EyeRelax"
source path/to/where_u_want_to_clone_the_repo/EyeRelax-zsh-theme/zsh-git-prompt/zshrc.sh

Attention

  • These must be BEFORE the line source $ZSH/oh-my-zsh.sh in ~/.zshrc.
  • Change the path of source .../zsh-git-prompt/zshrc.sh according to your environment.
  • If you comment out source .../zsh-git-prompt/zshrc.sh or you cannot use python command, you can use a eye_relax git status like the following:
    eye_relax_git_status.png
  1. If you use venv, remove the original display of the environment name.
echo "export VIRTUAL_ENV_DISABLE_PROMPT=1" >> ~/.zshrc

Or if you use Anaconda, run this:

conda config --set changeps1 False
  1. Load ~/.zshrc.
source ~/.zshrc

See also Overriding and adding themes and zsh-git-prompt.

Trouble Shooting

On macOS, Command Not Found: gdate

  • EyeRelax.zsh-theme depends on cmd gdate to get current time in milliseconds. get gdate on macOS by running brew install coreutils then source ~/.zshrc.
  • See also #12.

On Linux, Command Not Found: bc

  • EyeRelax.zsh-theme depends on cmd bc to calculate the command running time cost. get bc on Linux then source ~/.zshrc.
  • See also #13.

On Centos 7, Shell Exit

Extra Preferences

Zsh Plugins

  1. zsh-autosuggestions
  2. zsh-syntax-highlighting
  3. zsh-completions
  4. zsh-history-substring-search

iTerm2 Preferences

Color

Status Bar

  • iTerm2: Settings -> Appearance && settings -> Profiles -> Session -> Configure Status Bar status_0.png status_1.png

Font

  • Install JetBrains Mono.
  • iTerm2: Settings -> Appearance && settings -> Profiles -> Text -> Font font.png