Fish Shell 4.6 Brings Better Emoji Handling, Bash Compatibility

Fish Shell 4.6 updates emoji width handling, enhances prompt customization, and improves compatibility with Bash-style piping.

Fish, a popular, user-friendly command-line shell, has announced version 4.6, a maintenance update that builds on the 4.0 series with improved emoji rendering: the default emoji width is now 2, matching modern terminal environments. Users on older desktops can restore the previous setting by adjusting the fish_emoji_width variable to 1.

Moreover, interactive features have been enhanced. The tab completion pager now left-justifies column descriptions for better readability. Plus, Fish also recognizes the SHELL_PROMPT_PREFIX, SHELL_PROMPT_SUFFIX, and SHELL_WELCOME environment variables, enabling system-level tools like systemd’s run0 to modify the shell prompt or display startup messages.

Regarding terminal handling, the set_color command now offers individual control over italics, reverse mode, strikethrough, and underline, as well as explicit foreground and reset options. A startup delay issue on macOS has also been resolved.

Compatibility with Bash has been enhanced as well: Fish now supports |& as an alternative syntax for piping both standard output and standard error, consistent with Bash.

Additional fixes improve signal handling and stability. Signals like SIGWINCH, triggered during terminal resizing, no longer interrupt builtin command output. A crash when suspending certain pipelines with Ctrl+Z has been resolved, and fish_indent now preserves comments and newlines before brace blocks.

Finally, this release also addresses regressions from earlier versions, including fixes for prompt redraw artifacts, command completion for commands starting with a dash, restored --color= support in history, and corrections to vi-mode behavior.

For more details, see the changelog.

Bobby Borisov

Bobby Borisov

Bobby, an editor-in-chief at Linuxiac, is a Linux professional with over 20 years of experience. With a strong focus on Linux and open-source software, he has worked as a Senior Linux System Administrator, Software Developer, and DevOps Engineer for small and large multinational companies.

Leave a Reply

Your email address will not be published. Required fields are marked *