Use a different shell/configure shell?

[original thread by extremepayne]

I used to use a stack of zsh, prezto, powerlevel10k, and some custom config in .zpreztorc and .zshrc, and I really miss the history substring search feature (I can live without the theme, right prompt and improved tabcompletion, but those were really nice as well), is there any way to configure a different shell for use within gitpod?

1 Like

Hi @extremepayne, thanks for the great question! While Gitpod doesn’t have an easy way to switch shells, maybe there are ways to address or work around your pain points:

Gitpod assumes Bash, and sets up various things in ~/.bashrc. If you use a different shell, you may need to replicate some of these things in your own configs (e.g. NPM, pyenv, Java versions, etc).

You can install any 3rd-party shell in Gitpod, and set up proper config files for it, by adding a custom Dockerfile to each one of your repositories/forks. See https://www.gitpod.io/docs/42_config_docker/ for how to do that

To make Gitpod auto-start with your new shell, you can configure your projects’ .gitpod.yml tasks with something like this:

tasks:

  • command: zsh

This will make Gitpod auto-run your custom shell on each start-up. Hope this helps!

In case anyone is wondering, this appears to still be true and there doesn’t appear to be a way to push this command down into the “docker layer”. Trying:

RUN zsh

or

ENTRYPOINT [ "zsh" ]

Doesn’t work. Only as a task in the .gitpod.yml file.

ENV SHELL=zsh in the docker image should do the trick, for task and regular user terminals.

If it does not work please share your repo I will take a look.

1 Like

Thanks, confirmed that works!

1 Like