mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-16 08:46:08 +03:00
shell-integration: implement no-title option
This adds a new option to the shell integration feature set, `no-title`. If this option is set, the shell integration will not automatically update the window title.
This commit is contained in:
@ -839,7 +839,9 @@ keybind: Keybinds = .{},
|
|||||||
///
|
///
|
||||||
/// * `sudo` - Set sudo wrapper to preserve terminfo.
|
/// * `sudo` - Set sudo wrapper to preserve terminfo.
|
||||||
///
|
///
|
||||||
/// Example: `cursor`, `no-cursor`, `sudo`, `no-sudo`
|
/// * `title` - Set the window title via shell integration.
|
||||||
|
///
|
||||||
|
/// Example: `cursor`, `no-cursor`, `sudo`, `no-sudo`, `title`, `no-title`
|
||||||
@"shell-integration-features": ShellIntegrationFeatures = .{},
|
@"shell-integration-features": ShellIntegrationFeatures = .{},
|
||||||
|
|
||||||
/// Sets the reporting format for OSC sequences that request color information.
|
/// Sets the reporting format for OSC sequences that request color information.
|
||||||
@ -3378,6 +3380,7 @@ pub const ShellIntegration = enum {
|
|||||||
pub const ShellIntegrationFeatures = packed struct {
|
pub const ShellIntegrationFeatures = packed struct {
|
||||||
cursor: bool = true,
|
cursor: bool = true,
|
||||||
sudo: bool = false,
|
sudo: bool = false,
|
||||||
|
title: bool = true,
|
||||||
};
|
};
|
||||||
|
|
||||||
/// OSC 4, 10, 11, and 12 default color reporting format.
|
/// OSC 4, 10, 11, and 12 default color reporting format.
|
||||||
|
@ -70,9 +70,11 @@ function __ghostty_precmd() {
|
|||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Command
|
if [[ "$GHOSTTY_SHELL_INTEGRATION_NO_TITLE" != 1 ]]; then
|
||||||
PS0=$PS0'$(__ghostty_get_current_command)'
|
# Command
|
||||||
PS1=$PS1'\[\e]2;$PWD\a\]'
|
PS0=$PS0'$(__ghostty_get_current_command)'
|
||||||
|
PS1=$PS1'\[\e]2;$PWD\a\]'
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "$_ghostty_executing" != "0"; then
|
if test "$_ghostty_executing" != "0"; then
|
||||||
|
@ -194,11 +194,13 @@ _ghostty_deferred_init() {
|
|||||||
_ghostty_report_pwd"
|
_ghostty_report_pwd"
|
||||||
_ghostty_report_pwd
|
_ghostty_report_pwd
|
||||||
|
|
||||||
# Enable terminal title changes.
|
if [[ "$GHOSTTY_SHELL_INTEGRATION_NO_TITLE" != 1 ]]; then
|
||||||
functions[_ghostty_precmd]+="
|
# Enable terminal title changes.
|
||||||
builtin print -rnu $_ghostty_fd \$'\\e]2;'\"\${(%):-%(4~|…/%3~|%~)}\"\$'\\a'"
|
functions[_ghostty_precmd]+="
|
||||||
functions[_ghostty_preexec]+="
|
builtin print -rnu $_ghostty_fd \$'\\e]2;'\"\${(%):-%(4~|…/%3~|%~)}\"\$'\\a'"
|
||||||
builtin print -rnu $_ghostty_fd \$'\\e]2;'\"\${(V)1}\"\$'\\a'"
|
functions[_ghostty_preexec]+="
|
||||||
|
builtin print -rnu $_ghostty_fd \$'\\e]2;'\"\${(V)1}\"\$'\\a'"
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ "$GHOSTTY_SHELL_INTEGRATION_NO_CURSOR" != 1 ]]; then
|
if [[ "$GHOSTTY_SHELL_INTEGRATION_NO_CURSOR" != 1 ]]; then
|
||||||
# Enable cursor shape changes depending on the current keymap.
|
# Enable cursor shape changes depending on the current keymap.
|
||||||
|
@ -50,6 +50,7 @@ pub fn setup(
|
|||||||
// Setup our feature env vars
|
// Setup our feature env vars
|
||||||
if (!features.cursor) try env.put("GHOSTTY_SHELL_INTEGRATION_NO_CURSOR", "1");
|
if (!features.cursor) try env.put("GHOSTTY_SHELL_INTEGRATION_NO_CURSOR", "1");
|
||||||
if (!features.sudo) try env.put("GHOSTTY_SHELL_INTEGRATION_NO_SUDO", "1");
|
if (!features.sudo) try env.put("GHOSTTY_SHELL_INTEGRATION_NO_SUDO", "1");
|
||||||
|
if (!features.title) try env.put("GHOSTTY_SHELL_INTEGRATION_NO_TITLE", "1");
|
||||||
|
|
||||||
return shell;
|
return shell;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user