← 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. 1mo 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. 1mo 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. 1mo 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. 1mo 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. 3mo 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. 4mo 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 ↗