sudo apt-get install zsh zsh-antigen curl autojump fonts-powerline sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting git clone https://github.com/supercrabtree/k $ZSH_CUSTOM/plugins/k https://github.com/gabrielelana/awesome-terminal-fonts.git cd awesome-terminal-fonts ./install.sh cd .. rm -r -f awesome-terminal-fonts
For Ubuntu
export TERM="xterm-256color" export ZSH=/home/pwn/.oh-my-zsh ZSH_THEME="powerlevel9k/powerlevel9k" POWERLEVEL9K_MODE="awesome-fontconfig" POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=0 POWERLEVEL9K_DIR_OMIT_FIRST_CHARACTER=true POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="▶ " POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND='black' POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND='178' POWERLEVEL9K_NVM_BACKGROUND="238" POWERLEVEL9K_NVM_FOREGROUND="green" POWERLEVEL9K_CONTEXT_DEFAULT_FOREGROUND="blue" POWERLEVEL9K_DIR_WRITABLE_FORBIDDEN_FOREGROUND="015" POWERLEVEL9K_TIME_BACKGROUND='255' #POWERLEVEL9K_COMMAND_TIME_FOREGROUND='gray' POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND='245' POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND='black' #POWERLEVEL9K_TIME_FORMAT="%D{%H:%M}" #POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(root_indicator context dir dir_writable vcs) #POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status background_jobs command_execution_time time) POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon context dir dir_writable vcs) POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status background_jobs root_indicator command_execution_time) POWERLEVEL9K_SHOW_CHANGESET=true HYPHEN_INSENSITIVE="true" COMPLETION_WAITING_DOTS="true" plugins=(k tig gitfast colorize command-not-found cp dirhistory autojump sudo zsh-syntax-highlighting) source $ZSH/oh-my-zsh.sh ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern cursor) typeset -gA ZSH_HIGHLIGHT_STYLES ZSH_HIGHLIGHT_STYLES[cursor]='bold' ZSH_HIGHLIGHT_STYLES[alias]='fg=green,bold' ZSH_HIGHLIGHT_STYLES[suffix-alias]='fg=green,bold' ZSH_HIGHLIGHT_STYLES[builtin]='fg=green,bold' ZSH_HIGHLIGHT_STYLES[function]='fg=green,bold' ZSH_HIGHLIGHT_STYLES[command]='fg=green,bold' ZSH_HIGHLIGHT_STYLES[precommand]='fg=green,bold' ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=green,bold' rule () { print -Pn '%F{blue}' local columns=$(tput cols) for ((i=1; i<=columns; i++)); do printf "\u2588" done print -P '%f' } function _my_clear() { echo rule zle clear-screen } zle -N _my_clear bindkey '^l' _my_clear ranger-cd() { tempfile=$(mktemp) ranger --choosedir="$tempfile" "${@:-$(pwd)}" < $TTY test -f "$tempfile" && if [ "$(cat -- "$tempfile")" != "$(echo -n `pwd`)" ]; then cd -- "$(cat "$tempfile")" fi rm -f -- "$tempfile" # hacky way of transferring over previous command and updating the screen VISUAL=true zle edit-command-line } zle -N ranger-cd bindkey '^o' ranger-cd ANTIGEN="$HOME/.local/bin/antigen.zsh" # Install antigen.zsh if not exist if [ ! -f "$ANTIGEN" ]; then echo "Installing antigen ..." [ ! -d "$HOME/.local" ] && mkdir -p "$HOME/.local" 2> /dev/null [ ! -d "$HOME/.local/bin" ] && mkdir -p "$HOME/.local/bin" 2> /dev/null [ ! -f "$HOME/.z" ] && touch "$HOME/.z" URL="http://git.io/antigen" TMPFILE="/tmp/antigen.zsh" if [ -x "$(which curl)" ]; then curl -L "$URL" -o "$TMPFILE" elif [ -x "$(which wget)" ]; then wget "$URL" -O "$TMPFILE" else echo "ERROR: please install curl or wget before installation !!" exit fi if [ ! $? -eq 0 ]; then echo "" echo "ERROR: downloading antigen.zsh ($URL) failed !!" exit fi; echo "move $TMPFILE to $ANTIGEN" mv "$TMPFILE" "$ANTIGEN" fi export PS1="%n@%m:%~%# " export TERM="xterm-256color" _INIT_SH_NOFUN=1 [ -f "$HOME/.local/etc/init.sh" ] && source "$HOME/.local/etc/init.sh" [[ $- != *i* ]] && return [ -d "/mnt/c" ] && [[ "$(uname -a)" == *Microsoft* ]] && unsetopt BG_NICE source "$ANTIGEN" antigen use oh-my-zsh # default bundles # visit https://github.com/unixorn/awesome-zsh-plugins # antigen bundle git # antigen bundle heroku antigen bundle pip antigen bundle svn-fast-info # antigen bundle command-not-find antigen bundle colorize antigen bundle github antigen bundle python antigen bundle rupa/z z.sh # antigen bundle z antigen bundle zsh-users/zsh-autosuggestions antigen bundle zsh-users/zsh-completions # antigen bundle supercrabtree/k antigen bundle Vifon/deer antigen bundle willghatch/zsh-cdr # antigen bundle zsh-users/zaw # uncomment the line below to enable theme # antigen theme fishy # check login shell if [[ -o login ]]; then [ -f "$HOME/.local/etc/login.sh" ] && source "$HOME/.local/etc/login.sh" [ -f "$HOME/.local/etc/login.zsh" ] && source "$HOME/.local/etc/login.zsh" fi # syntax color definition ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern) typeset -A ZSH_HIGHLIGHT_STYLES # ZSH_HIGHLIGHT_STYLES[command]=fg=white,bold # ZSH_HIGHLIGHT_STYLES[alias]='fg=magenta,bold' ZSH_HIGHLIGHT_STYLES[default]=none ZSH_HIGHLIGHT_STYLES[unknown-token]=fg=009 ZSH_HIGHLIGHT_STYLES[reserved-word]=fg=009,standout ZSH_HIGHLIGHT_STYLES[alias]=fg=cyan,bold ZSH_HIGHLIGHT_STYLES[builtin]=fg=cyan,bold ZSH_HIGHLIGHT_STYLES[function]=fg=cyan,bold ZSH_HIGHLIGHT_STYLES[command]=fg=white,bold ZSH_HIGHLIGHT_STYLES[precommand]=fg=white,underline ZSH_HIGHLIGHT_STYLES[commandseparator]=none ZSH_HIGHLIGHT_STYLES[hashed-command]=fg=009 ZSH_HIGHLIGHT_STYLES[path]=fg=214,underline ZSH_HIGHLIGHT_STYLES[globbing]=fg=063 ZSH_HIGHLIGHT_STYLES[history-expansion]=fg=white,underline ZSH_HIGHLIGHT_STYLES[single-hyphen-option]=none ZSH_HIGHLIGHT_STYLES[double-hyphen-option]=none ZSH_HIGHLIGHT_STYLES[back-quoted-argument]=none ZSH_HIGHLIGHT_STYLES[single-quoted-argument]=fg=063 ZSH_HIGHLIGHT_STYLES[double-quoted-argument]=fg=063 ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]=fg=009 ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]=fg=009 ZSH_HIGHLIGHT_STYLES[assign]=none # load local config [ -f "$HOME/.local/etc/config.zsh" ] && source "$HOME/.local/etc/config.zsh" [ -f "$HOME/.local/etc/local.zsh" ] && source "$HOME/.local/etc/local.zsh" # enable syntax highlighting antigen bundle zsh-users/zsh-syntax-highlighting antigen apply # setup for deer autoload -U deer zle -N deer # default keymap bindkey -s '\ee' 'vim\n' bindkey '\eh' backward-char bindkey '\el' forward-char bindkey '\ej' down-line-or-history bindkey '\ek' up-line-or-history # bindkey '\eu' undo bindkey '\eH' backward-word bindkey '\eL' forward-word bindkey '\eJ' beginning-of-line bindkey '\eK' end-of-line bindkey -s '\eo' 'cd ..\n' bindkey -s '\e;' 'll\n' bindkey '\e[1;3D' backward-word bindkey '\e[1;3C' forward-word bindkey '\e[1;3A' beginning-of-line bindkey '\e[1;3B' end-of-line bindkey '\ev' deer alias ll='ls -l' # options unsetopt correct_all setopt BANG_HIST # Treat the '!' character specially during expansion. setopt INC_APPEND_HISTORY # Write to the history file immediately, not when the shell exits. setopt SHARE_HISTORY # Share history between all sessions. setopt HIST_EXPIRE_DUPS_FIRST # Expire duplicate entries first when trimming history. setopt HIST_IGNORE_DUPS # Don't record an entry that was just recorded again. setopt HIST_IGNORE_ALL_DUPS # Delete old recorded entry if new entry is a duplicate. setopt HIST_FIND_NO_DUPS # Do not display a line previously found. setopt HIST_IGNORE_SPACE # Don't record an entry starting with a space. setopt HIST_SAVE_NO_DUPS # Don't write duplicate entries in the history file. setopt HIST_REDUCE_BLANKS # Remove superfluous blanks before recording entry. setopt HIST_VERIFY # Don't execute immediately upon history expansion. # source function.sh if it exists [ -f "$HOME/.local/etc/function.sh" ] && . "$HOME/.local/etc/function.sh" # ignore complition zstyle ':completion:*:complete:-command-:*:*' ignored-patterns '*.pdf|*.exe|*.dll' zstyle ':completion:*:*sh:*:' tag-order files
For WSL
export TERM="xterm-256color" export ZSH=/home/iriszero/.oh-my-zsh ZSH_THEME="powerlevel9k/powerlevel9k" POWERLEVEL9K_MODE="awesome-fontconfig" POWERLEVEL9K_HOME_ICON='' POWERLEVEL9K_HOME_SUB_ICON='' POWERLEVEL9K_FOLDER_ICON='' POWERLEVEL9K_ETC_ICON='' VCS_GIT_GITHUB_ICON='' VCS_GIT_BITBUCKET_ICON='' VCS_GIT_GITLAB_ICON='' VCS_GIT_ICON='' #POWERLEVEL9K_HOME_SUB_ICON="$(print_icon "HOME_ICON")" #POWERLEVEL9K_DIR_PATH_SEPARATOR=" $(print_icon "LEFT_SUBSEGMENT_SEPARATOR") " POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=0 #POWERLEVEL9K_DIR_OMIT_FIRST_CHARACTER=true #POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND='black' #POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND='178' #POWERLEVEL9K_NVM_BACKGROUND="238" #POWERLEVEL9K_NVM_FOREGROUND="green" #POWERLEVEL9K_CONTEXT_DEFAULT_FOREGROUND="blue" #POWERLEVEL9K_DIR_WRITABLE_FORBIDDEN_FOREGROUND="015" #POWERLEVEL9K_TIME_BACKGROUND='255' #POWERLEVEL9K_COMMAND_TIME_FOREGROUND='gray' #POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND='245' #POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND='black' #POWERLEVEL9K_TIME_FORMAT="%D{%H:%M}" POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir vcs) POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status command_execution_time) #POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(context dir vcs) #POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status dir_writable background_jobs history command_execution_time load ram time) POWERLEVEL9K_SHOW_CHANGESET=true HYPHEN_INSENSITIVE="true" COMPLETION_WAITING_DOTS="true" # /!\ do not use with zsh-autosuggestions #plugins=(k tig gitfast colored-man colorize command-not-found cp dirhistory autojump sudo zsh-syntax-highlighting) # /!\ zsh-syntax-highlighting and then zsh-autosuggestions must be at the end source $ZSH/oh-my-zsh.sh #ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern cursor) #typeset -gA ZSH_HIGHLIGHT_STYLES #ZSH_HIGHLIGHT_STYLES[cursor]='bold' #ZSH_HIGHLIGHT_STYLES[alias]='fg=green,bold' #ZSH_HIGHLIGHT_STYLES[suffix-alias]='fg=green,bold' #ZSH_HIGHLIGHT_STYLES[builtin]='fg=green,bold' #ZSH_HIGHLIGHT_STYLES[function]='fg=green,bold' #ZSH_HIGHLIGHT_STYLES[command]='fg=green,bold' #ZSH_HIGHLIGHT_STYLES[precommand]='fg=green,bold' #ZSH_HIGHLIGHT_STYLES[hashed-command]='fg=green,bold' rule () { print -Pn '%F{blue}' local columns=$(tput cols) for ((i=1; i<=columns; i++)); do printf "\u2588" done print -P '%f' } function _my_clear() { echo rule zle clear-screen } zle -N _my_clear bindkey '^l' _my_clear # Ctrl-O opens zsh at the current location, and on exit, cd into ranger's last location. ranger-cd() { tempfile=$(mktemp) ranger --choosedir="$tempfile" "${@:-$(pwd)}" < $TTY test -f "$tempfile" && if [ "$(cat -- "$tempfile")" != "$(echo -n `pwd`)" ]; then cd -- "$(cat "$tempfile")" fi rm -f -- "$tempfile" # hacky way of transferring over previous command and updating the screen VISUAL=true zle edit-command-line } zle -N ranger-cd bindkey '^o' ranger-cd ANTIGEN="$HOME/.local/bin/antigen.zsh" # Install antigen.zsh if not exist if [ ! -f "$ANTIGEN" ]; then echo "Installing antigen ..." [ ! -d "$HOME/.local" ] && mkdir -p "$HOME/.local" 2> /dev/null [ ! -d "$HOME/.local/bin" ] && mkdir -p "$HOME/.local/bin" 2> /dev/null [ ! -f "$HOME/.z" ] && touch "$HOME/.z" URL="http://git.io/antigen" TMPFILE="/tmp/antigen.zsh" if [ -x "$(which curl)" ]; then curl -L "$URL" -o "$TMPFILE" elif [ -x "$(which wget)" ]; then wget "$URL" -O "$TMPFILE" else echo "ERROR: please install curl or wget before installation !!" exit fi if [ ! $? -eq 0 ]; then echo "" echo "ERROR: downloading antigen.zsh ($URL) failed !!" exit fi; echo "move $TMPFILE to $ANTIGEN" mv "$TMPFILE" "$ANTIGEN" fi # Initialize command prompt export PS1="%n@%m:%~%# " # Enable 256 color to make auto-suggestions look nice export TERM="xterm-256color" # Load local bash/zsh compatible settings _INIT_SH_NOFUN=1 [ -f "$HOME/.local/etc/init.sh" ] && source "$HOME/.local/etc/init.sh" # exit for non-interactive shell [[ $- != *i* ]] && return # WSL (aka Bash for Windows) doesn't work well with BG_NICE [ -d "/mnt/c" ] && [[ "$(uname -a)" == *Microsoft* ]] && unsetopt BG_NICE # Initialize antigen source "$ANTIGEN" # Initialize oh-my-zsh antigen use oh-my-zsh # default bundles # visit https://github.com/unixorn/awesome-zsh-plugins # antigen bundle git # antigen bundle heroku antigen bundle pip antigen bundle svn-fast-info # antigen bundle command-not-find antigen bundle colorize antigen bundle github antigen bundle python antigen bundle rupa/z z.sh # antigen bundle z antigen bundle zsh-users/zsh-autosuggestions antigen bundle zsh-users/zsh-completions # antigen bundle supercrabtree/k antigen bundle Vifon/deer antigen bundle willghatch/zsh-cdr # antigen bundle zsh-users/zaw # uncomment the line below to enable theme # antigen theme fishy # check login shell if [[ -o login ]]; then [ -f "$HOME/.local/etc/login.sh" ] && source "$HOME/.local/etc/login.sh" [ -f "$HOME/.local/etc/login.zsh" ] && source "$HOME/.local/etc/login.zsh" fi # syntax color definition ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern) typeset -A ZSH_HIGHLIGHT_STYLES # ZSH_HIGHLIGHT_STYLES[command]=fg=white,bold # ZSH_HIGHLIGHT_STYLES[alias]='fg=magenta,bold' ZSH_HIGHLIGHT_STYLES[default]=none ZSH_HIGHLIGHT_STYLES[unknown-token]=fg=009 ZSH_HIGHLIGHT_STYLES[reserved-word]=fg=009,standout ZSH_HIGHLIGHT_STYLES[alias]=fg=cyan,bold ZSH_HIGHLIGHT_STYLES[builtin]=fg=cyan,bold ZSH_HIGHLIGHT_STYLES[function]=fg=cyan,bold ZSH_HIGHLIGHT_STYLES[command]=fg=white,bold ZSH_HIGHLIGHT_STYLES[precommand]=fg=white,underline ZSH_HIGHLIGHT_STYLES[commandseparator]=none ZSH_HIGHLIGHT_STYLES[hashed-command]=fg=009 ZSH_HIGHLIGHT_STYLES[path]=fg=214,underline ZSH_HIGHLIGHT_STYLES[globbing]=fg=063 ZSH_HIGHLIGHT_STYLES[history-expansion]=fg=white,underline ZSH_HIGHLIGHT_STYLES[single-hyphen-option]=none ZSH_HIGHLIGHT_STYLES[double-hyphen-option]=none ZSH_HIGHLIGHT_STYLES[back-quoted-argument]=none ZSH_HIGHLIGHT_STYLES[single-quoted-argument]=fg=063 ZSH_HIGHLIGHT_STYLES[double-quoted-argument]=fg=063 ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]=fg=009 ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]=fg=009 ZSH_HIGHLIGHT_STYLES[assign]=none # load local config [ -f "$HOME/.local/etc/config.zsh" ] && source "$HOME/.local/etc/config.zsh" [ -f "$HOME/.local/etc/local.zsh" ] && source "$HOME/.local/etc/local.zsh" # enable syntax highlighting antigen bundle zsh-users/zsh-syntax-highlighting antigen apply # setup for deer autoload -U deer zle -N deer # default keymap bindkey -s '\ee' 'vim\n' bindkey '\eh' backward-char bindkey '\el' forward-char bindkey '\ej' down-line-or-history bindkey '\ek' up-line-or-history # bindkey '\eu' undo bindkey '\eH' backward-word bindkey '\eL' forward-word bindkey '\eJ' beginning-of-line bindkey '\eK' end-of-line bindkey -s '\eo' 'cd ..\n' bindkey -s '\e;' 'll\n' bindkey '\e[1;3D' backward-word bindkey '\e[1;3C' forward-word bindkey '\e[1;3A' beginning-of-line bindkey '\e[1;3B' end-of-line bindkey '\ev' deer alias ll='ls -l' # options unsetopt correct_all setopt BANG_HIST # Treat the '!' character specially during expansion. setopt INC_APPEND_HISTORY # Write to the history file immediately, not when the shell exits. setopt SHARE_HISTORY # Share history between all sessions. setopt HIST_EXPIRE_DUPS_FIRST # Expire duplicate entries first when trimming history. setopt HIST_IGNORE_DUPS # Don't record an entry that was just recorded again. setopt HIST_IGNORE_ALL_DUPS # Delete old recorded entry if new entry is a duplicate. setopt HIST_FIND_NO_DUPS # Do not display a line previously found. setopt HIST_IGNORE_SPACE # Don't record an entry starting with a space. setopt HIST_SAVE_NO_DUPS # Don't write duplicate entries in the history file. setopt HIST_REDUCE_BLANKS # Remove superfluous blanks before recording entry. setopt HIST_VERIFY # Don't execute immediately upon history expansion. # source function.sh if it exists [ -f "$HOME/.local/etc/function.sh" ] && . "$HOME/.local/etc/function.sh" # ignore complition zstyle ':completion:*:complete:-command-:*:*' ignored-patterns '*.pdf|*.exe|*.dll' zstyle ':completion:*:*sh:*:' tag-order files #alias cmdtool='/mnt/l/wsl-terminal/cmdtool' alias z='cd /mnt/z' alias wsl='cd /mnt/l/wsl-terminal' alias desktop='cd /mnt/c/Users/tang9/Desktop'