CachyOS is my first time using something other than bash and I’m curious about people’s opinions.
the quality and presentation of tab complete.
Give a man a fish and he will eat for a day. Teach a man to fish and he will tab for a lifetime.
It’s not exactly a feature of fish itself, but the ability to extend and refine it. After a lot of research and experimenting:
Ghostty + fresh + yazi + tealdeer + eza + dust + zoxide + starship
Replace pure/cd with starship/zoxide
fresh ~/.config/fish/config.fish
if status is-interactive
starship init fish | source
zoxide init fish --cmd cd | source
end
Haha, nice, I may have seen a similar post of you 1-2 months ago, since to my surprise, I already had tealdeer and eza.
Dust is very nice! Similar to Filelight (GUI), but maybe has better defaults. Thanks for that hint.
Have you played around with zsh?
Very possibly! But starship + zoxide are recent discoveries for me. Highly recommended.
I haven’t even looked at zsh - fish does all I need and more, so I’ve been busy with other things.
ZSH is good and also much more POSIX compatible which can be preferable for interaction with outside stuff that expects POSIX compatibility.
And both are also close enough to POSIX to inherit decades of junk that can make scripting get quite arcane.
Breaking with posix is the source of a lot of fish niceties but also of some random pain points. Staying somewhat close to POSIX is likewise both a source of pain and familiarity.
Having Fish set as a login shell (vs. running it inside your terminal but having a different login shell) is right at the point of “is this a good or a bad default choice” point.
This is the thing that gets me more than the default choice itself.
I may not be a personal fan of fish, and may question whether its actually a good choice for a default..
But for a login shell I feel we really should be using something more standard. Let the quirky default be applied, if it must, by the given terminal emulator (whether it uses a config like alacritty or profiles like konsole).
Although a bit OT.
Uhm.
If we twist the prompt a bit then I “like” (read: abhor) how with fish arrays are not only called “lists” .. but also begin on 1. Barbaric. ![]()
It came out of the box with my Cachy installation, iirc. It took me a few days to realize how many cool aliases Cachy had already in place, and yet I switched to zsh because of it being more bash compatible. But I took most aliases from the fish-config over to my zsh
(and I still wonder why the Cachy team does not keep the zsh-config as cool as the fish one, but I guess you can’t have it all)
I like its OOTB tabcomplete handling of systemd services, and honestly that’s most of my positive thoughts.
That just starts adding so much weirdness and complexity for new users - depending on what terminal they use a different shell comes up, etc. If you start assuming (obv. a big assumption) you want to offer Fish as the interactive shell…I’m not sure any of the alternatives (i.e. launch it for interactive sessions only from bash or zsh) are better than just setting it as login shell. better weird but consistent.
My general take is Fish breaks from POSIX jussstttt little enough to be almost reasonable as a login shell, jusssssstttt enough to completely trip up shell scripters or force them to learn something new, but not enough to be better-enough for scripting to be worth learning/using.
I had no idea tealdeer existed and I’m so glad it does. Thanks ![]()