- ignore diacritics in searches - Fix #216
- right key open directory, left key gets back (when input is empty) - Fix #179
- replace ~ in path arguments with user home dir - Fix #211
- use $XDG_CONFIG_HOME/git/ignore when the normal core.excludesFile git setting is missing - Fix #212
- add a man page to archive - Fix #165
- support for an arg made of an optional group - Fix #210
- fix a compilation problem related to dependency (termimad) version
- fix -i and -I launch arguments being ignored (fix #202)
- fix background not always removed when skin requires no background (Fix #194)
:show_git_file_info
compute git repo statistics and file statuses. Statistics are computed in background and cached.:git_diff
verb launchinggit diff {file}
:git_status
filter files to show only the ones which are relevant forgit status
(warning: slow on big repositories)
Several new launch flags have been added, mostly doing the opposite of previous ones (eg -S
negates -s
) and a new entry in the conf.toml lets you define default flags (which can be overriden by the ones you pass on the command line).
Do br --help
to view the complete list of flags.
- on refresh or after command, if the previously selected path can't be selected (missing file, probably) then the previous index will be kept if possible
- alt-enter can be rebinded (users should not do that whithout binding
:cd
, though)
- fix Ctrl-J being interpreted as Enter (fix #177)
- fix panic on some inputs starting with a
/
(Fix #175) - TAB key now jumps to direct matches only
--conf
arg to launch broot with specific config file(s) (fix #141)
- breaking change: commands given with
--cmd
must be separated (default separator is;
) - fix some cases of terminal let in a bad state on errors (thanks Nathan West)
- bring some changes to the fish shell function and its installation (PR #128)
- consider path
$ZDOTDIR/.zshrc
for zsh shell function sourcing (fix #90) - don't use .gitignore files of parent repositories
- change default value of the toggle_trim_root to false (fix #106 but might be reverted)
:print_relative_path
verb (fix #169, thanks Roshan George):chmod
verb
- fix a case of bad selection after search followed by interrupted search (#147)
--set-install-state
can be used in tests or manual installs to set the installation state- Raspberry now a default target available in installation page
- fix a regression:
br -s
not finishing computing size until receiving an event - diplay the real size of sparse files (fix #102)
- set different skins for the r, w and x parts of the mode (permission)
- compatibility with freeBSD
- generate shell completion scripts on build (deep into the target directory)
--print-shell-function
launch argument to print the shell functions to stdout
- fix cancelled verbs possibly executed (fix #104) (major dangerous bug)
- backspace was previously bound to :back if not consumed by input. This is removed
- fix unsignificative event interpreted as previous event repetition
- fix wrong background applied on sizes in tree display
- allow env vars used in verb execution to contain parameters (fix #114)
- allow the use of arrow keys as triggers for verbs (fix #121)
- fix scroll adjustement when using the arrow keys (when there's a scrollbar) (fix #112)
- keep same path selected when lines are reordered (such as when directory sizes are computed
- changed the skin used before installation so that it works better on white backgrounds
- make :open_stay and :open_leave work in help screen (applying on configuration file)
- Mac/fish: use ~/.config/fish even on systems where the config home is usually different
- Mac/bash: add .bash_profile to the list of possible sourcing files
- define ctrl-c as a new way to quit
- fix the 'n' answer being ignored when user is asked authorization
- fix alt-enter not recognized on some computers
New major feature: the :total_search
verb, normally triggered with ctrl-s: done after a search it repeats it but looks at all the children, even if it's long and there were a lot of matches
- should not panic anymore when opening arbitrary files on server
- allow more keys for verbs. For example you can use
enter
(this one won't apply on directories but only on files) - display all possible verb completions in status
- don't query the terminal size after start: use the new Resize event of Crossterm
- fuzzy search performance improvement
- verb invocation now optional so that a verb can be defined to just introduce a keyboard shortcut
- owner and group separately skinned
- screen redrawn on resize (but tree not recomputed, you may want to do F5 to have the best sized tree)
- changes in br shell function storage and sourcing from fish, bash, and zsh. Fixes #39 and #53. Note that broot will ask you again to install the br function
- fix crash on doing
:rm
on the last child of current root - refactor help page generation using Termimad templates
- clear help background when terminal was resized between redraws
- colored status line
- better handling of errors when opening files externally
- spinner replaced with an explicit text
:parent
no longer keeps the filter (this was too confusing)- new
:up
command, focusing the parent of the current tree root $PAGER
used in default config. Fix #20- default conf links to the white background skin published on web site
- new "default" entry in skin, to define a global background replacing the terminal's one
- incorporate crossterm 0.13.2 to fix a regression in vi launch (see Canop#73)
- moved to the crossterm 0.13 and termimad 0.7.1
- broot runs on stderr,
- broot can run in a subshell
Those changes allow tricks like my_unix_command "$(broot)"
when you do :pp
to print the path on stdout from broot
- smarter cut of the status line when it doesn't fit the console's width
- fix mouse click on the status line crashing broot
- prevent the best match from being hidden inside "unlisted" matches
- keyboard keys & shortcuts can be defined for more actions, all built-in verbs documented in website
- paths built from verb arguments are now normalized
New internal verbs like :focus_root, :focus_user_home, :refresh, :select_first You can define triggering keys for verbs.
For example you can add those mappings:
[[verbs]]
invocation = "root"
key = "F9"
execution = ":focus_root"
[[verbs]]
invocation = "home"
key = "ctrl-H"
execution = ":focus_user_home"
[[verbs]]
invocation = "top"
key = "F6"
execution = ":select_first"
[[verbs]]
invocation = "bottom"
key = "F7"
execution = ":select_last"
Then, when doing Ctrl-H, you would go to you user home (~
when on linux) and F7 would select the last line of the tree.
A few more keys are defined as default, like F1 for :help
and F5 for :refresh
.
Launching broot with --sizes
now sets a set of features enabling fast "whale spotting" navigation
Fix non consistent builds due to lack of precise versionning in crossterm subcrate versionning
-
A new syntax allows specifying verbs which can work on relative paths or absolute paths alike. For example the old definition of
cp
wasinvocation = "cp {newpath}" execution = "/bin/cp -r {file} {parent}{newpath}"
and it's now
invocation = "cp {newpath}"
execution = "/bin/cp -r {file} {newpath:path-from-parent}"
The :path-from-parent formatting means the token will be interpreted as a path, and if it's
not starting with a / will be prefixed by the parent path.
It's possible to also use {subpath:path-from-directory}
where directory is parent only if
the selected file isn't a directory itself.
- shift-tab selects the previous match
- mouse wheel support (selection in tree, scroll in help)
- the input field handles left/right arrow keys, home/end, click, and delete
The logic behind opening has changed to allow easier opening of files in non terminal applications without closing broot.
Old behavior:
- in case of enter or double-click
- on a directory: open that directory, staying in broot
- on a file: open the file, quitting broot
- in case of alt-enter
- on a directory: cd to that directory, quitting broot
- on a file: cd to that file's parent directory, quitting broot
New behavior:
- in case of enter or double-click
- on a directory: open that directory, staying in broot
- on a file: open that file in default editor, not closing broot
- in case of alt-enter
- on a directory: cd to that directory, quitting broot
- on a file: open that file in default editor, quitting broot
- Hitting
?
more directly opens the help screen, even when executing a verb
- Hitting enter when first line is selected, or clicking it, goes up to the parent directory
- detect and color executable files on windows
- new toggle to display dates of files (last modification)
- a few small improvements
- minor cosmetic changes (this version was mostly released to ensure consistency with termimad's crate)
- apply verbs on link files, not on their targets (rm some_link was dangerous)
- mouse support: click to select, double-click to open
- fix wrong result of scrolling when help text fits the screen
- change default skin to only use highly compatible colors
- allow ANSI colors in skin configuration
Half broot has been rewritten to allow Windows compatibility. Termion has been replaced with crossterm.
- try to give arguments to verbs executed with --cmd
- Hitting no longer quits when root is selected (many users found it confusing)
- fix verbs crashing broot in /
- fix user displayed in place of user with :perm
- :print_tree outputs the tree. See documentation for examples of use
- F5 refreshes the tree
- env variables usable in verb execution patterns, which makes it possible to use
$EDITOR
in default conf.toml - ctrl-u and ctrl-d are now alternatives to page-up and page-down
- better error messages regarding faulty configurations
- more precise errors in case of invalid regexes
- use the OS specific file opener instead of xdg-open (concretly it means
open
is now used on MacOS) Thanks Ophir LOJKINE for his contributions in this release
- fix a few problems with the count of "unlisted" files
- verbs can now accept complex arguments. This allows functions like mkdir, mv, cp, etc. and your own rich commands
- custom verbs can be executed without leaving broot (if defined with
leave_broot=false
)
- Ctrl-Q shortcut to leave broot
- fix a case of incorrect count of "unlisted" files
br
installer for the fish shell- faster directory size computation (using a pool of threads)
- fix alt-enter failing to cd when the path had spaces
- executable files rendered with a different color
- all colors can be configured in conf.toml
- complete verbs handling in help screen
- faster regex search
- fix missing version in
broot -V
- broot now installs the br shell function itself (for bash and zsh, help welcome for other shells)
- new verb
:toggle_trim_root
allows to keep all root children - verbs can refer to
{directory}
which is the parent dir when a simple file is selected - user configured verbs can be launched from parent shell too (like is done for
cd {directory}
)
- allow page up and page down on help screen
- fuzzy pattern: increase score of match starting after word separator
- better handle errors on a few cases of non suitable root (like passing an invalid path)
- clearer status error on
:cd
. Mentions<alt><enter>
in help - add a scrollbar on help screen
- More responsive on slow disks
- fix a link to documentation in autogenerated conf
- alt-enter now executes
:cd
- patterns can be regexes (add a slash before or after the pattern)
- configuration parsing more robust
- no need to put all verbs in config: builtins are accessible even without being in config
- no need to type the entire verb shortcut: if only one is possible it's proposed
- verbs with {file} usable in help state: they apply to the configuration file
- clear in app error message when calling :cd and not using the br shell function
- bring back jemalloc (it's faster for broot)
- more precise display of file/dir sizes
- fix some cases of panic on broot quitting
- new
--cmd
program argument allows passing a sequence of commands to be immediately executed (see updated documentation) - better handling of symlink (display type of target, show invalid links, allow verbs on target)
- compiled with rustc 1.32 which brings about 4% improvements in perfs compared to 1.31
- fix configured verbs not correctly handling paths with spaces
- fix
:q
not instantly quitting broot when computing size - hit enter on tree root correctly quits broot
- Faster search, mainly
- Faster search and directory size computation.
- more complete search if time allows
- search pattern kept after verb execution
- first public release