An open API service indexing awesome lists of open source software.

https://github.com/code-brewer/EyeRelax-zsh-theme


https://github.com/code-brewer/EyeRelax-zsh-theme

Last synced: 27 days ago
JSON representation

Awesome Lists containing this project

README

          

# 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](./readme/demo.png)

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

![costline.png](./readme/show_cost_line_or_not.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.

- [ohmyzsh-theme-passion](https://github.com/ChesterYue/ohmyzsh-theme-passion)
- [simplerich-zsh-theme](https://github.com/philip82148/simplerich-zsh-theme)

## 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.

```shell
# 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/
```

2. Edit ~/.zshrc.

```shell
# 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](./readme/eye_relax_git_status.png)

3. If you use venv, remove the original display of the environment name.

```shell
echo "export VIRTUAL_ENV_DISABLE_PROMPT=1" >> ~/.zshrc
```

Or if you use Anaconda, run this:

```shell
conda config --set changeps1 False
```

4. Load ~/.zshrc.

```shell
source ~/.zshrc
```

See also [Overriding and adding themes](https://github.com/ohmyzsh/ohmyzsh/wiki/Customization#overriding-and-adding-themes) and [zsh-git-prompt](https://github.com/olivierverdier/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](https://github.com/ChesterYue/ohmyzsh-theme-passion/issues/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](https://www.tecmint.com/bc-command-examples/#:~:text=If%20you%20don%E2%80%99t%20have%20bc%20on%20your%20system%2C,command%20prompt%20and%20simply%20start%20calculating%20your%20expressions.) then `source ~/.zshrc`.
- See also [#13](https://github.com/ChesterYue/ohmyzsh-theme-passion/issues/13).

### On Centos 7, Shell Exit

- It may be caused by [set timer to zsh prompt](https://github.com/ChesterYue/ohmyzsh-theme-passion/blob/8f71c43c2df91810249ab00ff40fc4ca63207467/passion.zsh-theme#L197-L208).
- See also [#4](https://github.com/ChesterYue/ohmyzsh-theme-passion/issues/4).

## Extra Preferences

### Zsh Plugins

1. [zsh-autosuggestions](https://github.com/zsh-users/zsh-autosuggestions)
2. [zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting)
3. [zsh-completions](https://github.com/zsh-users/zsh-completions)
4. [zsh-history-substring-search](https://github.com/zsh-users/zsh-history-substring-search)

### iTerm2 Preferences

#### Color

- iTerm2: Settings -> Profiles -> Colors -> Color Presets -> Import `./EyeRelax.itermcolors`
![color.png](./readme/color.png)
- Alternate terminal: Try [Alternate terminal installation and configuration](https://iterm2colorschemes.com/).

#### Status Bar

- iTerm2: Settings -> Appearance && settings -> Profiles -> Session -> Configure Status Bar
![status_0.png](./readme/status_0.png) ![status_1.png](./readme/status_1.png)

#### Font

- Install [JetBrains Mono](https://www.jetbrains.com/lp/mono/).
- iTerm2: Settings -> Appearance && settings -> Profiles -> Text -> Font
![font.png](./readme/font.png)