All Projects → eendroroy → Alien Minimal

eendroroy / Alien Minimal

Licence: mit
An asynchronous minimal zsh prompt

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Alien Minimal

Spaceship Prompt
🚀⭐ A Zsh prompt for Astronauts
Stars: ✭ 15,748 (+12808.2%)
Mutual labels:  zsh, zsh-theme
Polyglot
Color, ASCII-only Git prompt for zsh, bash, ksh93, mksh, pdksh, dash, and busybox ash
Stars: ✭ 118 (-3.28%)
Mutual labels:  zsh, zsh-theme
Starship
☄🌌️ The minimal, blazing-fast, and infinitely customizable prompt for any shell!
Stars: ✭ 20,504 (+16706.56%)
Mutual labels:  zsh, zsh-theme
Agkozak Zsh Prompt
A fast, asynchronous ZSH prompt with color ASCII indicators of Git, exit, SSH, virtual environment, and vi mode status. Framework-agnostic and customizable.
Stars: ✭ 182 (+49.18%)
Mutual labels:  zsh, zsh-theme
Dotfiles
🐲 My Arch Linux config [i3-gaps + i3blocks + Zsh + Spacemacs + Rofi + Alacritty + Neofetch]
Stars: ✭ 725 (+494.26%)
Mutual labels:  zsh, zsh-theme
Alien
An asynchronous zsh prompt
Stars: ✭ 218 (+78.69%)
Mutual labels:  zsh, zsh-theme
apollo-zsh-theme
Heavily customizable, compatible, and fast ZSH theme framework.
Stars: ✭ 64 (-47.54%)
Mutual labels:  zsh, zsh-theme
Common
A simple, clean and minimal prompt.
Stars: ✭ 213 (+74.59%)
Mutual labels:  zsh, zsh-theme
Hyperzsh
A hyperminimal zsh prompt
Stars: ✭ 470 (+285.25%)
Mutual labels:  zsh, zsh-theme
Zsh Quickstart Kit
Simple ZSH quickstart for using ZSH and zgen
Stars: ✭ 366 (+200%)
Mutual labels:  zsh, zsh-theme
Jovial
jovial - a jovial theme for zsh
Stars: ✭ 124 (+1.64%)
Mutual labels:  zsh, zsh-theme
Dotfiles
What tools and plugins I use for web development?
Stars: ✭ 73 (-40.16%)
Mutual labels:  zsh, zsh-theme
aphrodite-terminal-theme
🎀 Minimalistic Aphrodite theme for sexy terminals
Stars: ✭ 64 (-47.54%)
Mutual labels:  zsh, zsh-theme
Powerlevel10k
A Zsh theme
Stars: ✭ 23,689 (+19317.21%)
Mutual labels:  zsh-theme, zsh
Lambda Zsh Theme
λ Beautiful lambda theme for Zsh
Stars: ✭ 39 (-68.03%)
Mutual labels:  zsh, zsh-theme
Pi
A minimalist zsh theme with git status decorations
Stars: ✭ 76 (-37.7%)
Mutual labels:  zsh, zsh-theme
Nvm
nvm is a version manager for node.js, designed to be installed per-user, and invoked per-shell. nvm works on any POSIX-compliant shell (sh, dash, ksh, zsh, bash), in particular on these platforms: unix, macOS, and windows WSL.
Stars: ✭ 53,926 (+44101.64%)
Mutual labels:  zsh
Zpm
ZPM — Zsh Plugin Manager
Stars: ✭ 112 (-8.2%)
Mutual labels:  zsh
Fzf
🌸 A command-line fuzzy finder
Stars: ✭ 40,965 (+33477.87%)
Mutual labels:  zsh
Zsh Nvm
Zsh plugin for installing, updating and loading nvm
Stars: ✭ 1,670 (+1268.85%)
Mutual labels:  zsh

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].