OSC 7 Report Working Directory
Tell the terminal which directory the shell is in.
OSC 7 ; Pt ST
A shell sends OSC 7 ; Pt ST from its prompt, with its working directory as a file: URL, file://host/path, with the host name so that the terminal can tell a directory on another machine from its own. A terminal uses it to open a new tab or window in the same directory, and to show it in a title.
Apple’s Terminal, VTE and many others use it, but it is not xterm’s, and a default xterm ignores it (the OSC numbers it knows). The cases follow xterm.
libghostty-vt keeps the last one it was sent, as it was sent, and tells its host through the PWD_CHANGED callback. It takes two other ways of saying the same thing as well: iTerm2’s OSC 1337 ; CurrentDir=path ST and ConEmu’s OSC 9 ; 9 ; path ST (see ConEmu’s extensions). The pwd line in a case checks what it kept, and the case that checks for nothing is a known difference.
Validation
OSC7-1: Nothing changes on screen
A
\e]7;file://host/home/user\a
B
|AB____|
cursor 1,3
reply none
OSC7-2: A default xterm keeps nothing
\e]7;file://host/home/user\a
|______|
pwd ""
OSC7-3: An empty one clears it
\e]7;file://host/home/user\a
\e]7;\a
|______|
pwd ""