ZSH: Change prompt again
Change the prompt and divide into extra files.
This commit is contained in:
parent
21eb3b9ec8
commit
63bbc2e2ea
9 changed files with 71 additions and 11 deletions
15
.zsh/functions/get_cnt
Normal file
15
.zsh/functions/get_cnt
Normal file
|
@ -0,0 +1,15 @@
|
|||
# -*- mode: shell-script -*-
|
||||
|
||||
if [ -n "$1" ]; then
|
||||
if [ -e "~/.local/share/$1.cnt" ]; then
|
||||
cnt=$(/bin/cat "~/.local/share/$1.cnt")
|
||||
fi
|
||||
|
||||
if [ -z "$cnt" ]; then
|
||||
cnt=0
|
||||
fi
|
||||
|
||||
echo $cnt
|
||||
else
|
||||
echo "No count name specified" >&2
|
||||
fi
|
11
.zsh/functions/precmd_update_updates
Normal file
11
.zsh/functions/precmd_update_updates
Normal file
|
@ -0,0 +1,11 @@
|
|||
# -*- mode: shell-script -*-
|
||||
|
||||
if [ -n "$__EXECUTED_PACMAN_COMMAND" ]; then
|
||||
update_pac_cnt
|
||||
unset __EXECUTED_PACMAN_COMMAND
|
||||
fi
|
||||
|
||||
if [ -n "$__EXECUTED_COWER_COMMAND" ]; then
|
||||
update_aur_cnt
|
||||
unset __EXECUTED_COWER_COMMAND
|
||||
fi
|
|
@ -1,6 +0,0 @@
|
|||
# -*- mode: shell-script -*-
|
||||
case "$1" in
|
||||
git*)
|
||||
__EXECUTED_GIT_COMMAND=1
|
||||
;;
|
||||
esac
|
12
.zsh/functions/preexec_update_vars
Normal file
12
.zsh/functions/preexec_update_vars
Normal file
|
@ -0,0 +1,12 @@
|
|||
# -*- mode: shell-script -*-
|
||||
case "$1" in
|
||||
git*)
|
||||
__EXECUTED_GIT_COMMAND=1
|
||||
;;
|
||||
cower)
|
||||
__EXECUTED_COWER_COMMAND=1
|
||||
;;
|
||||
pacman)
|
||||
__EXECUTED_PACMAN_COMMAND=1
|
||||
;;
|
||||
esac
|
16
.zsh/functions/prompt
Normal file
16
.zsh/functions/prompt
Normal file
|
@ -0,0 +1,16 @@
|
|||
# -*- mode: shell-script -*-
|
||||
|
||||
local pac_cnt=$(get_cnt updates)
|
||||
local aur_cnt=$(get_cnt aur)
|
||||
local hostname=$(hostname | cut -d . -f 1)
|
||||
|
||||
if [ $pac_cnt -gt 0 -o $aur_cnt -gt 0 ]; then
|
||||
printf "%s%d%s/%s%d%s:" \
|
||||
"%{${fg[cyan]}%}" $pac_cnt "%{${fg[default]}%}" \
|
||||
"%{${fg[cyan]}%}" $aur_cnt "%{${fg[default]}%}"
|
||||
fi
|
||||
|
||||
printf '%s%s%s:%s%s%s%s>%s ' \
|
||||
"%{${fg[magenta]}%}" $hostname "%{${fg[default]}%}" \
|
||||
"%{${fg[green]}%}" "%~" "%{${fg[default]}%}" \
|
||||
"%(?.%{${fg[green]}%}.%{${fg[red]}%})%B" "%b%{${fg[default]}%}"
|
4
.zsh/functions/rprompt
Normal file
4
.zsh/functions/rprompt
Normal file
|
@ -0,0 +1,4 @@
|
|||
# -*- mode: shell-script -*-
|
||||
|
||||
local git_info="$(prompt_git_info)"
|
||||
printf '%s%s' $git_info "%{${fg[default]}%}"
|
10
.zshrc
10
.zshrc
|
@ -1,6 +1,6 @@
|
|||
# -*- Mode: shell-script -*-
|
||||
# Setup variables
|
||||
PATH="${PATH}:/usr/local/bin:${HOME}/bin"
|
||||
PATH="${HOME}/bin:${PATH}:/usr/local/bin"
|
||||
|
||||
HISTFILE=~/.zsh/histfile
|
||||
HISTSIZE=1000
|
||||
|
@ -62,14 +62,14 @@ typeset -ga precmd_functions
|
|||
typeset -ga chpwd_functions
|
||||
|
||||
# Append git functions needed for prompt.
|
||||
preexec_functions+='preexec_update_git_vars'
|
||||
preexec_functions+='preexec_update_vars'
|
||||
precmd_functions+='precmd_update_git_vars'
|
||||
precmd_functions+='precmd_update_updates'
|
||||
chpwd_functions+='chpwd_update_git_vars'
|
||||
|
||||
# Set the prompt.
|
||||
PROMPT='%{${fg[black]}%}%B$(line "$(~/.rootname.scm)")%b%{${fg[default]}%}
|
||||
(%{${fg[magenta]}%}%m%{${fg[default]}%} %{${fg[cyan]}%}%B%~%b%{${fg[default]}%}) %(?.%{${fg[green]}%}O.%{${fg[red]}%}X)%{${fg[default]}%} %# '
|
||||
RPROMPT='$(prompt_git_info)%{${fg[default]}%}'
|
||||
PROMPT='$(prompt)'
|
||||
RPROMPT='$(rprompt)'
|
||||
|
||||
# Set terminal name to current runnign application
|
||||
case $TERM in
|
||||
|
|
4
bin/update_aur_cnt
Executable file
4
bin/update_aur_cnt
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
|
||||
/usr/bin/cower -uq 2>/dev/null \
|
||||
| wc -l 2>/dev/null > ~/.local/share/aur.cnt
|
4
bin/update_pac_cnt
Executable file
4
bin/update_pac_cnt
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash
|
||||
|
||||
/usr/bin/pacman -Qu 2>/dev/null \
|
||||
| wc -l 2>/dev/null > ~/.local/share/updates.cnt
|
Loading…
Reference in a new issue