diff --git a/kittens/ssh/main.py b/kittens/ssh/main.py index 8b94e7990..c9a630094 100644 --- a/kittens/ssh/main.py +++ b/kittens/ssh/main.py @@ -242,7 +242,7 @@ def prepare_exec_cmd(remote_args: Sequence[str], is_python: bool) -> str: if is_python: return standard_b64encode(' '.join(remote_args).encode('utf-8')).decode('ascii') args = ' '.join(c.replace("'", """'"'"'""") for c in remote_args) - return f"""exec "$login_shell" -c '{args}'""" + return f"""unset KITTY_SHELL_INTEGRATION; exec "$login_shell" -c '{args}'""" def prepare_export_home_cmd(ssh_opts: SSHOptions, is_python: bool) -> str: diff --git a/shell-integration/ssh/bootstrap.py b/shell-integration/ssh/bootstrap.py index e4976e08d..294ec0382 100644 --- a/shell-integration/ssh/bootstrap.py +++ b/shell-integration/ssh/bootstrap.py @@ -276,6 +276,7 @@ def main(): ksi = frozenset(filter(None, os.environ.get('KITTY_SHELL_INTEGRATION', '').split())) exec_cmd = b'EXEC_CMD' if exec_cmd: + os.environ.pop('KITTY_SHELL_INTEGRATION', None) cmd = base64.standard_b64decode(exec_cmd).decode('utf-8') os.execlp(login_shell, os.path.basename(login_shell), '-c', cmd) TEST_SCRIPT # noqa