darkrc/zshrc

112 lines
2.5 KiB
Bash
Raw Permalink Normal View History

2021-02-18 09:43:11 +00:00
export HISTFILE=$HOME/.zsh_history
2021-02-26 07:23:22 +00:00
export SAVEHIST=10000
2021-02-18 09:43:11 +00:00
export HISTFILESIZE=10000
2021-03-02 10:19:58 +00:00
export HISTSIZE=10000
2021-02-18 14:05:37 +00:00
2022-06-04 08:10:12 +00:00
alias scratch="scratch $SHELL"
2021-08-23 16:30:52 +00:00
alias hgrep='history 0 | grep '
2021-02-26 07:23:22 +00:00
setopt append_history
setopt hist_find_no_dups
# setopt hist_ignore_dups
2021-02-18 09:43:11 +00:00
setopt inc_append_history
setopt extended_history
setopt hist_find_no_dups
# setopt hist_ignore_all_dups
setopt prompt_subst
2021-02-18 09:43:11 +00:00
setopt hist_ignore_space
2024-06-24 14:19:29 +00:00
autoload -z edit-command-line
zle -N edit-command-line
bindkey -M vicmd '\' edit-command-line
2024-02-06 16:38:47 +00:00
autoload -U compinit; compinit
2021-03-02 10:19:58 +00:00
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
2023-09-25 11:53:19 +00:00
echo "%F{black}$tasks\n%{%}"
fi
fi
}
2023-09-26 07:30:38 +00:00
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
2023-09-26 07:30:38 +00:00
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
2023-09-26 07:30:38 +00:00
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
2023-09-26 07:30:38 +00:00
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
2023-09-26 07:30:38 +00:00
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" ]
2023-09-25 11:53:19 +00:00
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 '
2023-09-26 07:30:38 +00:00
export PROMPT_full='$(due_soon_prompt)%B%F{magenta}%n%F{blue}@%F{magenta}%m%b %F{magenta}%~
'"$prompt"
2023-09-26 07:30:38 +00:00
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=
2021-02-19 07:27:47 +00:00
export HISTORY_IGNORE='(ls|vimswitch|clear)'
2021-02-18 09:43:11 +00:00
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
2023-08-07 11:31:58 +00:00
source smartprompt
chpwd() {
2022-06-04 08:10:12 +00:00
source smartprompt
}
export SCAFFOLD_DIR="$(dirname $0)"