-
Notifications
You must be signed in to change notification settings - Fork 308
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SSH - Support Fish for remote machines #871
Comments
From @Toma62299781 via #1054 Discord username (optional)No response Shell and Versionfish shell 3.3.1 Operating System and VersionmacOS Monterey 12.3.1 I have tried commenting out my system & user rcfiles and warp still will not bootstrap
ScreenshotsWarp raised an error when I tried to use SSH, the screenshot is shown below. Thanks for your great software. The command I used in the screenshot is like `ssh username@ip -oPort=xxxx`. By the way, the same command works fine under zsh.Include shell xtrace outputNo response |
From @victortrac via #1054 |
From @SichangHe via #1054 ssh username@ip
username@ip's password:
fish: Unsupported use of '='. In fish, please use 'set hook $(printf "{\"hook\": \"SSH\", \"value\": {\"socket_path\": \"~/.ssh/15932\", \"user\": \"%s\", \"machine\": \"%s\", \"remote_shell\": \"%s\"}}" $(whoami) $(hostname) ${SHELL##*/} | command xxd -p | command tr -d "\n")'.
Connection to ip closed. |
I have the same issue as @elviskahoro , would like to be able to use the warp ssh wrapper with fish shell on my remote machines. for now I've fallen back to bash on the remote machines, but I want to use fish. fish 3.5.1 on macOS Monterrey 12.5 |
I am still having this issue as well. macOS Monterey 12.6, fish shell 3.5.1 |
The problem still exists. I'm ssh onto a server with fish as default and I'll get this error:
using
Will give you slightly more info. What does this hook do? It actually looks a bit shady. |
Is fish over SSH going to be a thing? |
It would be nice if |
I also want this ! Do you have an ETA ? Currently I am using |
since Warp seems so keen on collecting user telemetry data here's a free telemetry signal for you, this remote server fish issue completely blocks me from using your product |
hey folks, Sorry about the delays on this. If it's any consolation you can add the following line to your remote config.fish:
then use |
Then I get "Starting shell..." |
For people encountering this issue:
Just upgrade Fish to 3.6.1 with the following command (if you are using Ubuntu LTS): sudo apt-add-repository ppa:fish-shell/release-3
sudo apt update
sudo apt upgrade fish It works! :D |
Mh. Doesn't work for me. I use fish 3.6.1 on my Mac as well as on my remote machines. Still got that error. :-( |
How about running |
Also using v3.6.1 for me on local and remote and still getting an error when using Warp’s wrapper for ssh |
~ fish --version |
Still doesn't work. Time to uninstall warp and try again in a few months. I can't have a split workflow. It's cool enough I am willing to check it out every few months, but not use when basic functionality I would use is broken. Warp v0.2023.10.03.08.03.stable_01
and remote system:
and error:
|
You need to disable SSH integration first or using |
Almost all of my shell work is on remote systems. Warp is useless without the shell integrations through SSH to me. Might as well keep using iTerm, which I am more familiar with. |
Well. You misunderstood our solution.
So don't worry – even disabling the option, it won't affect the integration of Fish if you have written the Warpify code in your |
Ok, so it’s a partial solution for my personal systems. It does make fish seem like a secondary priority which gives me long term worries. I’ll give it a try and see if it’s truly worth adding to a larger scale template deployment. It looks like it’s safe but must test all changes. |
I am trying the manual Warpify code for fish and that does get me into the remote with a fish shell, however there are still some rather unfortunate gaps when working with the remote fish shell. When I use Warp with a local fish shell, fish can cleverly supply autocompletes for anywhere in the filesystem. For example, if I make a new directory with However, when I use Warp with a remote fish shell, fish is not nearly as clever. When I get to the So clearly, even when it "works", Warp is interfering with the fish shell on the remote system in a way that is problematic. Does anyone have suggestions of what might be going wrong? |
I just tried the "show background blocks" feature and it shows a radically different behavior when on a local machine vs. a remote machine. When I type case "${SHELL##*/}" in
zsh) set -o nullglob;;
bash) shopt -s nullglob; GLOBIGNORE=.:..;;
esac
for f in .* *; do
file_type=\'File\'
if [ -d "$f" ]; then
line="{\"file_name\": \"$f\", \"file_type\": \"Directory\"}"
else
line="{\"file_name\": \"$f\", \"file_type\": \"File\"}"
fi
printf "$line\n"
done I suspect this is what is causing Warp to fail to show Fish autocompletes properly. |
Interested by this, I asked chatGPT to translate it into a fish-compatible script and it gave me the following switch (basename $SHELL)
case 'zsh'
set -q GLOB_NOMATCH; and set -e GLOB_NOMATCH
case 'bash'
set -q GLOB_NOMATCH; and set -e GLOB_NOMATCH
set GLOBIGNORE . '..'
end
for f in .* *
set file_type 'File'
if test -d $f
set line "{\"file_name\": \"$f\", \"file_type\": \"Directory\"}"
else
set line "{\"file_name\": \"$f\", \"file_type\": \"File\"}"
end
printf "$line\n"
end Not sure of how good it is but maybe there is a way to overwrite this function and make it use a fish-compatible one? |
I can't ssh into FreeBSD 14 after switching shell to fish:
|
Adding my anti-fish experiences here https://app.warp.dev/block/5uVCeEoLsOS1XjVWGwN0rZ If my default shell is fish on remote host, (fish, version 3.6.4), the whole thing blows up. I changed the default shell to bash, and it worked, but on the remote host if I simply launched bash, it blows up. I would like to try helping fix this, but I can't figure out where this warp process cuts in, or where the scripts are kept. |
Are you planning to fix it though? |
The [ -z $WARP_BOOTSTRAPPED ] && eval 'export WARP_HONOR_PS1=0; export WARP_COMBINED_PROMPT_COMMAND_GRID=0; set -g WARP_SESSION_ID (random);set _hostname $(command -v hostname >/dev/null 2>&1 && command hostname 2>/dev/null || uname -n);set _user $(command -v whoami >/dev/null 2>&1 && command whoami 2>/dev/null || echo $USER);set _msg $(echo -n "{\"hook\": \"InitShell\", \"value\": {\"session_id\": $WARP_SESSION_ID, \"user\": \"$_user\", \"hostname\": \"$_hostname\", \"shell\": \"fish\", \"is_subshell\": true}}" | od -An -v -tx1 | command tr -d " \n");echo -n \u1b\u50\u24"d$_msg"\u9c;set -e _hostname _user _msg;' It could have work, if the [ -z $WARP_BOOTSTRAPPED ] && eval 'export WARP_HONOR_PS1=0; export WARP_COMBINED_PROMPT_COMMAND_GRID=0; set -g WARP_SESSION_ID (random);set _hostname (command -v hostname >/dev/null 2>&1 && command hostname 2>/dev/null || uname -n);set _user (command -v whoami >/dev/null 2>&1 && command whoami 2>/dev/null || echo $USER);set _msg (echo -n "{\"hook\": \"InitShell\", \"value\": {\"session_id\": $WARP_SESSION_ID, \"user\": \"$_user\", \"hostname\": \"$_hostname\", \"shell\": \"fish\", \"is_subshell\": true}}" | od -An -v -tx1 | command tr -d " \n");echo -n \u1b\u50\u24"d$_msg"\u9c;set -e _hostname _user _msg;' |
Describe the solution you'd like?
Is your feature request related to a problem? Please describe.
No response
Additional context
No response
The text was updated successfully, but these errors were encountered: