When running a shell for `--hold set the env variable KITTY_HOLD=1` to allow users to customize what happens

For instance the user could have

[ "$KITTY_HOLD" = "1" ] && exec kitten __hold_till_enter__

in their shell rc files to get back the previous Press enter or esc to
quit behavior.
This commit is contained in:
Kovid Goyal 2023-08-30 14:18:11 +05:30
parent 9702f08698
commit 37938573ca
No known key found for this signature in database
GPG key ID: 06BC317B515ACE7C
3 changed files with 8 additions and 1 deletions

View file

@ -68,6 +68,8 @@ Detailed list of changes
- Fix a regression that caused changing :opt:`text_fg_override_threshold` or :opt:`text_composition_strategy` via config reload causing incorrect rendering (:iss:`6559`)
- When running a shell for ``--hold`` set the env variable ``KITTY_HOLD=1`` to allow users to customize what happens (:disc:`6587`)
0.29.2 [2023-07-27]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View file

@ -223,3 +223,8 @@ Variables that kitty sets when running child programs
Set when using the include directive in kitty.conf. Can take values:
``linux``, ``macos``, ``bsd``.
.. envvar:: KITTY_HOLD
Set to ``1`` when kitty is running a shell because of the ``--hold`` flag. Can
be used to specialize shell behavior in the shell rc files as desired.

View file

@ -1185,7 +1185,7 @@ def cmdline_for_hold(cmd: Sequence[str] = (), opts: Optional['Options'] = None)
ksi = ' '.join(opts.shell_integration)
import shlex
shell = shlex.join(resolved_shell(opts))
return [kitten_exe(), 'run-shell', f'--shell={shell}', f'--shell-integration={ksi}'] + list(cmd)
return [kitten_exe(), 'run-shell', f'--shell={shell}', f'--shell-integration={ksi}', '--env=KITTY_HOLD=1'] + list(cmd)
def safe_mtime(path: str) -> Optional[float]: