199 lines
5.8 KiB
Bash
199 lines
5.8 KiB
Bash
# ██
|
|
# ██
|
|
# ██████ ██████░██
|
|
# ░░░░██ ██░░░░ ░██████░
|
|
# ██ ░░█████ ░██░░░██░
|
|
# ██ ░░░░░██░██ ░██░
|
|
# ██████ ██████ ░██ ░██░
|
|
# ░░░░░░ ░░░░░░ ░░░ ░░░
|
|
|
|
#------------------------------
|
|
# TTY colors
|
|
#------------------------------
|
|
if [ "$TERM" = "linux" ]; then
|
|
_SEDCMD='s/.*\*color\([0-9]\{1,\}\).*#\([0-9a-fA-F]\{6\}\).*/\1 \2/p'
|
|
for i in $(sed -n "$_SEDCMD" $HOME/.Xresources | awk '$1 < 16 {printf "\\e]P%X%s", $1, $2}'); do
|
|
echo -en "$i"
|
|
done
|
|
clear
|
|
fi
|
|
#------------------------------
|
|
# Source config files
|
|
#------------------------------
|
|
if [ -r $HOME/.zaliases ] ; then
|
|
source $HOME/.zaliases
|
|
fi
|
|
|
|
#if [ -r $HOME/.zshenv ] ; then
|
|
# source $HOME/.zshenv
|
|
#fi
|
|
|
|
ZSH_THEME="powerlevel10k/powerlevel10k"
|
|
#ZSH_THEME="agnoster"
|
|
|
|
# Auto completion
|
|
autoload -Uz compinit
|
|
typeset -i updated_at=$(date +'%j' -r ~/.zcompdump 2>/dev/null || stat -f '%Sm' -t '%j' ~/.zcompdump 2>/dev/null)
|
|
if [ $(date +'%j') != $updated_at ]; then
|
|
compinit -i
|
|
else
|
|
compinit -C -i
|
|
fi
|
|
|
|
# Load complist module
|
|
zmodload -i zsh/complist
|
|
|
|
# Save history
|
|
HISTFILE=$HOME/.zsh_history
|
|
HISTSIZE=100000
|
|
SAVEHIST=$HISTSIZE
|
|
|
|
# No duplicates in history
|
|
setopt hist_ignore_all_dups # remove older duplicate entries from history
|
|
setopt hist_reduce_blanks # remove superfluous blanks from history items
|
|
setopt inc_append_history # save history entries as soon as they are entered
|
|
setopt share_history # share history between different instances of the shell
|
|
|
|
# Auto correction
|
|
setopt correct_all # autocorrect commands
|
|
setopt auto_list # automatically list choices on ambiguous completion
|
|
setopt auto_menu # automatically use menu completion
|
|
setopt always_to_end # move cursor to end if word had one match
|
|
|
|
#oh-my-zsh plugins
|
|
plugins=(
|
|
zsh-autosuggestions
|
|
zsh-syntax-highlighting
|
|
history-substring-search
|
|
archlinux
|
|
sudo
|
|
tmux
|
|
yadm
|
|
fasd
|
|
fzf
|
|
)
|
|
|
|
source $ZSH/oh-my-zsh.sh
|
|
|
|
# My scripts
|
|
PATH=/home/hate/go/bin:/usr/local/bin:/home/hate/.local/bin:/home/hate/.config/Scripts:$PATH
|
|
|
|
|
|
# Init pmy
|
|
eval "$(pmy init)"
|
|
|
|
# Wpg restore on terminals
|
|
(cat ~/.config/wpg/sequences &)
|
|
|
|
# Import colorscheme from 'wal' asynchronously
|
|
# & # Run the process in the background.
|
|
# ( ) # Hide shell job control messages.
|
|
#(cat ~/.cache/wal/sequences &)
|
|
|
|
# Alternative (blocks terminal for 0-3ms)
|
|
#cat ~/.cache/wal/sequences
|
|
|
|
# To add support for TTYs this line can be optionally added.
|
|
#source ~/.cache/wal/colors-tty.sh
|
|
|
|
#FASD
|
|
eval "$(fasd --init auto)"
|
|
|
|
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
|
|
|
|
#LF
|
|
LFCD="/home/hate/.config/lf/lfcd.sh"
|
|
if [ -f "$LFCD" ]; then
|
|
source "$LFCD"
|
|
fi
|
|
|
|
bindkey -s '^o' 'lfcd\n'
|
|
|
|
# The next line updates PATH for the Google Cloud SDK.
|
|
if [ -f '/home/hate/google-cloud-sdk/path.zsh.inc' ]; then source '/home/hate/google-cloud-sdk/path.zsh.inc'; fi
|
|
|
|
# The next line enables shell command completion for gcloud.
|
|
if [ -f '/home/hate/google-cloud-sdk/completion.zsh.inc' ]; then source '/home/hate/google-cloud-sdk/completion.zsh.inc'; fi
|
|
|
|
# Powerlevel9k
|
|
POWERLEVEL9K_MODE=nerdfont-complete
|
|
|
|
# Prompt elements
|
|
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(custom_user dir vcs)
|
|
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(battery time)
|
|
|
|
# Prompt settings
|
|
POWERLEVEL9K_PROMPT_ON_NEWLINE=false
|
|
POWERLEVEL9K_RPROMPT_ON_NEWLINE=false
|
|
#POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX_ICON=$'%K{white}%k'
|
|
#POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX_ICON=$'%K{green}%F{black} \uf155 %f%F{green}%k\ue0b0%f '
|
|
|
|
# Separators
|
|
POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR_ICON=$'\ue0b0'
|
|
POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR_ICON=$'\ue0b1'
|
|
POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR_ICON=$'\ue0b2'
|
|
POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR_ICON=$'\ue0b7'
|
|
|
|
# Dir colours
|
|
#POWERLEVEL9K_DIR_HOME_BACKGROUND='black'
|
|
#POWERLEVEL9K_DIR_HOME_FOREGROUND='white'
|
|
#POWERLEVEL9K_DIR_HOME_SUBFOLDER_BACKGROUND='black'
|
|
#POWERLEVEL9K_DIR_HOME_SUBFOLDER_FOREGROUND='white'
|
|
#POWERLEVEL9K_DIR_DEFAULT_BACKGROUND='yellow'
|
|
#POWERLEVEL9K_DIR_DEFAULT_FOREGROUND='black'
|
|
POWERLEVEL9K_DIR_SHORTEN_LENGTH=2
|
|
POWERLEVEL9K_DIR_SHORTEN_STRATEGY="truncate_from_right"
|
|
|
|
# OS segment
|
|
POWERLEVEL9K_OS_ICON_BACKGROUND='black'
|
|
POWERLEVEL9K_LINUX_ICON='%F{cyan} \uf303 %F{white} arch %F{cyan}linux%f'
|
|
|
|
# VCS icons
|
|
POWERLEVEL9K_VCS_GIT_ICON=$'\uf1d2 '
|
|
POWERLEVEL9K_VCS_GIT_GITHUB_ICON=$'\uf113 '
|
|
POWERLEVEL9K_VCS_GIT_GITLAB_ICON=$'\uf296 '
|
|
POWERLEVEL9K_VCS_BRANCH_ICON=$'\uf322 '
|
|
POWERLEVEL9K_VCS_STAGED_ICON=$'\uf055'
|
|
POWERLEVEL9K_VCS_UNSTAGED_ICON=$'\uf421'
|
|
POWERLEVEL9K_VCS_UNTRACKED_ICON=$'\uf00d'
|
|
POWERLEVEL9K_VCS_INCOMING_CHANGES_ICON=$'\uf0ab '
|
|
POWERLEVEL9K_VCS_OUTGOING_CHANGES_ICON=$'\uf0aa '
|
|
|
|
# VCS colours
|
|
POWERLEVEL9K_VCS_MODIFIED_BACKGROUND='yellow'
|
|
POWERLEVEL9K_VCS_MODIFIED_FOREGROUND='black'
|
|
POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND='green'
|
|
POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND='black'
|
|
POWERLEVEL9K_VCS_CLEAN_BACKGROUND='green'
|
|
POWERLEVEL9K_VCS_CLEAN_FOREGROUND='black'
|
|
|
|
# VCS CONFIG
|
|
POWERLEVEL9K_VCS_SHOW_CHANGESET=true
|
|
|
|
# Status
|
|
POWERLEVEL9K_STATUS_OK_ICON=$'\uf164'
|
|
POWERLEVEL9K_STATUS_ERROR_ICON=$'\uf165'
|
|
POWERLEVEL9K_STATUS_ERROR_CR_ICON=$'\uf165'
|
|
|
|
# Battery
|
|
POWERLEVEL9K_BATTERY_LOW_FOREGROUND='black'
|
|
POWERLEVEL9K_BATTERY_LOW_BACKGROUND='red'
|
|
POWERLEVEL9K_BATTERY_CHARGING_FOREGROUND='black'
|
|
POWERLEVEL9K_BATTERY_CHARGING_BACKGROUND='blue'
|
|
POWERLEVEL9K_BATTERY_CHARGED_FOREGROUND='black'
|
|
POWERLEVEL9K_BATTERY_CHARGED_BACKGROUND='green'
|
|
POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND='blue'
|
|
POWERLEVEL9K_BATTERY_VERBOSE=true
|
|
POWERLEVEL9K_BATTERY_STAGES=''
|
|
POWERLEVEL9K_BATTERY_LOW_THRESHOLD=15
|
|
|
|
# Programming languages
|
|
POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=true
|
|
POWERLEVEL9K_GO_VERSION_PROMPT_ALWAYS_SHOW=true
|
|
|
|
# User with skull
|
|
user_with_skull() {
|
|
echo -n "\uf303 $(whoami)"
|
|
}
|
|
POWERLEVEL9K_CUSTOM_USER="user_with_skull"
|