Commit Graph

11 Commits

Author SHA1 Message Date
Jon Parise
984ff2b402 nushell: refactor ssh wrapper for clarity
The ssh wrapper previously used a separate set_ssh_terminfo function
that returned a record to be merged, which result in some redundant
control flow and TERM assignments.

This inlines the terminfo logic and builds env/opts incrementally based
on feature flags. TERM is set to a fallback early and only overridden on
success, which simplifies our error handling and avoids mutable variable
capture issues in closures.

Lastly, warnings are now consistently written to stderr, and I made
various other control flow and syntax improvements.
2026-01-29 15:03:05 -05:00
David Matos
675fa34e66 unnecesary bind 2026-01-27 00:59:39 +01:00
David Matos
d70eef69f9 address changes 2026-01-27 00:51:50 +01:00
David Matos
b87e8d8172 Update to new nu ssh ghostty integration 2026-01-21 13:19:53 +01:00
David Matos
6d1125951e Merge branch 'main' into nu-ssh-support 2026-01-21 09:06:42 +01:00
Jon Parise
7e3c9f4d5a shell-integration: initial nushell shell integration
Nushell <https://www.nushell.sh/> is a modern interactive shell that
provides many shell features out-of-the-box, like `title` support. Our
shell integration therefore focuses on Ghostty-specific features like
`sudo`.

We use Nushell's module system to provide a `ghostty` module containing
our shell integration features. This module is automatically loaded from
$XDG_DATA_DIRS/nushell/vendor/autoload/ when `nushell` shell integration
is enabled.

Exported module functions need to be explicitly "used" before they're
available to the interactive shell environment. We do that automatically
by adding `--execute "use ghostty *"` to the `nu` command line.

This imports all available functions, and individual shell features are
runtime-guarded by the script code (using $GHOSTTY_SHELL_FEATURES). We
can consider further refining this later.

When automatic shell integration is disabled, users can still manually
source and enable the shell integration module:

    source $GHOSTTY_RESOURCES_DIR/shell-integration/nushell/vendor/autoload/ghostty.nu
    use ghostty *

This initial work implements our TERMINFO-aware `sudo` wrapper (via the
`sudo` shell feature). Support for additional features, like `ssh-env`
and `ssh-terminfo`, will follow.
2026-01-11 11:27:19 -05:00
David Matos
07f4ef8e47 Alternative approach by unconditionally setting xdgDataDirs and checking features with nu 2025-12-06 00:48:14 +01:00
David Matos
d69e16c168 Use external cmd
Remove redundant `into record`
2025-12-04 13:08:04 +01:00
David
a521819882 Address changes
fixes logic bug when adding cache
2025-12-03 22:04:52 +01:00
David Matos
52f94f445d Use ^ssh directly rather than run-external
Modify README
2025-11-18 17:22:31 +01:00
David Matos
45ead5ea99 Provide shell ssh integration for nushell 2025-11-16 10:53:36 +01:00