fzf: 0.72.0

0.72.0 #

(Apr 2026)

Screenshots #

# Based on "Melange Light" theme
# https://junegunn.github.io/fzf/color-themes/
export FZF_DEFAULT_OPTS=$'--color=fg:#54433a,bg:#f1f1f1,hl:#9f6a25,fg+:#54433a,bg+:#e5e1db
  --color=hl+:#9f6a25,info:#4f7272,prompt:#824e7e,pointer:#b65c3e
  --color=marker:#9a5035,spinner:#4e7548,header:#4f7272,border:#bc8f49
  --color=label:#90897e,gutter:#e5e1db,footer:#4f7272'

ps -ef | fzf --reverse --style full \
    --header 'Select a process' --header-lines 1 \
    --bind 'load:transform-footer:echo $FZF_TOTAL_COUNT processes' \
    --header-border dashed --header-first \
    --header-lines-border inline --footer-border inline
1c1
< ps -ef | fzf --reverse --style full \
---
> ps -ef | fzf --reverse --style full:bold \

Quick summary #

TypeClassNameDescription
NewOption--header-border=inlineEmbed the header inside the list frame
NewOption--header-lines-border=inlineEmbed the header-lines inside the list frame
NewOption--footer-border=inlineEmbed the footer inside the list frame
NewStyledashedNew dashed border style for any --*-border option

The new inline shape for --header-border, --header-lines-border, and --footer-border embeds the section inside the list frame, separated by a horizontal line that joins the list’s side borders as T-junctions.

ps -ef | fzf --reverse --style full:bold \
    --header 'Select a process' --header-lines 1 \
    --bind 'load:transform-footer:echo $FZF_TOTAL_COUNT processes' \
    --header-border=inline --header-lines-border=inline \
    --footer-border=inline

All three sections share a single frame, separated by horizontal lines, much like a table with sticky header and footer rows. --header-label and --footer-label render on the separator row.

Requirements #

inline requires a --list-border shape with both top and bottom segments (rounded, sharp, bold, double, block, thinblock, or horizontal); falls back to line otherwise. --header-border=inline requires --header-lines-border to be inline or unset.

Dashed border style #

A new dashed value is accepted by every --*-border option (and by --style=full:dashed). It uses (U+2576) for horizontal edges and (U+2506) for verticals, with rounded corners (╭╮╰╯) and sharp T-junctions (├┤) where it meets inline sections. Because terminal cells are roughly 2:1 tall, horizontals draw a single sparse stub per cell while verticals pack more dashes per cell so both edges read as evenly dashed.

The screenshot at the top of this page uses --header-border dashed together with --header-lines-border inline and --footer-border inline.

Bug fixes and improvements #

  • [vim] Move and resize popup window on VimResized (#4778)
  • Fixed gutter display in --style=minimal
  • Fixed arrow keys / Home / End without modifiers being ignored under the kitty keyboard protocol (#4776)
  • bash: Persist history deletion when histappend is on (#4764)

Also worth mentioning #

An interactive color theme generator is now available on this site, with a live terminal-style preview and dozens of theme presets.

Last modified: Apr 26, 2026
Copyright © 2025 Junegunn Choi