mirror of
https://github.com/wez/wezterm.git
synced 2024-12-23 13:21:38 +03:00
46 lines
1.7 KiB
Markdown
46 lines
1.7 KiB
Markdown
|
## Shell Integration
|
||
|
|
||
|
wezterm supports integrating with the shell through the following means:
|
||
|
|
||
|
### OSC 7 Escape sequence to set the working directory
|
||
|
|
||
|
`OSC` is escape sequence jargon for *Operating System Command*; `OSC 7` means
|
||
|
Operating System Command number 7. This is an escape sequence that originated
|
||
|
in the macOS Terminal application that is used to advise the terminal of the
|
||
|
current working directory.
|
||
|
|
||
|
An application (usually your shell) can be configured to emit this escape
|
||
|
sequence when the current directory changes, or just to emit it each time
|
||
|
it prints the prompt.
|
||
|
|
||
|
The current working directory can be specified as a URL like this:
|
||
|
|
||
|
```bash
|
||
|
printf "\033]7;file://HOSTNAME/CURRENT/DIR\033\\"
|
||
|
```
|
||
|
|
||
|
**When the current working directory has been set via OSC 7, spawning
|
||
|
a new tab will use the current working directory of the current tab,
|
||
|
so that you don't have to manually change the directory**.
|
||
|
|
||
|
If you are on a modern Fedora installation, the defaults for bash and
|
||
|
zsh source a `vte.sh` script that configures the shell to emit this
|
||
|
sequence. On other systems you will likely need to configure this
|
||
|
for yourself.
|
||
|
|
||
|
### OSC 7 on Windows with cmd.exe
|
||
|
|
||
|
`cmd.exe` doesn't allow a lot of flexibility in configuring the prompt,
|
||
|
but fortunately it does allow for emitting escape sequences. You
|
||
|
can use the `set_environment_variables` configuration to pre-configure
|
||
|
the prompt environment in your `wezterm.toml`; this example configures
|
||
|
the use of OSC 7 as well as including the time and current directory in
|
||
|
the visible prompt with green and purple colors, and makes the prompt
|
||
|
span multiple lines:
|
||
|
|
||
|
```toml
|
||
|
[set_environment_variables]
|
||
|
prompt = "$E]7;file://localhost/$P$E\\$E[32m$T$E[0m $E[35m$P$E[36m$_$G$E[0m "
|
||
|
```
|
||
|
|