Fish, a popular user-friendly command-line shell, has announced version 4.3, a new release that builds on the 4.0 series.

One of the most notable changes affects how Fish handles configuration defaults. Universal variables are no longer set automatically. Instead, commonly used variables such as fish_color_, fish_pager_color_, and fish_key_bindings are now defined in the global scope.

On first startup after upgrading, Fish performs a one-time migration, freezing the current theme and key bindings into files under ~/.config/fish/conf.d/. Upstream recommends removing those generated files and managing themes directly in config.fish to keep configurations clean and predictable. Users can still opt into universal variables if needed, though this comes with limitations for dynamic theme switching.

    • Cris@lemmy.world
      link
      fedilink
      English
      arrow-up
      6
      ·
      8 hours ago

      I don’t script so not me, but I’ve heard a lot of people really like it for scripting, since the language is more thoughtfully designed around that usecase. You give up some portability and ability to run them anywhere, but if you’re making them just for yourself my impression is that fish can be a great choice for scripting in

      Plus, like the other reply said, if you’re already using fish (like me :) you may choose to script in fish since thats your chosen shell

      • Creat@discuss.tchncs.de
        link
        fedilink
        arrow-up
        4
        ·
        8 hours ago

        Yup, that’s a great summary.

        I just wanted to add that the reason it’s good, specifically better than bash, is that daring to create something that drops compatibility after I don’t know how many decades allows to actually apply the lessons from an this time. The lack of portability is basically the reason it can be better, but also obviously a bummer.