28 lines
846 B
Bash
28 lines
846 B
Bash
# ELYTerminal: restore ZDOTDIR, load the user's .zshenv, report folder and title.
|
|
if [[ -n "${ELY_ZSH_ZDOTDIR+set}" ]]; then
|
|
ZDOTDIR=$ELY_ZSH_ZDOTDIR
|
|
builtin unset ELY_ZSH_ZDOTDIR
|
|
else
|
|
builtin unset ZDOTDIR
|
|
fi
|
|
[[ -r "${ZDOTDIR:-$HOME}/.zshenv" ]] && builtin source "${ZDOTDIR:-$HOME}/.zshenv"
|
|
if [[ -o interactive ]]; then
|
|
_ely_precmd() {
|
|
builtin local ret=$? LC_ALL=C char url=
|
|
for char in ${(s::)PWD}; do
|
|
case $char in
|
|
[[:cntrl:]]|%) builtin printf -v char '%%%02X' "'$char" ;;
|
|
esac
|
|
url+=$char
|
|
done
|
|
builtin printf '\e]7;file://%s\a\e]2;%s\a' "$url" "${${${PWD:t}:-/}//[[:cntrl:]]/}"
|
|
builtin return ret
|
|
}
|
|
_ely_preexec() {
|
|
builtin printf '\e]2;%s\a' "${1//[[:cntrl:]]/}"
|
|
}
|
|
builtin autoload -Uz add-zsh-hook
|
|
add-zsh-hook precmd _ely_precmd
|
|
add-zsh-hook preexec _ely_preexec
|
|
fi
|