← Back to all sparks
F

fish shell

DEVOPS
Velocity5.0

Smart and user-friendly command line shell

fish 4.9 ships three bug-fix releases in one week to fix keyboard input regressions on macOS and non-Latin layouts

shellclikeyboard-inputmacosterminal-compatibility
Current state
fish shell released 4.9.0 through 4.9.3 within a week, with the latter three releases fixing keyboard input regressions introduced in 4.9.0 — non-default keyboard layout bindings, IME space insertion, macOS option-key sequences, and dead-key handling. The 4.9.0 release itself added independent shift-space bindings, abbreviation descriptions in the completion pager, and Konsole compatibility workarounds. The 4.8.x cycle that preceded it brought Fluent-based localization for Rust messages, abbreviations completing in argument position, and POSIX `cd -L/-P` compliance.
Where it's heading
fish is managing a high-frequency patch cadence that reflects aggressive regression hunting — regressions are identified and fixed within days of a minor release. The Fluent localization switch and ongoing Vi mode maturation (counts for movement commands, improved word motions) indicate two parallel investment areas: multilingual accessibility and Vim-user experience. Terminal compatibility work (kitty keyboard protocol, Konsole, IME) is the current active problem domain.
Prediction
The 4.9 patch cycle will close after one or two more fixes, then the team will stage a 4.10 release with the next round of scripting and interactive improvements. Keyboard protocol work (kitty, IME) will continue as the long tail of terminal compatibility issues is addressed.

Recent moves

  1. 7d ago

    macOS dead-key input fix (US International layout)

    4.9.3 fixes a single macOS dead-key regression where two-key sequences (like `"` + space on the US International layout) incorrectly inserted a space instead of the composed character. One targeted fix following the pattern of the week.

    View source ↗
  2. 11d ago

    Correction to the 4.9.1 macOS terminal key fix

    4.9.2 corrects the 4.9.1 fix for macOS terminal key handling — the first fix introduced its own regression. Both releases are tightly scoped patches addressing macOS option-key behavior.

    View source ↗
  3. 12d ago

    Keyboard layout, IME, and macOS option-key input regressions fixed

    4.9.1 addresses three keyboard input regressions from 4.9.0: non-default layout bindings resolving physical keys instead of layout keys (Dvorak `;` inserted when typing `s`), IME space not inserting the intended character, and macOS option-key sequences executing bindings instead of inserting characters. These affected everyday typing on non-Latin layouts.

    View source ↗
  4. 12d ago

    Konsole workaround, shift-space bindings, abbreviation descriptions in pager

    4.9.0 disables the kitty keyboard protocol on Konsole to work around a terminal bug, allows independent bindings for shift-space and space, adds abbreviation descriptions to the completion pager, fixes slow tab completion in symlink-heavy directories, and improves Vi mode correctness. A substantive minor release that inadvertently introduced the keyboard regressions fixed in 4.9.1–4.9.3.

    View source ↗
  5. 2mo ago

    Cross-platform word movement restored, new fish_color_builtin/function variables

    4.8.1 restores cross-platform word-movement behavior for alt-backspace/alt-left/alt-right on non-macOS, adds `fish_color_builtin` and `fish_color_function` variables for independent coloring of built-ins and functions, and adds a fish_darcs_prompt. Several 4.8.0 regressions in abbreviation completion and short-option handling are also fixed.

    View source ↗
  6. 2mo ago

    Fluent localization for Rust messages, abbreviations in argument position, POSIX cd options

    4.8.0 switches localization of Rust-sourced messages to Fluent (GNU gettext stays for fish scripts), enables abbreviation completion in argument position not just command position, adds POSIX `cd -L/-P` options, and improves Vi mode word motions to match Vim behavior more closely. The Fluent switch is a significant internal architecture change that will accelerate translations going forward.

    View source ↗