Releases: sayanarijit/xplr
Releases Β· sayanarijit/xplr
v0.21.9
Changes & fixes
- Limit scroll padding dynamically based on screen size.
- Fixed crashing on small screen. Thanks, @abhinavnatarajan, for investigating.
- Upgrade deps.
v0.21.8
Changes & fixes
- Added vim-like scrolling as the default scrolling method. Set
xplr.config.general.paginated_scrolling = true
to disable ~ by @ElSamhaa & @sayanarijit. - Added
xplr.config.general.scroll_padding
config option to set the padding in vim-like scrolling ~ by @ElSamhaa & @sayanarijit. - Fixed some color rendering issues ~ by @har7an.
- Added feature flag so that xplr can be built with system Lua ~ by @nekopsykose.
- Fixed
ScrollUpHalf
behavior. xplr.util.lscolor()
won't return nil anymore.- Arguments passed to the custom dynamic layout Lua function will include
scrolltop
field. - Fixed node_type resolution for directories with
.
in their name ~ by @abhinavnatarajan. - Dependency updates.
v0.21.7
Changes & fixes
- Added new key bindings
c
andm
in default mode to quickly copy and move files, without using theselection ops
mode. - Added
xplr.util.debug()
to see and debug Lua values. - Fixed ScrollUpHalf operation.
- Dependency and docs updates.
v0.21.5
Changes & fixes
- Added new messages to make it easier to jump between the deep level directories from history (as an alternative to runtime bookmarking).
- PreviousVisitedDeepBranch
- NextVisitedDeepBranch
- New key bindings
(
and)
bound to the new messages. - Added support for function keys upto F24.
- Added selection count indicator in
Input/Logs
panel, so that selection panel can be hidden without losing the indicator. - Dependency updates.
v0.21.3
Changes & fixes
- xplr will respect $XDG_CONFIG_HOME if set (thanks to @SolitudeSF and @noahmayr)
- Fixed "Illegal format character q" error seen on non GNU (including macOS and BSD) systems (thanks to @lcook).
- Fixed a UI issue causing lower priority styles being fully ignored (thanks to @duganchen).
- Press
f1
to see the global help menu from any mode, without leaving the mode. - Current mode help menu will be displayed on top of the global help menu.
- Added build targets (including direct download links) for Apple Silicon, aarch64 Linux, Android, arm Linux (thanks to @khvzak, author of mlua, for his help).
- Added hook: on_selection_change.
- Documentation improvements.
v0.21.2
Changes & fixes
- Added
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 thanxplr.config.node_types.*.style
.- Now, there's no default color set in
xplr.config.node_types.*.style
, so xplr will default to$LS_COLORS
. xplr -m
now usesjf
to render and pass messages. This allows for a more flexible template syntax.- xplr will now ask before delete.
- For copy, move or symlink operations, xplr will ask what to do if a file with the same name exists.
- CLI help menu improvements
- Several fixes and improvements in documentation. Thanks to @kianmeng and @hensg for contributing.
v0.21.1
Fixes
- SelectAll and ToggleSelectAll (i.e.
ctrl-a
) in a new directory will extend, instead of replace, the existing selected paths. - Fixed a UI bug causing random characters to turn bold.
v0.21.0
Changes & fixes
- IMPORTANT FIX: Fixed panic on permission denial on macOS.
- BREAKING: Some UI plugins might stop rendering colors. Wait for them to update.
- BREAKING:
xplr.config.general.sort_and_filter_ui.search_identifier
has been
renamed toxplr.config.general.sort_and_filter_ui.search_identifiers
. - BREAKING: Resolved Node API will not contain the
permissions
field anymore.
Use the utility functionxplr.util.node
to get its permissions. - Layout
CustomContent
has been undocumented. It will stay for compatibility,
but you should prefer using the following new layouts, because they support
custom title:- Static
- Dynamic
- Improved the builtin search operation using the following new messages:
- Search
- SearchFromInput
- SearchFuzzyUnordered
- SearchFuzzyUnorderedFromInput
- SearchRegex
- SearchRegexFromInput
- SearchRegexUnordered
- SearchRegexUnorderedFromInput
- ToggleSearchAlgorithm
- EnableSearchOrder
- DisableSearchOrder
- ToggleSearchOrder
- Builtin fuzzy search will now support skim's search syntax.
- Default search algorithm:
xplr.config.general.search.algorithm = "Fuzzy"
. - Default search ordering:
xplr.config.general.search.unordered = false
. - Improved selection operations:
- BREAKING: Selection list will be retained after each operation unless the
paths are renamed, moved, deleted, or cleared manually (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.- Better conflict handling: add suffix rather than overriding/skipping.
- BREAKING: Selection list will be retained after each operation unless the
- Navigate between the selected paths using the following messages:
- FocusPreviousSelection (
ctrl-p
) - FocusNextSelection (
ctrl-n
)
- FocusPreviousSelection (
- Added support for
LS_COLORS
, along with the following utility functions for
applying better styling/theming.- xplr.util.lscolor
- xplr.util.paint
- xplr.util.textwrap
- xplr.util.style_mix
- By default colors will only be applied to the file name column in the table.
- File paths will be properly quoted.
- Column Renderer Argument will contain additional fields:
- style
- permissions
- Selection list will display the paths in shorthand format, based on the
current location. - Use the following config to specify how the paths in selection list should be
rendered:- xplr.config.general.selection.item.format
- xplr.config.general.selection.item.style
- Improved working with file permissions using the following utility functions:
- xplr.util.permissions_rwx
- xplr.util.permissions_octal
- Type
:p
to edit file permissions interactively. - More utility function for QOL improvement:
- xplr.util.layout_replace
- xplr.util.relative_to
- xplr.util.shorthand
- xplr.util.clone
- xplr.util.exists
- xplr.util.is_dir
- xplr.util.is_file
- xplr.util.is_symlink
- xplr.util.is_absolute
- xplr.util.path_split
- xplr.util.node
- xplr.util.node_type
- xplr.util.shell_escape
- Fixed mime type detection for executables:
application/x-executable
. - Added workaround for compatibility with macOS legacy coreutils.
- Fixed history navigation for non-existent paths.
- Optimized navigation with long list of selected items.
- Minor improvements in batch operations.
- Minor improvements in logging.
Thanks to @noahmayr for contributing to a major part of this release.
v0.20.2
Changes & fixes
- Updated UI to be more light theme and NO_COLOR friendly.
- Fixed creating files inside multiple subdirectories (e.g.
foo/bar/test.txt
) (thanks to @soryeigeton for reporting and help debugging). - Added new hooks (contribution by @emsquid).
- on_mode_switch
- on_layout_switch
- Minor documentation fixes and updates (contribution by @BoolPurist).
- Dependency updates.
v0.20.1
Changes & fixes
- xplr shell will default to $SHELL, using
bash
as a fallback. oh-my-zsh users please addTRAPEXIT() { echoti rmkx; }
in your.zshrc
(see #499 for more info). - (experiment) xplr will now display full-screen help menu in intermediate modes. Set
xplr.config.modes.builtin[mode].layout = nil
to disable. e.g.xplr.config.modes.builtin.create.layout = nil
- Added new utility functions to work with json and yaml data.
- xplr.util.from_json()
- xplr.util.to_json()
- xplr.util.from_yaml()
- xplr.util.to_yaml()
- Added new utility function
xplr.util.version()
to get the currently running binary version (semantic versioning fields). - Fixed displaying multispace characters (Japanese, Chinese...), thanks to @Elvyria for contributing to tui-input.
- Fixed a bug causing the creation of a new directory named
.\n
when creating new files containing space in the name. - Minor UI updates.