this post was submitted on 19 Jan 2025
7 points (100.0% liked)

Free and Open Source Software

18081 readers
9 users here now

If it's free and open source and it's also software, it can be discussed here. Subcommunity of Technology.


This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

founded 2 years ago
MODERATORS
 

0.58.0

Release highlights: https://junegunn.github.io/fzf/releases/0.58.0/

This version introduces three new border types, --list-border, --input-border, and --header-border, offering much greater flexibility for customizing the user interface.

Also, fzf now offers "style presets" for quick customization, which can be activated using the --style option.

Preset Screenshot
default https://raw.githubusercontent.com/junegunn/i/master/fzf-style-default.png
full https://raw.githubusercontent.com/junegunn/i/master/fzf-style-full.png
minimal https://raw.githubusercontent.com/junegunn/i/master/fzf-style-minimal.png
  • Style presets (#4160)
    • --style=full[:BORDER_STYLE]
    • --style=default
    • --style=minimal
  • Border and label for the list section (#4148)
    • Options
      • --list-border[=STYLE]
      • --list-label=LABEL
      • --list-label-pos=COL[:bottom]
    • Colors
      • list-fg
      • list-bg
      • list-border
      • list-label
    • Actions
      • change-list-label
      • transform-list-label
  • Border and label for the input section (prompt line and info line) (#4154)
    • Options
      • --input-border[=STYLE]
      • --input-label=LABEL
      • --input-label-pos=COL[:bottom]
    • Colors
      • input-fg (query)
      • input-bg
      • input-border
      • input-label
    • Actions
      • change-input-label
      • transform-input-label
  • Border and label for the header section (#4159)
    • Options
      • --header-border[=STYLE]
      • --header-label=LABEL
      • --header-label-pos=COL[:bottom]
    • Colors
      • header-fg (header)
      • header-bg
      • header-border
      • header-label
    • Actions
      • change-header-label
      • transform-header-label
  • Added --preview-border[=STYLE] as short for --preview-window=border[-STYLE]
  • Added new preview border style line which draws a single separator line between the preview window and the rest of the interface
  • fzf will now render a dashed line (┈┈) in each --gap for better visual separation.
    # All bash/zsh functions, highlighted
    declare -f |
      perl -0 -pe 's/^}\n/}\0/gm' |
      bat --plain --language bash --color always |
      fzf --read0 --ansi --layout reverse --multi --highlight-line --gap
    
    • You can customize the line using --gap-line[=STR].
  • You can specify border-native to --tmux so that native tmux border is used instead of --border. This can be useful if you start a different program from inside the popup.
    fzf --tmux border-native --bind 'enter:execute:less {}'
    
  • Added toggle-multi-line action
  • Added toggle-hscroll action
  • Added change-nth action for dynamically changing the value of the --nth option
    # Start with --nth 1, then 2, then 3, then back to the default, 1
    echo 'foo foobar foobarbaz' | fzf --bind 'space:change-nth(2|3|)' --nth 1 -q foo
    
  • --nth parts of each line can now be rendered in a different text style
    # nth in a different style
    ls -al | fzf --nth -1 --color nth:italic
    ls -al | fzf --nth -1 --color nth:reverse
    ls -al | fzf --nth -1 --color nth:reverse:bold
    
    # Dim the other parts
    ls -al | fzf --nth -1 --color nth:regular,fg:dim
    
    # With 'change-nth'. The current nth option is exported as $FZF_NTH.
    ps -ef | fzf --reverse --header-lines 1 --header-border bottom --input-border \
               --color nth:regular,fg:dim \
               --bind 'ctrl-n:change-nth(8..|1|2|3|4|5|6|7|)' \
               --bind 'result:transform-prompt:echo "${FZF_NTH}> "'
    
  • A single-character delimiter is now treated as a plain string delimiter rather than a regular expression delimiter, even if it's a regular expression meta-character.
    • This means you can just write --delimiter '|' instead of escaping it as --delimiter '\|'
  • Bug fixes
  • Bug fixes and improvements in fish scripts (thanks to @bitraid)
no comments (yet)
sorted by: hot top controversial new old
there doesn't seem to be anything here