From e791a8a7bb0da79a0e5e5b59f5eb7550a016b5fb Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 18 Mar 2022 10:45:16 +0530 Subject: [PATCH] Add the SSH kitten to the Changelog --- docs/changelog.rst | 57 ++++++++---------------------------------- docs/kittens/ssh.rst | 30 ++++++++++++++-------- docs/kittens_intro.rst | 5 ++++ 3 files changed, 34 insertions(+), 58 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 526cdd2d4..11c131cff 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -9,23 +9,14 @@ To update |kitty|, :doc:`follow the instructions `. Recent major new features --------------------------- -.. only:: dirhtml +Truly convenient SSH +~~~~~~~~~~~~~~~~~~~~~~~~ - A demo video - ~~~~~~~~~~~~~~~~ +The :doc:`ssh kitten ` is redesigned with powerful new features: - A new video showcasing some of kitty's many productivity enhancing features. - - .. raw:: html - - - - .. rst-class:: caption caption-text - - Watch kitty in action! +* Automatic :ref:`shell_integration` on remote machines +* Easily :ref:`clone local shell/editor config ` on remote machines +* Automatic :opt:`re-use of existing connections ` to avoid connection setup latency Shell integration @@ -38,38 +29,6 @@ scrollback by pressing :sc:`scroll_to_previous_prompt` and clicking with the mouse anywhere in the current command to move the cursor there. See :doc:`shell-integration` for details. -Logos for windows -~~~~~~~~~~~~~~~~~~~~ - -kitty has the ability to display arbitrary ``PNG`` images at the corner -of any kitty window to serve as a *logo* for quick window identification. -Can be controlled via :opt:`window_logo_path` and also and changed via -the :ref:`at_set-window-logo` remote control command. -Useful to quickly identify special windows or just for some *bling*. - -.. figure:: screenshots/window-logo.png - :alt: A screenshot of the kitty shell window showing the kitty logo - :align: center - :width: 100% - - A screenshot of the kitty shell window showing the kitty logo - - -Visual keyboard based window select -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Select a kitty window visually using the keyboard, like the -:doc:`kittens/hints`, but for kitty windows. Can also be used from shell -scripts/third party integrations via the :ref:`at_select-window` remote control -command. - -.. figure:: screenshots/select-window.png - :alt: A screenshot of the kitty select window function - :align: center - :width: 100% - - Hints for selecting kitty windows visually - .. }}} Detailed list of changes @@ -78,6 +37,10 @@ Detailed list of changes 0.25.0 [future] ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +- :doc:`kittens/ssh`: automatic shell integration when using SSH. Easily + clone local shell and editor configuration on remote machines, and automatic + re-use of existing connections to avoid connection setup latency. + - macOS: When using Apple's less as the pager for viewing scrollback strip out OSC codes as it cant parse them (:iss:`4788`) - diff kitten: Fix incorrect rendering in rare circumstances when scrolling after changing the context size (:iss:`4831`) diff --git a/docs/kittens/ssh.rst b/docs/kittens/ssh.rst index 56b73bda7..7875a7149 100644 --- a/docs/kittens/ssh.rst +++ b/docs/kittens/ssh.rst @@ -1,6 +1,12 @@ Truly convenient SSH ========================================= +* Automatic :ref:`shell_integration` on remote machines + +* Easily :ref:`clone local shell/editor config ` on remote machines + +* Automatic :opt:`re-use of existing connections ` to avoid connection setup latency + The ssh kitten allows you to login easily to remote servers, and automatically setup the environment there to be as comfortable as your local shell. You can specify environment variables to set on the remote server and @@ -77,6 +83,8 @@ by this invocation, so any :opt:`hostname ` directives are the shell prompt 😇. +.. _real_world_ssh_kitten_config: + A real world example ---------------------- @@ -108,17 +116,17 @@ How it works ---------------- The ssh kitten works by having SSH transmit and execute a POSIX sh (or -optionally Python) bootstrap script on the remote server using an -:opt:`interpreter `. This script reads setup data over -the tty device, which kitty sends as a base64 encoded tarball. The script -extracts it and places the :opt:`files ` and sets the -:opt:`environment variables ` before finally launching the -:opt:`login shell ` with shell integration enabled. The -data is requested by the kitten over the TTY with a random one time password. -kitty reads the request and if the password matches a password pre-stored in -shared memory on the localhost by the kitten, the transmission is allowed. If -your OpenSSH version is >= 8.4 then the data is transmitted instantly without -any roundtrip delay. +:opt:`optionally ` Python) bootstrap script on the +remote server using an :opt:`interpreter `. This script +reads setup data over the tty device, which kitty sends as a base64 encoded +compressed tarball. The script extracts it and places the :opt:`files ` +and sets the :opt:`environment variables ` before finally +launching the :opt:`login shell ` with shell +integration enabled. The data is requested by the kitten over the TTY with a +random one time password. kitty reads the request and if the password matches +a password pre-stored in shared memory on the localhost by the kitten, the +transmission is allowed. If your OpenSSH version is >= 8.4 then the data is +transmitted instantly without any roundtrip delay. .. note:: diff --git a/docs/kittens_intro.rst b/docs/kittens_intro.rst index 6eb773176..44f6ae487 100644 --- a/docs/kittens_intro.rst +++ b/docs/kittens_intro.rst @@ -63,6 +63,11 @@ Some prominent kittens: other :term:`kitty windows `. +:doc:`SSH ` + SSH with automatic shell integration, connection re-use for low latency and easy cloning + of local shell and editor configuration to the remote machine. + + :doc:`Panel ` Draw a GPU accelerated dock panel on your desktop showing the output from an arbitrary terminal program.