darkrc/zshrc

112 lines
2.5 KiB
Bash

export HISTFILE=$HOME/.zsh_history
export SAVEHIST=10000
export HISTFILESIZE=10000
export HISTSIZE=10000
alias scratch="scratch $SHELL"
alias hgrep='history 0 | grep '
setopt append_history
setopt hist_find_no_dups
# setopt hist_ignore_dups
setopt inc_append_history
setopt extended_history
setopt hist_find_no_dups
# setopt hist_ignore_all_dups
setopt prompt_subst
setopt hist_ignore_space
autoload -z edit-command-line
zle -N edit-command-line
bindkey -M vicmd '\' edit-command-line
autoload -U compinit; compinit
bindkey -v
which task > /dev/null && which jq > /dev/null
run_task_prompt=$?
task_prompt() {
if [ $run_task_prompt -eq 0 ]
then
tasks="$(task rc.verbose: +ACTIVE export | jq -r '.[].description' | sed 's/^/‣ /')"
if [ -n "$tasks" ]
then
echo "%F{black}$tasks\n%{%}"
fi
fi
}
due_soon_prompt() {
if [ $run_task_prompt -eq 0 ]
then
if [ "$(task rc.verbose: +PENDING due.before:30min count)" -gt 0 ]; then
echo "%F{red}%B$(task rc.verbose: +PENDING +DUE count)%b "; return
fi
if [ "$(task rc.verbose: +PENDING due.before:1h count)" -gt 0 ]; then
echo "%F{yellow}%B$(task rc.verbose: +PENDING +DUE count)%b "; return
fi
if [ "$(task rc.verbose: +PENDING due.before:3h count)" -gt 0 ]; then
echo "%F{green}%B$(task rc.verbose: +PENDING +DUE count)%b "; return
fi
if [ "$(task rc.verbose: +PENDING due.before:tomorrow count)" -gt 0 ]; then
echo "%F{black}%B$(task rc.verbose: +PENDING +DUE count)%b "; return
fi
fi
}
which timew > /dev/null
run_timew_prompt=$?
timew_prompt() {
if [ $run_timew_prompt -eq 0 ]
then
if [ $(timew get dom.active) -eq "1" ]
then echo '%F{red}● '
fi
fi
}
ranger_prompt() {
if [ -n "$RANGER_LEVEL" ]
then
for num in $(seq "$RANGER_LEVEL")
do echo -n »
done
fi
}
prompt='$(task_prompt)%(?.%F{green}.%F{red})λ%F{blue}$(ranger_prompt)%f '
export PROMPT_full='$(due_soon_prompt)%B%F{magenta}%n%F{blue}@%F{magenta}%m%b %F{magenta}%~
'"$prompt"
export PROMPT_gitlong='$(due_soon_prompt)$(gitprompt && echo -ne " ")%F$(git log --oneline --no-decorate -1 2>/dev/null)
%F{cyan}$(gitpath)'"$prompt"
# export PS1tiny=
# export PS1nano=
# export PS1nogit=
# export PS1git=
export HISTORY_IGNORE='(ls|vimswitch|clear)'
zshaddhistory() {
[[ $1 != ${~HISTORY_IGNORE} ]]
}
export PROMPT=$PROMPT_full
prompt() {
case $1 in
(full)
export PROMPT=$PROMPT_full;;
(gitlong)
export PROMPT=$PROMPT_gitlong;;
(*)
export PROMPT=$PROMPT_full;;
esac
export PROMPT_set=$1
}
prompt $PROMPT_set
source smartprompt
chpwd() {
source smartprompt
}
export SCAFFOLD_DIR="$(dirname $0)"