diff --git a/etc/over/env/prompt.cfg b/etc/over/env/prompt.cfg index 05b6983..70eb18e 100644 --- a/etc/over/env/prompt.cfg +++ b/etc/over/env/prompt.cfg @@ -11,3 +11,6 @@ # Indicators of free space (storage, memory and swap) will turn red when there's at most this fraction of free space left. #OVER_PROMPT_FREESPACE_YELL=0.05 + +# Bell when a command completes (0 to disable) +#OVER_PROMPT_BELL=1 diff --git a/lib/prompt-init b/lib/prompt-init index d034ebd..2793054 100755 --- a/lib/prompt-init +++ b/lib/prompt-init @@ -3,33 +3,39 @@ zmodload zsh/datetime OVER_PROMPT_CFG="/etc/over/env/prompt.cfg" +OVER_PROMPT_TITLE="" if [[ -a "$OVER_PROMPT_CFG" ]]; then source "$OVER_PROMPT_CFG" fi -# emits garbage on tmux, where it's not really needed anyway -if [[ -n "$TMUX" ]]; then - function __over_prompt_set_title { - if [[ ${TERM} =~ "screen" ]]; then - print -Pn "\033k\033${@}\033\134" - fi - } -else - function __over_prompt_set_title { } -fi +function __over_prompt_set_title { + if [[ -n "${OVER_PROMPT_TITLE}" ]]; then + print -Pn "\033k${OVER_PROMPT_TITLE}\033\134" + else + print -Pn "\033k${@}\033\134" + fi +} + +function set_title { + OVER_PROMPT_TITLE="$1" +} function __over_prompt_preexec { - __over_prompt_set_title "${USER}: ${PWD} -> ${1}" + __over_prompt_set_title "${1:0:8}" OVER_PROMPT_CMD_START=${EPOCHSECONDS} } function __over_prompt_precmd { - __over_prompt_set_title "${USER}: ${PWD}" + __over_prompt_set_title "${USER}" python3 /usr/share/over-env/prompt.py "${COLUMNS}" "${PWD}" "${OVER_PROMPT_LAST_REFRESH}" "${OVER_PROMPT_SYSLOAD_WARN:=1.25}" "${OVER_PROMPT_SYSLOAD_YELL:=3.0}" "${OVER_PROMPT_FREESPACE_WARN:=0.15}" "${OVER_PROMPT_FREESPACE_YELL:=0.05}" "${OVER_PROMPT_CMD_START}" PS1="$(print "%(?.%{\e[1;36m%}.%{\e[1;31m%}%?%{\e[0m%}:%{\e[1;31m%})%(\!.#.$)%{\e[0m%} ")" OVER_PROMPT_LAST_REFRESH=${EPOCHSECONDS} OVER_PROMPT_CMD_START=0 + + if [[ "${OVER_PROMPT_BELL:=1}" == "1" ]]; then + print -Pn "\007" + fi } unset OVER_PROMPT_CFG