1osc7_cwd() {
2 local strlen=${#PWD}
3 local encoded=""
4 local pos c o
5 for (( pos=0; pos<strlen; pos++ )); do
6 c=${PWD:$pos:1}
7 case "$c" in
8 [-/:_.!\'\(\)~[:alnum:]] ) o="${c}" ;;
9 * ) printf -v o '%%%02X' "'${c}" ;;
10 esac
11 encoded+="${o}"
12 done
13 printf '\e]7;file://%s%s\e\\' "${HOSTNAME}" "${encoded}"
14}
15PROMPT_COMMAND=${PROMPT_COMMAND:+${PROMPT_COMMAND%;}; }osc7_cwd
16
17prompt_marker() {
18 printf '\e]133;A\e\\'
19}
20PROMPT_COMMAND=${PROMPT_COMMAND:+${PROMPT_COMMAND%;}; }prompt_marker
21
22PS0+='\e]133;C\e\\'
23
24command_done() {
25 printf '\e]133;D\e\\'
26}
27PROMPT_COMMAND=${PROMPT_COMMAND:+${PROMPT_COMMAND%;}; }command_done