Repository navigation
Releases
Releases Β· Canop/broot
broot v1.62.0
- fix nushell launcher rejected by upcoming nushell versions (reserved
--helpflag) - 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_titlepattern, 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_titlepattern is now a configuration error - a
path-from-parentorpath-from-directoryflag 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-parentargument 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}ininvocation: "say {file}", now takes precedence over the standard argument with the same name - tab completion of the argument of
:copy,:move, or of verbs usingpath-from-parentorpath-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
modeof 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
:gfnow removes all git information, including the git status filter:gsnow 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
- 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_lineno 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
- 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
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 (
Aadded,Sstaged modification,Rrenamed); newgit_status_stagedskin 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
Nmark 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. -ggshows only the files with a git status (same as--git-status),-Gremoves one level of git information- the Kitty keyboard protocol is now used by default when the terminal supports it, which notably makes
altcombinations work on macOS terminals; multi-key combinations without modifier still needenable_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_lastgoes to the end of a directory preview- the tty preview shows its line count
:preview_autocancels the effect of eg:preview_text, going back to automatically choosing the preview mode
broot v1.59.0
- new
shell_commandverb 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_actioninternal, 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
:cdand similar; also fixes escaping of paths containing a single quote - Fix #1100 - Thanks @Cyrus580529 - fix
brfailing 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
- change the way possible verb completions are listed, making it more readable when there are more than what fits the screen
- fix argument of
:selectand:showbeing ignored in a--cmdsequence - Fix 1176
broot v1.57.0
- help: verb 'keys' and 'description' columns now searchable - Fix #1163
- fix
:print_path/:print_relative_pathadding 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
Fix compilation on non-unix platforms
broot v1.56.3
- 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_stayon the staging area opens every staged file through the system opener - Fix #444 - Thanks @ChrisJr404