[ADDED] base config and theme for zsh
This commit is contained in:
39
zsh/.zshrc
39
zsh/.zshrc
@@ -6,17 +6,7 @@
|
|||||||
# Path to your Oh My Zsh installation.
|
# Path to your Oh My Zsh installation.
|
||||||
export ZSH="$HOME/.oh-my-zsh"
|
export ZSH="$HOME/.oh-my-zsh"
|
||||||
|
|
||||||
# Set name of the theme to load --- if set to "random", it will
|
ZSH_THEME="my_theme"
|
||||||
# load a random theme each time Oh My Zsh is loaded, in which case,
|
|
||||||
# to know which specific one was loaded, run: echo $RANDOM_THEME
|
|
||||||
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
|
|
||||||
ZSH_THEME="agnoster"
|
|
||||||
|
|
||||||
# Set list of themes to pick from when loading at random
|
|
||||||
# Setting this variable when ZSH_THEME=random will cause zsh to load
|
|
||||||
# a theme from this variable instead of looking in $ZSH/themes/
|
|
||||||
# If set to an empty array, this variable will have no effect.
|
|
||||||
# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
|
|
||||||
|
|
||||||
# Uncomment the following line to use case-sensitive completion.
|
# Uncomment the following line to use case-sensitive completion.
|
||||||
# CASE_SENSITIVE="true"
|
# CASE_SENSITIVE="true"
|
||||||
@@ -25,10 +15,7 @@ ZSH_THEME="agnoster"
|
|||||||
# Case-sensitive completion must be off. _ and - will be interchangeable.
|
# Case-sensitive completion must be off. _ and - will be interchangeable.
|
||||||
# HYPHEN_INSENSITIVE="true"
|
# HYPHEN_INSENSITIVE="true"
|
||||||
|
|
||||||
# Uncomment one of the following lines to change the auto-update behavior
|
zstyle ':omz:update' mode reminder # just remind me to update when it's time
|
||||||
# zstyle ':omz:update' mode disabled # disable automatic updates
|
|
||||||
# zstyle ':omz:update' mode auto # update automatically without asking
|
|
||||||
# zstyle ':omz:update' mode reminder # just remind me to update when it's time
|
|
||||||
|
|
||||||
# Uncomment the following line to change how often to auto-update (in days).
|
# Uncomment the following line to change how often to auto-update (in days).
|
||||||
# zstyle ':omz:update' frequency 13
|
# zstyle ':omz:update' frequency 13
|
||||||
@@ -40,7 +27,7 @@ ZSH_THEME="agnoster"
|
|||||||
# DISABLE_LS_COLORS="true"
|
# DISABLE_LS_COLORS="true"
|
||||||
|
|
||||||
# Uncomment the following line to disable auto-setting terminal title.
|
# Uncomment the following line to disable auto-setting terminal title.
|
||||||
# DISABLE_AUTO_TITLE="true"
|
DISABLE_AUTO_TITLE="true"
|
||||||
|
|
||||||
# Uncomment the following line to enable command auto-correction.
|
# Uncomment the following line to enable command auto-correction.
|
||||||
# ENABLE_CORRECTION="true"
|
# ENABLE_CORRECTION="true"
|
||||||
@@ -65,15 +52,17 @@ ZSH_THEME="agnoster"
|
|||||||
# HIST_STAMPS="mm/dd/yyyy"
|
# HIST_STAMPS="mm/dd/yyyy"
|
||||||
|
|
||||||
# Would you like to use another custom folder than $ZSH/custom?
|
# Would you like to use another custom folder than $ZSH/custom?
|
||||||
# ZSH_CUSTOM=/path/to/new-custom-folder
|
ZSH_CUSTOM=/home/daveanand/.config/nvim/zsh/custom
|
||||||
|
|
||||||
# Which plugins would you like to load?
|
# Which plugins would you like to load?
|
||||||
# Standard plugins can be found in $ZSH/plugins/
|
# Standard plugins can be found in $ZSH/plugins/
|
||||||
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
|
# Custom plugins may be added to $ZSH_CUSTOM/plugins/
|
||||||
# Example format: plugins=(rails git textmate ruby lighthouse)
|
# Example format: plugins=(rails git textmate ruby lighthouse)
|
||||||
# Add wisely, as too many plugins slow down shell startup.
|
# Add wisely, as too many plugins slow down shell startup.
|
||||||
plugins=(git)
|
plugins=(
|
||||||
|
zsh-syntax-highlighting
|
||||||
|
zsh-autosuggestions
|
||||||
|
)
|
||||||
source $ZSH/oh-my-zsh.sh
|
source $ZSH/oh-my-zsh.sh
|
||||||
|
|
||||||
# User configuration
|
# User configuration
|
||||||
@@ -93,14 +82,4 @@ fi
|
|||||||
# Compilation flags
|
# Compilation flags
|
||||||
# export ARCHFLAGS="-arch $(uname -m)"
|
# export ARCHFLAGS="-arch $(uname -m)"
|
||||||
|
|
||||||
# Set personal aliases, overriding those provided by Oh My Zsh libs,
|
export PATH="$PATH:/usr/bin"
|
||||||
# plugins, and themes. Aliases can be placed here, though Oh My Zsh
|
|
||||||
# users are encouraged to define aliases within a top-level file in
|
|
||||||
# the $ZSH_CUSTOM folder, with .zsh extension. Examples:
|
|
||||||
# - $ZSH_CUSTOM/aliases.zsh
|
|
||||||
# - $ZSH_CUSTOM/macos.zsh
|
|
||||||
# For a full list of active aliases, run `alias`.
|
|
||||||
#
|
|
||||||
# Example aliases
|
|
||||||
# alias zshconfig="mate ~/.zshrc"
|
|
||||||
# alias ohmyzsh="mate ~/.oh-my-zsh"
|
|
||||||
|
|||||||
7
zsh/custom/aliases.zsh
Normal file
7
zsh/custom/aliases.zsh
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
alias l='-l'
|
||||||
|
alias ls='lsd'
|
||||||
|
alias la='ls -a'
|
||||||
|
alias lla='ls -la'
|
||||||
|
|
||||||
|
|
||||||
|
alias fd='fdfind'
|
||||||
2
zsh/custom/plugins/.gitignore
vendored
Normal file
2
zsh/custom/plugins/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
*
|
||||||
|
!.gitignore
|
||||||
154
zsh/custom/themes/my_theme.zsh-theme
Normal file
154
zsh/custom/themes/my_theme.zsh-theme
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
### Segments of the prompt, default order declaration
|
||||||
|
|
||||||
|
typeset -aHg AGNOSTER_PROMPT_SEGMENTS=(
|
||||||
|
prompt_status
|
||||||
|
prompt_context
|
||||||
|
prompt_virtualenv
|
||||||
|
prompt_dir
|
||||||
|
prompt_git
|
||||||
|
prompt_end
|
||||||
|
)
|
||||||
|
|
||||||
|
### Segment drawing
|
||||||
|
# A few utility functions to make it easy and re-usable to draw segmented prompts
|
||||||
|
WHITE="#c6c6c6",
|
||||||
|
GREY="#303030"
|
||||||
|
VIOLET="#d183e8"
|
||||||
|
BLACK='#080808'
|
||||||
|
CURRENT_BG='NONE'
|
||||||
|
if [[ -z "$PRIMARY_FG" ]]; then
|
||||||
|
PRIMARY_FG=$VIOLET
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Characters
|
||||||
|
SEGMENT_SEPARATOR=""
|
||||||
|
PLUSMINUS="\u00b1"
|
||||||
|
BRANCH="\ue0a0"
|
||||||
|
DETACHED="\u27a6"
|
||||||
|
CROSS="\u2718"
|
||||||
|
LIGHTNING="\u26a1"
|
||||||
|
GEAR="\u2699"
|
||||||
|
|
||||||
|
# Begin a segment
|
||||||
|
# Takes two arguments, background and foreground. Both can be omitted,
|
||||||
|
# rendering default background/foreground.
|
||||||
|
prompt_segment() {
|
||||||
|
local bg fg
|
||||||
|
[[ -n $1 ]] && bg="%K{$1}" || bg="%k"
|
||||||
|
[[ -n $2 ]] && fg="%F{$2}" || fg="%f"
|
||||||
|
if [[ $CURRENT_BG != 'NONE' && $1 != $CURRENT_BG ]]; then
|
||||||
|
print -n "%{$bg%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR%{$fg%}"
|
||||||
|
else
|
||||||
|
print -n "%{$bg%}%{$fg%}"
|
||||||
|
fi
|
||||||
|
CURRENT_BG=$1
|
||||||
|
[[ -n $3 ]] && print -n $3
|
||||||
|
}
|
||||||
|
|
||||||
|
# End the prompt, closing any open segments
|
||||||
|
prompt_end() {
|
||||||
|
if [[ -n $CURRENT_BG ]]; then
|
||||||
|
print -n "%{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR"
|
||||||
|
else
|
||||||
|
print -n "%{%k%}"
|
||||||
|
fi
|
||||||
|
print -n "%{%f%}"
|
||||||
|
CURRENT_BG=''
|
||||||
|
}
|
||||||
|
|
||||||
|
### Prompt components
|
||||||
|
# Each component will draw itself, and hide itself if no information needs to be shown
|
||||||
|
|
||||||
|
# Context: user@hostname (who am I and where am I)
|
||||||
|
prompt_context() {
|
||||||
|
local user=`whoami`
|
||||||
|
|
||||||
|
if [[ "$user" != "$DEFAULT_USER" || -n "$SSH_CONNECTION" ]]; then
|
||||||
|
prompt_segment $PRIMARY_FG $PRIMARY_FG " "
|
||||||
|
prompt_segment $PRIMARY_FG green "%(!.%{%F{yellow}%}.)$user@%m "
|
||||||
|
fi
|
||||||
|
PROMPT='%{%f%b%k%}$(prompt_agnoster_main) '
|
||||||
|
}
|
||||||
|
|
||||||
|
# Git: branch/detached head, dirty status
|
||||||
|
prompt_git() {
|
||||||
|
local color ref
|
||||||
|
is_dirty() {
|
||||||
|
test -n "$(git status --porcelain --ignore-submodules)"
|
||||||
|
}
|
||||||
|
ref="$vcs_info_msg_0_"
|
||||||
|
if [[ -n "$ref" ]]; then
|
||||||
|
if is_dirty; then
|
||||||
|
color=yellow
|
||||||
|
ref="${ref} $PLUSMINUS "
|
||||||
|
else
|
||||||
|
color=green
|
||||||
|
ref="${ref} "
|
||||||
|
fi
|
||||||
|
if [[ "${ref/.../}" == "$ref" ]]; then
|
||||||
|
ref="$BRANCH $ref"
|
||||||
|
else
|
||||||
|
ref="$DETACHED ${ref/.../}"
|
||||||
|
fi
|
||||||
|
prompt_segment $color $PRIMARY_FG
|
||||||
|
print -n " $ref"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Dir: current working directory
|
||||||
|
prompt_dir() {
|
||||||
|
prompt_segment $BLACK $WHITE ' %~ '
|
||||||
|
}
|
||||||
|
|
||||||
|
# Status:
|
||||||
|
# - was there an error
|
||||||
|
# - am I root
|
||||||
|
# - are there background jobs?
|
||||||
|
prompt_status() {
|
||||||
|
local symbols
|
||||||
|
symbols=()
|
||||||
|
[[ $RETVAL -ne 0 ]] && symbols+="%{%F{red}%}$CROSS"
|
||||||
|
[[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}$LIGHTNING"
|
||||||
|
[[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="%{%F{cyan}%}$GEAR"
|
||||||
|
|
||||||
|
[[ -n "$symbols" ]] && prompt_segment $PRIMARY_FG default " $symbols "
|
||||||
|
}
|
||||||
|
|
||||||
|
# Display current virtual environment
|
||||||
|
prompt_virtualenv() {
|
||||||
|
if [[ -n $VIRTUAL_ENV ]]; then
|
||||||
|
color=cyan
|
||||||
|
prompt_segment $color $PRIMARY_FG
|
||||||
|
print -Pn " $(basename $VIRTUAL_ENV) "
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
## Main prompt
|
||||||
|
prompt_agnoster_main() {
|
||||||
|
RETVAL=$?
|
||||||
|
CURRENT_BG='NONE'
|
||||||
|
for prompt_segment in "${AGNOSTER_PROMPT_SEGMENTS[@]}"; do
|
||||||
|
[[ -n $prompt_segment ]] && $prompt_segment
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_agnoster_precmd() {
|
||||||
|
vcs_info
|
||||||
|
PROMPT='%{%f%b%k%}$(prompt_agnoster_main) '
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_agnoster_setup() {
|
||||||
|
autoload -Uz add-zsh-hook
|
||||||
|
autoload -Uz vcs_info
|
||||||
|
|
||||||
|
prompt_opts=(cr subst percent)
|
||||||
|
|
||||||
|
add-zsh-hook precmd prompt_agnoster_precmd
|
||||||
|
|
||||||
|
zstyle ':vcs_info:*' enable git
|
||||||
|
zstyle ':vcs_info:*' check-for-changes false
|
||||||
|
zstyle ':vcs_info:git*' formats '%b'
|
||||||
|
zstyle ':vcs_info:git*' actionformats '%b (%a)'
|
||||||
|
}
|
||||||
|
|
||||||
|
prompt_agnoster_setup "$@"
|
||||||
Reference in New Issue
Block a user