116 lines
4.0 KiB
Bash
116 lines
4.0 KiB
Bash
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
|
|
# Initialization code that may require console input (password prompts, [y/n]
|
|
# confirmations, etc.) must go above this block; everything else may go below.
|
|
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
|
|
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
|
|
fi
|
|
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
|
|
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
|
|
source ~/.bash_profile
|
|
plugins=(git google3 gcert zsh-autosuggestions)
|
|
|
|
ZSH_THEME=powerlevel10k/powerlevel10k
|
|
DISABLE_AUTO_TITLE=true
|
|
|
|
bindkey "^A" vi-beginning-of-line
|
|
bindkey "^E" vi-end-of-line
|
|
|
|
function get_fig_prompt_template() {
|
|
echo -n '%F{yellow}FIG_PROMPT_MODIFIED %F{green}FIG_PROMPT_ADDED'
|
|
echo -n ' %F{red}FIG_PROMPT_DELETED %F{magenta}FIG_PROMPT_UNKNOWN'
|
|
echo -n ' %F{magenta}FIG_PROMPT_HAS_SHELVE %F{white}FIG_PROMPT_DESCRIPTION '
|
|
echo -n ' %F{blue}FIG_PROMPT_UNEXPORTED %F{red}FIG_PROMPT_OBSOLETE'
|
|
echo -n ' %F{white}FIG_PROMPT_CL'
|
|
}
|
|
|
|
prompt_google3() {
|
|
if [[ $PWD =~ '/google/src/cloud/[^/]+/(.+)/google3(.*)' ]]; then
|
|
GPROMPT=$(print -r -- "%F{white}//${match[2]#/}")
|
|
else
|
|
GPROMPT=$(print -r -- "%F{white}$PWD")
|
|
fi
|
|
p10k segment -b blue -t $GPROMPT
|
|
}
|
|
|
|
prompt_workspace() {
|
|
if [[ $PWD =~ '/google/src/cloud/[^/]+/(.+)/google3(.*)' ]]; then
|
|
# Use CitC client names as window titles in screen/tmux
|
|
print -n "\e]2;${match[1]}\a" >/dev/tty
|
|
|
|
GPROMPT=$(print -r -- "$match[1]")
|
|
p10k segment -b magenta -f white -t $GPROMPT
|
|
fi
|
|
}
|
|
|
|
POWERLEVEL9K_CUSTOM_FIG='get_fig_prompt'
|
|
POWERLEVEL9K_CUSTOM_FIG_BACKGROUND="237"
|
|
|
|
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(status workspace google3 dir_writable vcs custom_fig)
|
|
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(ssh command_execution_time)
|
|
|
|
POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=1
|
|
|
|
# typeset POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR='%F{232}\uE0BD'
|
|
typeset POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='▓▒░'
|
|
typeset POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='░▒▓'
|
|
|
|
export ZSH="$HOME/.oh-my-zsh"
|
|
|
|
source $ZSH/oh-my-zsh.sh
|
|
|
|
# color customization
|
|
|
|
POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND='216'
|
|
POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND='black'
|
|
|
|
POWERLEVEL9K_DIR_DEFAULT_BACKGROUND='grey'
|
|
POWERLEVEL9K_DIR_DEFAULT_FOREGROUND='skyblue'
|
|
POWERLEVEL9K_DIR_ETC_BACKGROUND='grey'
|
|
POWERLEVEL9K_DIR_ETC_FOREGROUND='skyblue'
|
|
POWERLEVEL9K_DIR_HOME_SUBFOLDER_BACKGROUND='grey'
|
|
POWERLEVEL9K_DIR_HOME_SUBFOLDER_FOREGROUND='grey89'
|
|
|
|
POWERLEVEL9K_VCS_CLEAN_BACKGROUND='blue'
|
|
POWERLEVEL9K_VCS_CLEAN_FOREGROUND='white'
|
|
POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND='yellow'
|
|
POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND='black'
|
|
POWERLEVEL9K_VCS_MODIFIED_BACKGROUND='yellow'
|
|
POWERLEVEL9K_VCS_MODIFIED_FOREGROUND='black'
|
|
|
|
POWERLEVEL9K_STATUS_ERROR_BACKGROUND='red'
|
|
POWERLEVEL9K_STATUS_ERROR_FOREGROUND='white'
|
|
|
|
POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
|
|
POWERLEVEL9K_SHORTEN_DELIMITER=""
|
|
POWERLEVEL9K_SHORTEN_STRATEGY="truncate_to_unique"
|
|
#
|
|
### Fix slowness of pastes with zsh-syntax-highlighting.zsh
|
|
pasteinit() {
|
|
OLD_SELF_INSERT=${${(s.:.)widgets[self-insert]}[2,3]}
|
|
zle -N self-insert url-quote-magic # I wonder if you'd need `.url-quote-magic`?
|
|
}
|
|
|
|
pastefinish() {
|
|
zle -N self-insert $OLD_SELF_INSERT
|
|
}
|
|
zstyle :bracketed-paste-magic paste-init pasteinit
|
|
zstyle :bracketed-paste-magic paste-finish pastefinish
|
|
### Fix slowness of pastes
|
|
|
|
source ~/.aliases.sh
|
|
|
|
export NVM_DIR="$HOME/.nvm"
|
|
[ -s "/usr/local/opt/nvm/nvm.sh" ] && . "/usr/local/opt/nvm/nvm.sh" # This loads nvm
|
|
[ -s "/usr/local/opt/nvm/etc/bash_completion.d/nvm" ] && . "/usr/local/opt/nvm/etc/bash_completion.d/nvm" # This loads nvm bash_completion
|
|
export PATH="/usr/local/opt/curl/bin:$PATH"
|
|
|
|
# "transport endpoint is not connected" errors
|
|
autoload -Uz add-zsh-hook
|
|
|
|
source /etc/bash_completion.d/g4d
|
|
source ~/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
|
source ~/zsh-async/async.zsh
|
|
|
|
export FZF_DEFAULT_OPTS="--preview 'echo {}' --preview-window down:3:wrap --bind ?:toggle-preview"
|
|
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
|