ublue-os / config

A layer to provide configuration files (udev rules, service units, etc)
https://universal-blue.org
Apache License 2.0
38 stars 27 forks source link

Apps installed with homebrew in the host don't work in Fish shell after chsh #244

Open bshor opened 3 months ago

bshor commented 3 months ago

I'm running Bazzite with the latest image.

I installed homebrew on the host. It works great for installing apps into the user directory. My favorite shell, fish, is already pre-installed in Bazzite. Awesome!

But when I try to change shells with chsh -s /usr/bin/fish, the apps I previously installed with homebrew in bash are no longer found.

More curiously, if I enter the fish shell from bash by just typing fish, I am able to access the commands I previously installed under bash. But not if I change shells and restart the terminal app (Ptyxis).

lorduskordus commented 3 months ago

Create a file either in ~/.config/fish/conf.d or /etc/fish/conf.d Name it however you like, but it needs to end with .fish

Save this into the file:

test -d /home/linuxbrew/.linuxbrew; and status --is-interactive; and eval (/home/linuxbrew/.linuxbrew/bin/brew shellenv | source)

That's what I use. Alternatively, have a look here.

citrixscu commented 2 months ago

This should be fixed as of a few days ago. See Issue #1205

boredsquirrel commented 2 months ago

please do not change your shell!!! Fish is not POSIX compliant. Try to run a random bash or even shell script in fish, it will likely fail.

You can only change your user shell to a POSIX compliant shell, and maybe there are even things in the OS that depend on bash.

Instead, change the shell for your terminal emulator. In Konsole that works through Profiles, and GNOMEs Console also has a way.