vercel / hyper

A terminal built on web technologies
https://hyper.is
MIT License
43.46k stars 3.52k forks source link

Allow overriding the default shell on Windows #8041

Open jaraco opened 1 month ago

jaraco commented 1 month ago

Is your feature request related to a problem? Please describe. On Unix, I can chsh the default shell to my preferred shell and Hyper will honor that.

On Windows, there's no way to configure a default shell, as far as I can tell. I've tried overriding the COMSPEC variable, but that has no effect on Hyper.

I'd like not to have to configure the default shell in the configuration file as I'd like to re-use the same configuration file that I use on other platforms.

Describe the solution you'd like Ideally, the user could configure something in the environment to change the default shell (e.g. DEFAULT_SHELL=%userprofile%/.local/bin/myshell.exe), and Hyper would honor that.

jaraco commented 1 month ago

On further examination, I determined that the default-shell package as used by Hyper does honor COMSPEC. I must have done something wrong the first time I tried. I was able to configure COMSPEC in my environment and now Hyper loads that shell even when shell: '',.

jaraco commented 1 month ago

On further consideration, while setting COMSPEC does in fact allow Hyper to launch a different shell, it also breaks other things that expect COMSPEC to refer to a cmd.exe-compatible shell, so setting it to my shell breaks those applications. It would be nice to be able to define an alternate default shell, maybe just for Hyper, but without affecting applications reliant on COMSPEC.

jmanuel1 commented 1 month ago

On 3.4.1 I can set my preferred shell to powershell by overriding shell in the config file. Is that what you're looking for?