Skip to content

Releases

broot v1.62.0

Choose a tag to compare

@Canop Canop released this 01 Nov 16:41
  • fix nushell launcher rejected by upcoming nushell versions (reserved --help flag) - Fix #1230
  • an invalid flag in a verb argument, eg {file:space_separated}, is now reported as a configuration error
  • a flag in the terminal_title pattern, where flags have no effect, is now a configuration error
  • an unknown argument in a verb, eg {flie}, is now reported as a configuration error
  • an unknown argument in the terminal_title pattern is now a configuration error
  • a path-from-parent or path-from-directory flag on an argument provided by broot, eg {file:path-from-parent}, is now a configuration error
  • contradictory or repeated flags on a verb argument, eg {file:space-separated,comma-separated}, are now a configuration error
  • a space between the flags of a verb argument no longer breaks the argument when the execution is given as a single string
  • fix quotes in verb executions, broken since 1.56: quotes of an execution given as a single string were passed to the program, and items of an array with spaces weren't quoted when run through a shell
  • in a command run through a shell, all inserted values are now escaped, not only paths (eg {file-name}), and an empty value is passed as an empty argument
  • a path-from-parent argument now starts from the selection itself when it has no parent (the filesystem root), instead of being empty
  • an invalid verb in the configuration now prevents broot from starting, with an error giving its file and definition
  • errors displayed on exit are now highlighted
  • a verb argument defined in the invocation, eg {file} in invocation: "say {file}", now takes precedence over the standard argument with the same name
  • tab completion of the argument of :copy, :move, or of verbs using path-from-parent or path-from-directory, now starts from the directory the command will use
  • client-server features (--listen, --send, --get-root) now available on Windows - Fix #1206
  • on Windows, a trailing \ in a verb argument path is now kept after normalization
  • the mode of a preview transformer is now applied when no preview mode is requested - Thanks @matthewhadley
  • more nerdfont icons: hjson, Docker, README, envrc, LLVM, CMake, gdb, ghci, Cabal, fish, Nix, Just, ignore files, jsonc, jsonl - Thanks @noahkawaguchi

broot v1.61.0

Choose a tag to compare

@Canop Canop released this 03 Oct 13:01
  • :gf now removes all git information, including the git status filter
  • :gs now removes all git information when toggled off, and no longer changes the hidden files setting
  • a content search opened in the preview now shows the matching lines instead of the diff of a modified file
  • quiet exit instead of a panic when stdout is closed, eg broot --help | head -1
  • fix special paths pruned below second level - Thanks @VXNCXNX

broot v1.60.2

Choose a tag to compare

@Canop Canop released this 26 Sep 13:08
  • fix some combinations being wrongly interpreted for input on some terminals (eg shift-r with kitty keyboard protocol enabled on ghostty/mac was interpreted as just a 'r')
  • preview of CRLF (Windows style) text files no longer shows a replacement char at the end of every line - Fix #1216
  • :copy_line no longer copies the end of line characters
  • PSD images are no longer previewed
  • content search no longer reports false matches in .bz2, .xz, .zst and .br files
  • nerdfont icons for TOML and YAML files - Thanks @noahkawaguchi

broot v1.60.1

Choose a tag to compare

@Canop Canop released this 08 Sep 19:10
  • the official macOS binary now includes the clipboard feature (:copy_path, :copy_line, :input_paste)
  • a verb redefined with the name of an existing one no longer makes typing a prefix of that name ambiguous
  • on macOS, the trash listing verbs (:open_trash, etc.) are no longer offered, as they couldn't work there
  • paths containing shell special characters (globs, $, parentheses, etc.) are now quoted in commands executed by the shell function - Fix #595
  • the terminal title no longer shows paths quoted
  • fix double-click not opening the file when the tree is scrolled - Fix #150
  • git statuses are no longer missing in subdirectories when broot is launched from a subdirectory of the repository
  • the diff preview is shown for a modified file given as launch argument
  • the diff preview works in a repository without any commit yet
  • refreshing the tree (F5) also refreshes the git branch and stats of the root line

broot v1.60.0

Choose a tag to compare

@Canop Canop released this 05 Sep 16:56

Major Feature: preview wrapping

By default, long lines in preview are now wrapped.
This impacts text previews, with or without syntactic coloring, unified diffs, and TTY previews
This can be toogled with :toggle_preview_wrap (shortcut :wrap), and wrap_previews: false in the conf disables it on start

Major Feature: git diff preview, and many git related enhancements

The libgit2 library has been replaced by gix. With this change, broot becomes pure Rust, which simplifies compilation (no C compiler needed anymore).
A unified diff preview is now the default preview of a file with a git change (modified, staged, added, renamed or in conflict) when git statuses are displayed. :preview_diff shows it for any file.

Best way to try: in a repo with changes, do br -dgg

  • tab and shift-tab navigate between git-interesting files and diff chunks just like for content search matches
  • ctrl-β†’ opens the file at the selected chunk, and ctrl-← brings you back to the diff
  • new skin entries: diff_added, diff_removed, diff_line_number
  • in detached HEAD state, the status line shows the short commit id instead of HEAD
  • git status: staged files are shown (A added, S staged modification, R renamed); new git_status_staged skin entry
  • git status of a subdirectory of a big repository is computed on that subdirectory only, which is faster
  • git status: an untracked directory gets the N mark too
  • the status line shows how many commits the branch is ahead (↑) or behind (↓) its upstream
  • {git-root} and {git-name} now work when the selection is a file
  • alt-g toggles the git status filter (:toggle_git_status). Status line suggests using it in git repo.
  • -gg shows only the files with a git status (same as --git-status), -G removes one level of git information
  • the Kitty keyboard protocol is now used by default when the terminal supports it, which notably makes alt combinations work on macOS terminals; multi-key combinations without modifier still need enable_kitty_keyboard: true - I'll watch this as this may have unwanted effects, like time related difficulty for some combinations - feedback welcome

Other Changes

  • fix panic when previewing an image with 16 bits per channel, or HDR - Fix #1209
  • alt-arrows are bound like ctrl-arrows (panels, root up/down), as macOS captures ctrl-arrows; hints and help show the alt ones on macOS
  • arrow keys scroll the tty preview
  • :select_last goes to the end of a directory preview
  • the tty preview shows its line count
  • :preview_auto cancels the effect of eg :preview_text, going back to automatically choosing the preview mode

broot v1.59.0

Choose a tag to compare

@Canop Canop released this 22 Aug 19:44
  • new shell_command verb attribute: run a command through a shell (sh -c / cmd /C) so &&, ; and pipes work, without leaving broot - Fix #1145
  • fix invalid official Mac binary (duplicate linked dylib) with new build chain - Fix #1194
  • Sixel graphics support for image preview, auto-detected: works in iterm2, Windows Terminal 1.22+ and Sixel-capable Unix terminals (foot, mlterm, xterm built with Sixel, recent WezTerm). Kitty remains the preferred protocol when available. Note: this requires broot to be compiled with sixel feature (eg cargo install broot --features sixel) - Fix #568 - Thanks @jamison-wilde
  • High-Res images in Rio terminal (detect it to enable the Kitty image protocol) - Fix #1179
  • fix iTerm2 3.6.10 and later not displaying Hi-Res images, the version being compared as text - Thanks @kidonng
  • fix content-exact match line number off-by-one when the match starts at the first byte of a line (broot jumped to the line above) - Thanks @YuriNachos
  • new :no_action internal, doing nothing, which can be used to disable a key - Fix #328
  • fix: detect a duplicate broot server name instead of silently overtaking the running server - Fix #1065 - Thanks @YuriNachos
  • fix preview transformers extension matching not working with double extensions such as .tar.gz - Fix #1195
  • strip escape sequences from displayed names to prevent OSC injections - Fix #1188 - Thanks @carfeii
  • fall back to numeric uid/gid instead of ???? when the user or group name can't be resolved, which is always the case on statically linked musl builds - Fix #1075
  • fix panic on a content regex matching the empty string at the end of a line ending with a control char (eg cr/$/ on a CRLF file)
  • fix Windows paths (containing backslashes) being mangled by the launcher's eval when using :cd and similar; also fixes escaping of paths containing a single quote - Fix #1100 - Thanks @Cyrus580529
  • fix br failing on Windows/PowerShell when the temp path contains a space (e.g. a space in the Windows username) - Fix #788 - Thanks @chinhkrb113
  • JPEG XL images are no longer previewed: the decoder had out-of-bounds bugs and the fix needs a more recent rustc (if you need it, tell me and I'll try to make it opt-in)
  • rustc minimal version changed from 1.83 to 1.85, and edition 2024

broot v1.58.0

Choose a tag to compare

@Canop Canop released this 10 Jul 20:21
  • change the way possible verb completions are listed, making it more readable when there are more than what fits the screen
  • fix argument of :select and :show being ignored in a --cmd sequence - Fix 1176

broot v1.57.0

Choose a tag to compare

@Canop Canop released this 01 Jun 14:04
  • help: verb 'keys' and 'description' columns now searchable - Fix #1163
  • fix :print_path / :print_relative_path adding a trailing empty line when printing a multi-item staging area - Fix #1062 - Thanks @xfocus3
  • Skin: attributes (bold, underlined, etc.) of the "selected_line" entry now applied - Fix #1156
  • if no Wezterm version is found, broot now assumes it's recent enough to support kitty protocol for image - Fix #509 - Thanks @chinhkrb113

broot v1.56.4

Choose a tag to compare

@Canop Canop released this 14 May 05:21

Fix compilation on non-unix platforms

broot v1.56.3

Choose a tag to compare

@Canop Canop released this 13 May 09:02
  • fix control characters sometimes remaining in the terminal after broot exit
  • nushell: rename br module to avoid conflict in last nushell version - Fix #1138 - Thanks @paulhey
  • :open_stay on the staging area opens every staged file through the system opener - Fix #444 - Thanks @ChrisJr404