mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-16 00:36:07 +03:00
46 lines
1.6 KiB
Markdown
46 lines
1.6 KiB
Markdown
# Shell Integration Code
|
|
|
|
This is the shell-specific shell-integration code that is
|
|
used for the shell-integration feature set that Ghostty
|
|
supports.
|
|
|
|
This README is meant as developer documentation and not as
|
|
user documentation. For user documentation, see the main
|
|
README.
|
|
|
|
## Implementation Details
|
|
|
|
### Bash
|
|
|
|
Automatic [Bash](https://www.gnu.org/software/bash/) shell integration works by
|
|
starting Bash in POSIX mode and using the `ENV` environment variable to load
|
|
our integration script (`bash/ghostty.bash`). This prevents Bash from loading
|
|
its normal startup files, which becomes our script's responsibility (along with
|
|
disabling POSIX mode).
|
|
|
|
Bash shell integration can also be sourced manually from `bash/ghostty.bash`.
|
|
|
|
### Elvish
|
|
|
|
The [Elvish](https://elv.sh) shell integration is supported by
|
|
the community and is not officially supported by Ghostty. We distribute
|
|
it for ease of access and use but do not provide support for it.
|
|
If you experience issues with the Elvish shell integration, I welcome
|
|
any contributions to fix them. Thank you!
|
|
|
|
### Fish
|
|
|
|
For [Fish](https://fishshell.com/), Ghostty prepends to the
|
|
`XDG_DATA_DIRS` directory. Fish automatically loads configuration
|
|
files in `<XDG_DATA_DIR>/fish/vendor_conf.d/*.fish` on startup,
|
|
allowing us to automatically integrate with the shell. For details
|
|
on the Fish startup process, see the
|
|
[Fish documentation](https://fishshell.com/docs/current/language.html).
|
|
|
|
### Zsh
|
|
|
|
For `zsh`, Ghostty sets `ZDOTDIR` so that it loads our configuration
|
|
from the `zsh` directory. The existing `ZDOTDIR` is retained so that
|
|
after loading the Ghostty shell integration the normal Zsh loading
|
|
sequence occurs.
|