• Stars
    star
    149
  • Rank 240,936 (Top 5 %)
  • Language
    Shell
  • License
    MIT License
  • Created over 7 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An asynchronous minimal zsh prompt

alien-minimal

GitHub tag

Contributors GitHub last commit (branch) license GitHub issues GitHub closed issues GitHub pull requests GitHub closed pull requests

alien-minimal theme is faster than many other themes.

Why? It updates part of the prompt asynchronously - the time consuming processing like git status checking, git dirty copy checking etc.

How? It starts a background job for these process, and in the mean time shows initial prompt and lets you use the terminal as you would normally.

alien-minimal is independent of any library/framework like Oh-My-Zsh or Prezto.

Installation

Add the following line in ~/.zshrc depending on zsh plugin manager

antigen:
antigen theme eendroroy/alien-minimal alien-minimal
zgen:
zgen load eendroroy/alien-minimal
zplug:
zplug "eendroroy/alien-minimal"
oh-my-zsh: Overriding and Adding Themes
# if using git 2.13 or higher
git clone --recurse-submodules https://github.com/eendroroy/alien-minimal.git ${ZSH_CUSTOM}/themes/alien-minimal

# if lower version use
cd ${ZSH_CUSTOM}/themes/alien-minimal
git clone https://github.com/eendroroy/alien-minimal.git
git submodule update --init --recursive

Then set ZSH_THEME="alien-minimal/alien-minimal" in the ~/.zshrc file.

Asciicast (1.4.1)

asciicast

Customizations

add configurations in ~/.amrc

VI prompt

Enable VI prompt (vi-mode is enabled by bindkey -v)

export AM_ENABLE_VI_PROMPT=1

Set vi prompt position

export AM_VI_PROMPT_POS=left_start
# (i) am-demo       G:master [1Y,9M] 6fd4c14 @1 + ⭑ ⭑ - - ?

export AM_VI_PROMPT_POS=left_end
# am-demo (i)       G:master [1Y,9M] 6fd4c14 @1 + ⭑ ⭑ - - ?

export AM_VI_PROMPT_POS=right_start
# am-demo       (i) G:master [1Y,9M] 6fd4c14 @1 + ⭑ ⭑ - - ?

export AM_VI_PROMPT_POS=right_end
# am-demo       G:master [1Y,9M] 6fd4c14 @1 + ⭑ ⭑ - - ? (i)

Update left prompt asynchronously

export AM_ASYNC_L_PROMPT=1

Show initial new line

Always show a new line

export AM_INITIAL_LINE_FEED=1

Unset AM_INITIAL_LINE_FEED to stop printing a new line.

Add start tag and end tag:

export AM_PROMPT_START_TAG='-->'     # previously `PROMPT_START_TAG`     
export AM_PROMPT_END_TAG='\ $'       # previously `PROMPT_END_TAG`       
export AM_PROMPT_START_TAG_COLOR=81  # previously `PROMPT_START_TAG_COLOR`  
export AM_PROMPT_END_TAG_COLOR=81    # previously `PROMPT_END_TAG_COLOR`    

Result:

--> ~ $
--> ~ $ 1
(venv) --> python-project $
(venv) --> python-project $ 130

You can additionally show the error color on prompt start tag:

export AM_ERROR_ON_START_TAG=1

Note: if AM_PROMPT_START_TAG is empty, this configuration will be ignored.

Show versions:

Available version are: PYTHON PYTHON_S RUBY RUBY_S JAVA JAVA_S GO GO_S ELIXIR ELIXIR_S CRYSTAL CRYSTAL_S NODE NODE_S PHP PHP_S

export AM_VERSIONS_PROMPT=(RUBY PYTHON JAVA GO CRYSTAL NODE PHP ELIXIR)

Customize Separator:

export AM_VERSION_PROMPT_SEP='|'

Note: Prompt maintain declaration order.

Configure dirname in prompt:

export AM_DIR_EXPANSION_LEVEL=2

The effect may be un-noticeable on faster CPUs.

Hide exit code:

export AM_HIDE_EXIT_CODE=1

Keep previous RPROMPT:

export AM_KEEP_PROMPT=1

Color themes:

1. export AM_THEME=mono
1. export AM_THEME=mono_bright
1. export AM_THEME=terminal
1. export AM_THEME=soft
1. export AM_THEME=default

Note: Unset AM_THEME to use default color scheme.

Apart from these default themes, custom colors can be defined:

export AM_VCS_COLOR=1          # color for VCS (G: M: V:)
export AM_SSH_COLOR=11         # color for ssh indicator
export AM_NORMAL_COLOR=12      # color for normal text
export AM_ERROR_COLOR=1        # color for ERROR
export AM_REV_COLOR=14         # color for VCS Revision number
export AM_BRANCH_COLOR=10      # color for VCS BRANCH name
export AM_LEFT_RIGHT_COLOR=3   # color for GIT Left-Right status
export AM_STASH_COLOR=3        # color for GIT stash count
export AM_BARE_COLOR=3         # color for GIT bare repo indicator
export AM_COMMIT_SINCE_COLOR=6 # color for last commit time
export AM_FADE_COLOR=8         # color for fade text color
export AM_VENV_COLOR=8         # color fir python virtual env text
export AM_PYTHON_COLOR=2       # color for python version text
export AM_RUBY_COLOR=1         # color for ruby version text
export AM_JAVA_COLOR=15        # color for java version text
export AM_TIMER_COLOR=14       # color for command execution time
export AM_VIINS_COLOR=39       # color for viins mode
export AM_VICMD_COLOR=208      # color vicmd mode

Or creating a new theme file:

/path/to/custom/theme.zsh

#!/usr/bin/env zsh

am_theme(){
  AM_VCS_COLOR=248
  AM_SSH_COLOR=143
  AM_NORMAL_COLOR=39
  AM_ERROR_COLOR=208
  AM_REV_COLOR=248
  AM_BRANCH_COLOR=78
  AM_LEFT_RIGHT_COLOR=222
  AM_STASH_COLOR=222
  AM_BARE_COLOR=222
  AM_COMMIT_SINCE_COLOR=244
  AM_FADE_COLOR=242
  AM_VENV_COLOR=245
  AM_PYTHON_COLOR=40
  AM_RUBY_COLOR=196
  AM_JAVA_COLOR=178
  AM_TIMER_COLOR=248
  AM_VIINS_COLOR=39
  AM_VICMD_COLOR=208
}

Then activate the theme using:

export AM_CUSTOM_THEME_PATH=/path/to/custom/theme.zsh

Nerd Font:

Nerd Font must be installed nerd-fonts

Enable Nerd Font

export AM_USE_NERD_FONT=1 # previously `USE_NERD_FONT`

customize symbols

export AM_JAVA_SYM='JAVA:'  # JAVA Version Symbol
export AM_PY_SYM='PY:'      # Python Version Symbol
export AM_RB_SYM='RB:'      # Ruby Version Symbol 
export AM_GO_SYM='GO:'      # Go Version Symbol 
export AM_ELIXIR_SYM='EX:'  # Elixir Version Symbol 
export AM_CRYSTAL_SYM='CR:' # Crystal Version Symbol 
export AM_NODE_SYM='NODE:'  # Node Version Symbol 
export AM_PHP_SYM='PHP:'    # PHP Version Symbol 

export AM_GIT_STASH_SYM='@'  # Git Stash Count Symbbol
export AM_GIT_BARE_SYM=''   # Git bare repo Symbbol
export AM_GIT_SYM=G          # Git Symbol
export AM_HG_SYM=M           # Mercurial Symbol
export AM_SSH_SYM=[S]        # SSH Indicator Symbol
export AM_VIM_INSERT_SYM='[I]'  # VI mode symbol
export AM_VIM_NORMAL_SYM='[N]'  # VI mode symbol
 
export AM_GIT_ADD_SYM='+'  # Git New Tracked File Symbol
export AM_GIT_DEL_SYM='-'  # Git Deleted File Symbol
export AM_GIT_MOD_SYM='*'  # Git Modified File Symbol
export AM_GIT_NEW_SYM='?'  # Git New Un-tracked File Symbol
export AM_GIT_PUSH_SYM='' # Git Un-pushed Commit Symbol
export AM_GIT_PULL_SYM='' # Git New Commit Symbol

Note: this overrides AM_USE_NERD_FONT configuration.

customize colors

export AM_GIT_TRACKED_COLOR=green
export AM_GIT_UN_TRACKED_COLOR=red

Libraries Used

Contributing

Bug reports and pull requests are welcome on GitHub at alien-minimal repository. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

  1. Fork it ( https://github.com/eendroroy/alien-minimal/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Author

License

The project is available as open source under the terms of the MIT License.

More Repositories

1

alacritty-theme

Collection of Alacritty color schemes
1,881
star
2

alien

An asynchronous zsh prompt
Shell
293
star
3

nothing

Nothing ZSH theme
Shell
30
star
4

puma-deploy

capistrano deploy script for puma with nginx
Ruby
14
star
5

ansible-rails-pg

Setup environment for deploying rails application on Debian/RPM based os.
Ruby
12
star
6

passwordpolicy

passwordcheck plugin with configuration options
C
9
star
7

theta

A fast and verbose zsh prompt
Shell
9
star
8

promptlib-zsh

collection of libraries for zsh prompts
Shell
8
star
9

pg_semver

Version(SEMVER) data type for postgresql
C
6
star
10

ansible-role-pyenv

Shell
6
star
11

zed-zsh

A simple wrapper for z to install as zsh plugin.
Shell
6
star
12

loki-bootstrap

Install necessary packages after installing ubuntu/xenial or elementary/loki
Shell
6
star
13

elk-stack-docker

Simple docker-compose configuration to run kibana
Dockerfile
5
star
14

dockerize_rails

Rubygem to create working docker container for rails application.
Ruby
5
star
15

awesome-git

some usefull git shortcats
Shell
5
star
16

spikes

A tool to display sparkline ▁▁▂▁▂█▁▅▂
Python
2
star
17

ansible-role-nodenv

Shell
2
star
18

dotfiles

Vim Script
2
star
19

tmux-simple-theme

Tmux theme
Shell
2
star
20

pg_vercomp

Version data type for postgresql
C
2
star
21

solr-samples

SOLR 7 example
Dockerfile
1
star
22

twitterz_phx

Sample Phoenix project
Elixir
1
star
23

ansible-role-docker-ce

Shell
1
star
24

jira-sample-plugin

Java
1
star
25

exposed.demo

Kotlin
1
star
26

model_2_factory-rails

Generates factories for models
Ruby
1
star
27

zsh-manpage-color

colorize 'man' page
Shell
1
star
28

opensdk-portwallet

Kotlin
1
star