A hackable, minimal, fast TUI file explorer
(
and )
bound to the new messages.Input/Logs
panel, so that selection panel can be hidden without losing the indicator.f1
to see the global help menu from any mode, without leaving the mode.CustomLayout
, a new custom panel type to allow nesting other layouts inside a static or dynamic layout. This will allow switching between different layouts dynamically, without having to switch modes.$LS_COLORS
will have lesser priority than xplr.config.node_types.*.style
.xplr.config.node_types.*.style
, so xplr will default to $LS_COLORS
.xplr -m
now uses jf
to render and pass messages. This allows for a more flexible template syntax.xplr.config.general.sort_and_filter_ui.search_identifier
has been
renamed to xplr.config.general.sort_and_filter_ui.search_identifiers
.permissions
field anymore.
Use the utility function xplr.util.node
to get its permissions.CustomContent
has been undocumented. It will stay for compatibility,
but you should prefer using the following new layouts, because they support
custom title:
xplr.config.general.search.algorithm = "Fuzzy"
.xplr.config.general.search.unordered = false
.ctrl-u
).:sl
to list selection in a $PAGER.:ss
to create softlink of the selected items.:sh
to create hardlink of the selected items.:se
to edit selection list in your $EDITOR.ctrl-p
)ctrl-n
)LS_COLORS
, along with the following utility functions for
applying better styling/theming.
:p
to edit file permissions interactively.application/x-executable
.Thanks to @noahmayr for contributing to a major part of this release.
foo/bar/test.txt
) (thanks to @soryeigeton for reporting and help debugging).bash
as a fallback. oh-my-zsh users please add TRAPEXIT() { echoti rmkx; }
in your .zshrc
(see #499 for more info).xplr.config.modes.builtin[mode].layout = nil
to disable. e.g. xplr.config.modes.builtin.create.layout = nil
xplr.util.version()
to get the currently running binary version (semantic versioning fields)..\n
when creating new files containing space in the name.:!
) will default to null (\0
) delimited pipes, as
opposed to newline (\n
) delimited ones (i.e. will use Call0
instead of
Call
).\0
delimited):
-m FORMAT [ARGUMENT]...
/ --pipe-msg-in FORMAT [ARGUMENT]...
-M FORMAT [ARGUMENT]...
/ --print-msg-in FORMAT [ARGUMENT]...
Where FORMAT is a YAML string that may contain %s
, %q
and %%
placeholders and ARGUMENT is the value per placeholder. See init.lua
.return { on_* = { list, of, messages }, ... }
statement at the end.
--vroot
to isolate navigation of an xplr session inside a specific
directory. Interaction still requires passing full path, and shell,
lua functions etc still can access paths outside vroot.:
v
).
$XPLR_INITIAL_PWD
and Lua equivalent to implement workspace like
features without using virtual root. Use keys gi
to go to the initial
working directory from anywhere.xplr.util
utility functions in your Lua function calls.
See xplr.util API docs.Thanks to @jmcantrell for reporting and help implement fix for the critical newline-in-pathname bug.
This pre-release is for testing the "vroot" mode key bindings available via :v
* keys, and the new messages ToggleVroot
and UnsetVroot
.