Fish 4.3.0 released
The folks behind Fish Shell have released version 4.3.0, hitting macOS and Linux, among others. So, what does this update bring? It generally aims to improve the daily experience for users through some solid changes.
One thing that caught my eye is how they're handling those old 'universal' variables by default; they've moved them out of the way. This makes configuration feel a bit simpler initially because certain settings are now global right from the start. However, managing upgrades remains straightforward: fish will automatically relocate these specific universal variables to their appropriate global slots at startup, but users who are accustomed to configuring settings in theme files or deleting config files may need to revisit those adjustments for full control.
On the scripting front, there's a new status --language command. This is handy for tweaking how fish messages look without having to mess with environment variables, gives you more targeted flexibility. There was also an issue where using a non-interactive fish session to figure out completions didn't work quite right; that's been fixed so it functions properly now.
If you spend time inside the shell, you'll notice some subtle but welcome enhancements too. The first prompt shows up correctly if you type straight after starting fish. File path completion gets smarter with special characters, and prefix-matching is more forgiving; results appear even if your case doesn't exactly match what's expected (though naturally matching ones are preferred).
Cross-platform support for environments like Cygwin or MSYS has seen some tweaks as well. Command name completion now prioritizes names without the .exe part unless you specifically start typing an extension, which feels more natural. Autosuggestions have been extended to show text that gets soft-wrapped, too.
Fish continues to get better with terminal interactions. A new Ctrl+W binding makes it dead simple to delete escaped spaces, a common task for many users. And for those who use iTerm2 or similar shells that support OSC 133 prompt markers, there's improved integration thanks to these awareness features in themes and other terminal handling.
For the developers building or distributing Fish Shell packages, things aren't too different under the hood, but there are some important details. Tarballs no longer come stuffed with prebuilt documentation; you'll need Sphinx installed to create the docs yourself if that's how you distribute it. There's also a new flag called omit-term-workarounds you can flip on to tell fish not to try and be extra careful about terminal compatibility quirks.
Finally, don't forget that this release isn't just a feature dump; they've rolled out some fixes for previously reported issues too. Things like crashes linked to incorrect color variables or mishaps with the ~$USER expansion are now sorted out.
It's another incremental step forward for Fish Shell...
Release fish 4.3.0
This release comprises 285 commits since 4.2.1, contributed by 27 authors, 15 of which are new committers.
