From 2e9a0e92db644957a95ff5624262d9ed6e360495 Mon Sep 17 00:00:00 2001 From: Jason Rayne Date: Mon, 16 Jun 2025 15:58:48 -0700 Subject: [PATCH] fix: clean up SSH environment variable propagation --- src/shell-integration/bash/ghostty.bash | 4 +--- .../elvish/lib/ghostty-integration.elv | 12 ++++-------- .../vendor_conf.d/ghostty-shell-integration.fish | 14 ++------------ src/shell-integration/zsh/ghostty-integration | 6 +----- 4 files changed, 8 insertions(+), 28 deletions(-) diff --git a/src/shell-integration/bash/ghostty.bash b/src/shell-integration/bash/ghostty.bash index a630b2dec..9200509da 100644 --- a/src/shell-integration/bash/ghostty.bash +++ b/src/shell-integration/bash/ghostty.bash @@ -170,9 +170,7 @@ if [[ -n "$GHOSTTY_SSH_INTEGRATION" ]]; then env_vars+=("TERM=xterm-ghostty") # Propagate Ghostty shell integration environment variables - [[ -n "$GHOSTTY_SHELL_INTEGRATION_NO_CURSOR" ]] && env_vars+=("GHOSTTY_SHELL_INTEGRATION_NO_CURSOR=$GHOSTTY_SHELL_INTEGRATION_NO_CURSOR") - [[ -n "$GHOSTTY_SHELL_INTEGRATION_NO_SUDO" ]] && env_vars+=("GHOSTTY_SHELL_INTEGRATION_NO_SUDO=$GHOSTTY_SHELL_INTEGRATION_NO_SUDO") - [[ -n "$GHOSTTY_SHELL_INTEGRATION_NO_TITLE" ]] && env_vars+=("GHOSTTY_SHELL_INTEGRATION_NO_TITLE=$GHOSTTY_SHELL_INTEGRATION_NO_TITLE") + [[ -n "$GHOSTTY_SHELL_FEATURES" ]] && env_vars+=("GHOSTTY_SHELL_FEATURES=$GHOSTTY_SHELL_FEATURES") # Normal SSH connection with Ghostty terminfo available env "${env_vars[@]}" ssh "$@" diff --git a/src/shell-integration/elvish/lib/ghostty-integration.elv b/src/shell-integration/elvish/lib/ghostty-integration.elv index 5c901cbb3..63c1253bc 100644 --- a/src/shell-integration/elvish/lib/ghostty-integration.elv +++ b/src/shell-integration/elvish/lib/ghostty-integration.elv @@ -172,14 +172,10 @@ set env-vars = [$@env-vars TERM=xterm-ghostty] # Propagate Ghostty shell integration environment variables - if (has-env GHOSTTY_SHELL_INTEGRATION_NO_CURSOR) { - set env-vars = [$@env-vars GHOSTTY_SHELL_INTEGRATION_NO_CURSOR=$E:GHOSTTY_SHELL_INTEGRATION_NO_CURSOR] - } - if (has-env GHOSTTY_SHELL_INTEGRATION_NO_SUDO) { - set env-vars = [$@env-vars GHOSTTY_SHELL_INTEGRATION_NO_SUDO=$E:GHOSTTY_SHELL_INTEGRATION_NO_SUDO] - } - if (has-env GHOSTTY_SHELL_INTEGRATION_NO_TITLE) { - set env-vars = [$@env-vars GHOSTTY_SHELL_INTEGRATION_NO_TITLE=$E:GHOSTTY_SHELL_INTEGRATION_NO_TITLE] + if (has-env GHOSTTY_SHELL_FEATURES) { + if (not-eq "" $E:GHOSTTY_SHELL_FEATURES) { + set env-vars = [$@env-vars GHOSTTY_SHELL_FEATURES=$E:GHOSTTY_SHELL_FEATURES] + } } # Normal SSH connection with Ghostty terminfo available diff --git a/src/shell-integration/fish/vendor_conf.d/ghostty-shell-integration.fish b/src/shell-integration/fish/vendor_conf.d/ghostty-shell-integration.fish index 1f4f9832d..e0644b8c6 100644 --- a/src/shell-integration/fish/vendor_conf.d/ghostty-shell-integration.fish +++ b/src/shell-integration/fish/vendor_conf.d/ghostty-shell-integration.fish @@ -126,10 +126,6 @@ function __ghostty_setup --on-event fish_prompt -d "Setup ghostty integration" set env_vars $env_vars GHOSTTY_SHELL_FEATURES="$GHOSTTY_SHELL_FEATURES" end - if test -n "$GHOSTTY_RESOURCES_DIR" - set env_vars $env_vars GHOSTTY_RESOURCES_DIR="$GHOSTTY_RESOURCES_DIR" - end - # Execute with environment variables if any were set if test (count $env_vars) -gt 0 env $env_vars ssh $argv @@ -156,14 +152,8 @@ function __ghostty_setup --on-event fish_prompt -d "Setup ghostty integration" set -a env_vars TERM=xterm-ghostty # Propagate Ghostty shell integration environment variables - if set -q GHOSTTY_SHELL_INTEGRATION_NO_CURSOR - set -a env_vars GHOSTTY_SHELL_INTEGRATION_NO_CURSOR=$GHOSTTY_SHELL_INTEGRATION_NO_CURSOR - end - if set -q GHOSTTY_SHELL_INTEGRATION_NO_SUDO - set -a env_vars GHOSTTY_SHELL_INTEGRATION_NO_SUDO=$GHOSTTY_SHELL_INTEGRATION_NO_SUDO - end - if set -q GHOSTTY_SHELL_INTEGRATION_NO_TITLE - set -a env_vars GHOSTTY_SHELL_INTEGRATION_NO_TITLE=$GHOSTTY_SHELL_INTEGRATION_NO_TITLE + if test -n "$GHOSTTY_SHELL_FEATURES" + set env_vars $env_vars GHOSTTY_SHELL_FEATURES="$GHOSTTY_SHELL_FEATURES" end # Normal SSH connection with Ghostty terminfo available diff --git a/src/shell-integration/zsh/ghostty-integration b/src/shell-integration/zsh/ghostty-integration index 6bfc6ffd2..0ffb283b8 100644 --- a/src/shell-integration/zsh/ghostty-integration +++ b/src/shell-integration/zsh/ghostty-integration @@ -280,11 +280,9 @@ _ghostty_deferred_init() { if [[ "$TERM" == "xterm-ghostty" ]]; then TERM=xterm-256color \ GHOSTTY_SHELL_FEATURES="${GHOSTTY_SHELL_FEATURES}" \ - GHOSTTY_RESOURCES_DIR="${GHOSTTY_RESOURCES_DIR}" \ builtin command ssh "$@" else GHOSTTY_SHELL_FEATURES="${GHOSTTY_SHELL_FEATURES}" \ - GHOSTTY_RESOURCES_DIR="${GHOSTTY_RESOURCES_DIR}" \ builtin command ssh "$@" fi } @@ -307,9 +305,7 @@ _ghostty_deferred_init() { env_vars+=("TERM=xterm-ghostty") # Propagate Ghostty shell integration environment variables - [[ -n "$GHOSTTY_SHELL_INTEGRATION_NO_CURSOR" ]] && env_vars+=("GHOSTTY_SHELL_INTEGRATION_NO_CURSOR=$GHOSTTY_SHELL_INTEGRATION_NO_CURSOR") - [[ -n "$GHOSTTY_SHELL_INTEGRATION_NO_SUDO" ]] && env_vars+=("GHOSTTY_SHELL_INTEGRATION_NO_SUDO=$GHOSTTY_SHELL_INTEGRATION_NO_SUDO") - [[ -n "$GHOSTTY_SHELL_INTEGRATION_NO_TITLE" ]] && env_vars+=("GHOSTTY_SHELL_INTEGRATION_NO_TITLE=$GHOSTTY_SHELL_INTEGRATION_NO_TITLE") + [[ -n "$GHOSTTY_SHELL_FEATURES" ]] && env_vars+=("GHOSTTY_SHELL_FEATURES=$GHOSTTY_SHELL_FEATURES") # Normal SSH connection with Ghostty terminfo available env "${env_vars[@]}" ssh "$@"